#python #tensorflow #keras #tensorflow.js
#python #tensorflow #keras #tensorflow.js
Вопрос:
Я пытаюсь преобразовать модели, созданные с помощью tf.keras
на Python, в tensorflow.js
формат для использования в Node.js
. Вот версии моих пакетов:
tensorflowjs: 1.0.1
Keras: 2.2.4
tf-nightly-2.0-preview: 2.0.0.dev20190321 (from pip install tensorflowjs)
Вот моя последовательная модель, также переделанная с помощью функционального API:
# Sequential API
model = tf.keras.Sequential()
model.add(layers.Dense(128, activation='relu', input_shape=(22050,))
model.add(layers.Dense(9, activation='softmax'))
# Functional API
inputs = tf.keras.Input(shape=(22050,))
x = layers.Dense(128, activation='relu')(inputs)
logits = layers.Dense(9, activation='softmax')(x)
Когда я конвертирую последовательную модель в tfjs_layers_model
using tensorflowjs_converter
, она нормально загружается с tensorflowjs
. Когда я делаю то же самое с функциональной моделью, я получаю ошибку конфигурации неправильно отформатированной модели:
Error: Improperly formatted model config for layer {"_callHook":null,"_addedWeightNames":[],"_stateful":false,"id":1,"activityRegularizer":null,"inputSpec":[{"minNDim":2}],"supportsMasking":true,"_trainableWeights":[],"_nonTrainableWeights":[],"_losses":[],"_updates":[],"_built":false,"inboundNodes":[],"outboundNodes":[],"name":"dense_38","trainable_":true,"updatable":true,"initialWeights":null,"_refCount":null,"fastWeightInitDuringBuild":true,"activation":{},"useBias":true,"kernel":null,"bias":null,"DEFAULT_KERNEL_INITIALIZER":"glorotNormal","DEFAULT_BIAS_INITIALIZER":"zeros","units":128,"kernelInitializer":{"scale":1,"mode":"fanAvg","distribution":"uniform","seed":null},"biasInitializer":{},"kernelConstraint":null,"biasConstraint":null,"kernelRegularizer":null,"biasRegularizer":null}: "input_26"
Я также пробовал экспортировать как tfjs_graph_model
, но tensorflowjs_converter
это не разрешалось. Я хотел бы, чтобы модель в конечном итоге имела несколько выходных данных, поэтому я хотел бы использовать функциональный API, а не последовательный.
Комментарии:
1. Это может быть связано с ошибкой в формате сериализации, которая была недавно исправлена, но, возможно, еще не дошла до nightly. Можете ли вы проверить, работает ли это в последней стабильной версии tf (1.13.1)?
2. Я деинсталлировал
tf-nightly-2.0-preview
и установилtensorflow 1.13.1
, но при импорте получал ошибкиtensorflowjs
. Я получилImportError: cannot import name 'convert_to_constants'