#javascript #python #tensorflow #keras
#javascript #python #tensorflow #keras
Вопрос:
У меня есть регрессионная сеть, которая принимает набор двоичных входных векторов объектов и выдает линейный вывод. Тем не менее, я использовал функциональность 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 (запускаю альфа-версию 2.0 Tensorflow) и пытаюсь импортировать ее в свой 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)
Спасибо 🙂
Ответ №1:
Вы можете использовать tf.loadGraphModel
вместо tf.loadLayersModel
. Таким образом, вы можете использовать DenseFeatures внутри tfjs
.
Используйте конвертер для создания графовой модели:
model.save(temp_path, overwrite=True)
tfjs.converters.convert_tf_saved_model(temp_path, out_path)
Вот поддержка отслеживания проблем для DenseFeatures
and loadLayersModel
.