【发布时间】:2020-09-26 04:45:53
【问题描述】:
我对 tf.keras.layers.InputLayer 和 Tensorflow 中的 feature_columns 和 input_shape 参数有疑问。
我正在关注一个示例,该示例具有以下代码来创建特征列:
feature_columns = []
latitude = tf.feature_column.numeric_column("latitude")
feature_columns.append(latitude)
longitude = tf.feature_column.numeric_column("longitude")
feature_columns.append(longitude)
fp_feature_layer = layers.DenseFeatures(feature_columns)
以下是构建模型的代码:
def build_model(my_learning_rate, feature_layer)
model = tf.keras.models.Sequential()
model.add(feature_layer)
model.add(tf.keras.layers.Dense(units=1, input_shape=(1,)))
model.compile(optimizer=tf.keras.optimizers.RMSprop(lr=my_learning_rate),
loss="mean_squared_error",
metrics=[tf.keras.metrics.RootMeanSquaredError()])
在调用build_model 函数时,我会传入一个学习率和特征层,即fp_feature_layer。我的问题是,由于feature_columns 有两个特征,即纬度和经度,所以input_shape 不应该是(2,) 而不是(1,)。或者,更一般地说,既然代码已经指定了feature_layer,我们是否还在model.add(tf.keras.layers.Dense() 中指定input_shape? input_shape不应该由feature_layer确定吗?它是如何工作的?由于每个示例的输出只有一个值,units=1 对我来说很有意义。但我很难理解input_shape。提前致谢!
【问题讨论】:
标签: python tensorflow machine-learning keras linear-regression