我有一个回归网络,该网络吸收一组特征的二进制输入向量,并产生线性输出。但是,我在输入层上使用了DenseFeatures功能,如下所示
feature_columns = []
for header in ['FEATURE1', 'FEATURE2', 'FEATURE3', 'FEATURE4', 'FEATURE5']:
feature_columns.append(feature_column.numeric_column(header))
feature_layer = tf.keras.layers.DenseFeatures(feature_columns)
完整模型为
model = keras.Sequential([
feature_layer,
layers.Dense(64, activation=tf.nn.relu),
layers.Dense(1), activation='relu'
])
但是,当我从python环境(运行Tensorflow的2.0 alpha版本)导出此模型并尝试通过以下方式将其导入到我的node.js应用中时:
import * as tf from '@tensorflow/tfjs';
tf.loadLayersModel('/PATH_TO_FILE/model.json');
我收到以下错误:
Unknown layer: DenseFeatures
我认为这是由于DenseFeatures功能尚未移植到Tensorflow的javascript版本引起的?
如此,什么仍然是输入层的合适替代品,而仍然可以获得相同的功能?数据由5个二元特征(正在研究的工件具有或没有该特征)组成,并且输出是一个数字,例如工件的价格。这样,一个合适的数据点就可以了。
(1,0,1,0,0),(100)
谢谢:)
答案 0 :(得分:1)
您可以使用tf.loadGraphModel
代替tf.loadLayersModel
。这样,您可以在tfjs
内使用DenseFeatures。
使用转换器创建图形模型:
model.save(temp_path, overwrite=True)
tfjs.converters.convert_tf_saved_model(temp_path, out_path)
Here是对DenseFeatures
和loadLayersModel
的问题跟踪支持。