在我的常规python代码中,我实现了一个CNN。我用模型.保存并生成大约四个文件(checkpoint、meta、index和其他一些文件)。但是,我无法将这四个文件直接加载到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)
此代码片段的最后两行用于保存模型。我可以在一个烧瓶应用程序中加载模型,但我想把它移植到tensorflow.js. 谁能给我一个如何做这件事的教程吗?在
tensorflowjs_converted
在其他文件中输出权重文件weights_manifest.json
和模型拓扑文件tensorflowjs_model.pb
。加载此模型tensorflow.js,按照下面列出的步骤操作。在- 创建一个js脚本来加载模型
^{pr2}$loadModel和{a2}之间有区别。在
loadModel
用于加载本地保存的模型。可以从浏览器的indexDB或从localStorage检索模型。 也许它可以用来检索由另一个不同于Js的tensorflow API保存的模型,但是用户需要使用tf.io.browserFiles
来选择文件(我没有尝试过)loadFrozenModel
用于加载由服务器提供服务的模型相关问题 更多 >
编程相关推荐