这是官方的文件。
A layer that produces a dense Tensor based on given feature_columns.
Inherits From: DenseFeatures
tf.keras.layers.DenseFeatures(
feature_columns, trainable=True, name=None, **kwargs
)
这在TF例子中使用,通常放在keras中。顺序(...)模型构造。如下所示:
model = tf.keras.Sequential([
feature_layer,
layers.Dense(128, activation='relu'),
layers.Dense(128, activation='relu'),
layers.Dropout(.1),
layers.Dense(1)
])
在我的例子中,我想用它来将我的字典数据类型转换为Tensor格式,并将其传递给model。所以我使用了如下代码:
feature_columns = []
bins = [-125, -75, -50, -25, 0, 25, 50, 75, 125]
temp_num = feature_column.numeric_column('temp')
temp_buckets = feature_column.bucketized_column(temp_num, boundaries=bins)
feature_columns.append(temp_buckets)
feature_layer = layers.DenseFeatures(feature_columns)
input = feature_layer(dict(dataframe))
输入是我将输入模型的训练数据。问题是我对这个DenseFeatures()层的使用是否合理。或者此feature_layer必须在keras.Model类中?
2条答案
按热度按时间ltskdhd11#
是的,你的想法是合理的。实际上,在指定深度学习架构时,您可以自由选择Keras函数式API或Keras顺序式API。
为了完成你的工作,我会删除最后一行,并做一些额外的调整。以下是使用Keras函数API完成您留下的工作的代码片段:
wgeznvg72#
使用tf.keras.models.Sequential()配置,而不是使用tf.keras.layers.DenseFeatures(feature_columns)的Input-Output配置,可以得到相同的结果。唯一的区别是,当您希望使用model.summary()查看模型时,预处理层不会单独显示。