Keras Sequential:创建Tensorflow numeric_columns的优势? &



我正在学习如何使用Keras创建神经网络,并通过各种教程运行。首先,使用一系列tf.feature_column.numeric_column构建模型,并将其传递给KerasSequential模型(在本例中,feat_cols是特征列):

feature_columns = {c: tf.feature_column.numeric_column(c) for c in feat_cols}
model = Sequential([DenseFeatures(feature_columns=feature_columns.values()),
Dense(units=32, activation='relu',
Dense(units=8, activation='relu'),
Dense(units=1, activation='linear'])

在另一个教程中,最初的输入层是从使用.values转换为numpy数组的pandas数据帧中获取的。永远不会创建张量字典,并且第一层没有DenseFeatures位。(在本例中,df是数据框,features是特征列列表,lbl是目标列)

x = df[features].values
y = df[lbl].values
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.05)
model = Sequential([
Dense(10, input_shape=(6, ), activation='relu'),
Dense(20, activation='relu'),
Dense(5, activation='relu'),
Dense(1)])

在这种情况下,当调用model.fit时,只传递x_trainy_train,而不是第一个例子中的张量字典。

我的问题是这两种方法的优点或缺点(如果有的话)是什么?它们是到达同一地点的两种方式,还是有实际的区别?

请注意,顺序的网络肯定是不相等的。但是如果你只考虑输入分量,它们本质上是一样的。两者都是将数据传递到网络的有效方法。然而,在实践中,数据框架是更常见的数据源,张量在Tensorflow中更容易处理。然而,使用keras API应该没有性能差异。看到tensorflow.org/tutorials/load_data/pandas_dataframe

相关内容

  • 没有找到相关文章

最新更新