【发布时间】:2019-07-06 15:31:31
【问题描述】:
我有一些神经网络,用于使用 TensorFlow 中包含的 Keras 包在 Python 3.7 中开发的图像分类,我想导出层和权重模型以将其导入使用 Tensorflow.js 的 Node.js 应用程序中.
我将神经网络保存为 h5 格式,其中包含两个单独的文件,一个用于层模型,另一个用于权重模型。尝试按照 Tensorflow 提出的本教程(https://www.tensorflow.org/js/tutorials/conversion/import_keras)进行操作,但它不起作用。
from tensorflow.python.keras.models import load_model
import numpy as np
import tensorflowjs as tf
import json
cnn_name = '1'
layers = './model/' + cnn_name + '/model.h5'
weights = './model/' + cnn_name + '/weights.h5'
cnn = load_model(layers)
cnn.load_weights(weights)
tf.converters.save_keras_model(cnn, './model/' + cnn_name + 'json/')
with open('./model/' + cnn_name + 'json/weights.json', 'w') as f:
json.dump(tf.converters.keras_h5_conversion.h5_weights_to_tfjs_format(weights), f, cls=NumpyEncoder)
在节点中,我可以使用函数 tf.loadLayersModel 加载层文件并启动模型,但我无法加载权重文件。我想我必须使用返回loadLayersModel函数的模型的loadWeights方法,但是你必须传递一个权重清单,我不知道如何获取它。
【问题讨论】:
标签: node.js python-3.x keras neural-network tensorflow.js