小编JM *_*ZHU的帖子

如何使用tensorflow feature_columns作为keras模型的输入

Tensorflow的feature_columns API对于非数值特征处理非常有用。但是,当前的API文档更多是关于在tensorflow Estimator中使用feature_columns。有没有可能使用feature_columns进行分类要素表示,然后基于tf.keras构建模型?

我找到的唯一参考是以下教程。它显示了如何将特征列提供给Keras顺序模型:链接

代码片段如下:

from tensorflow.python.feature_column import feature_column_v2 as fc

feature_columns = [fc.embedding_column(ccv, dimension=3), ...]
feature_layer = fc.FeatureLayer(feature_columns)
model = tf.keras.Sequential([
    feature_layer,
    tf.keras.layers.Dense(128, activation=tf.nn.relu),
    tf.keras.layers.Dense(64, activation=tf.nn.relu),
    tf.keras.layers.Dense(1, activation=tf.nn.sigmoid)
])
...
model.fit(dataset, steps_per_epoch=8) # dataset is created from tensorflow Dataset API
Run Code Online (Sandbox Code Playgroud)

问题是如何在keras功能模型API中使用自定义模型。我尝试了以下操作,但不起作用(tensorflow版本1.12)

feature_layer = fc.FeatureLayer(feature_columns)
dense_features = feature_layer(features) # features is a dict of ndarrays in dataset
layer1 = tf.keras.layers.Dense(128, activation=tf.nn.relu)(dense_features)
layer2 = tf.keras.layers.Dense(64, activation=tf.nn.relu)(layer1)
output = tf.keras.layers.Dense(1, activation=tf.nn.sigmoid)(layer2)
model = Model(inputs=dense_features, outputs=output)
Run Code Online (Sandbox Code Playgroud)

错误日志:

ValueError: Input tensors …
Run Code Online (Sandbox Code Playgroud)

keras tensorflow

8
推荐指数
3
解决办法
2916
查看次数

标签 统计

keras ×1

tensorflow ×1