【发布时间】:2018-10-08 05:20:05
【问题描述】:
在我的常规 python 代码中,我实现了一个 CNN。我使用 model.save 保存它并生成四个文件(检查点、元数据、索引和其他文件)。但是,我无法将这四个文件直接加载到 tensorflow.js 中。这是示例 CNN:
import tflearn
from tflearn.layers.conv import conv_2d, max_pool_2d
from tflearn.layers.core import input_data, dropout, fully_connected
from tflearn.layers.estimator import regression
convnet = input_data(shape=[None, IMG_SIZE, IMG_SIZE, 1], name='input')
convnet = conv_2d(convnet, FIRST_NUM_CHANNEL, FILTER_SIZE, activation='relu')
convnet = max_pool_2d(convnet, 2)
convnet = conv_2d(convnet, FIRST_NUM_CHANNEL*2, FILTER_SIZE, activation='relu')
convnet = max_pool_2d(convnet, 2)
convnet = conv_2d(convnet, FIRST_NUM_CHANNEL*4, FILTER_SIZE, activation='relu')
convnet = max_pool_2d(convnet, 2)
convnet = fully_connected(convnet, FIRST_NUM_CHANNEL*8, activation='relu')
convnet = dropout(convnet, 0.7)
convnet = fully_connected(convnet, NUM_OUTPUT, activation='softmax')
convnet = regression(convnet, optimizer='adam', learning_rate=LR, loss='categorical_crossentropy', name='targets')
model = tflearn.DNN(convnet, tensorboard_dir='log')
train = train_data[:7000]
test = train_data[-1000:]
X = np.array([i[0] for i in train]).reshape(-1,IMG_SIZE,IMG_SIZE,1)
Y = [i[1] for i in train]
test_x = np.array([i[0] for i in test]).reshape(-1,IMG_SIZE,IMG_SIZE,1)
test_y = [i[1] for i in test]
model.fit({'input': X}, {'targets': Y}, n_epoch=NUM_EPOCHS, validation_set=({'input': test_x}, {'targets': test_y}),
snapshot_step=500, show_metric=True, run_id=MODEL_NAME)
model.save(MODEL_NAME)
print('MODEL SAVED:', MODEL_NAME)
这段代码的最后两行 sn-p 用于保存模型。我可以在烧瓶应用程序中加载模型,但我想将它移植到 tensorflow.js。谁能给我一个关于如何做到这一点的教程?
【问题讨论】:
-
嗨塞巴斯蒂安,我尝试运行此代码,但我不确定我的参数是什么。
tensorflowjs_converter \ --input_format=tf_saved_model \ --output_node_names='MobilenetV1/Predictions/Reshape_1' \ --saved_model_tags=serve \ /mobilenet/saved_model \ /mobilenet/web_model我现在拥有的文件是 3cnn-layers.model、3cnn-layers.index、checkpoint 和 3cnn-layers.data-0000-of-0001 我的命令是什么? -
你有你的模型文件吗?然后你可以在你的 JavaScript 中使用
tf.loadModel() -
感谢 sebastian,但是我应该为 loadModel 调用什么文件?
let model; (async function () { model = await tf.loadModel("cnnmodel/WHAT_FILE"); })();还是应该把文件放到服务器上? -
.model 我相信,但你可以试试看。而且您必须预先添加存储类型。 (file:/// 如果你使用 nodejs,https:// 如果你想通过互联网加载它)。还有更多。
标签: python tensorflow conv-neural-network tensorflow.js