我已经使用tflearn训练了DNN模型并将其保存为检查点文件,并且模型表现良好。我需要冻结模型,以便以后可以在android设备上使用它。
我一直在寻找一种直接从TFLearn冻结我的模型的方法,但是显然tflearn到目前为止还没有提供这种功能,因此我必须使用tensorflow来完成,使用this code将我的模型冻结到protobuf文件中。而且我还使用this(相同的用户)从张量板得到了输出节点的名称,因为使用我在模型中明确给出的输出节点的名称显然在TFLearn中不起作用,并且冻结了0个变量它。
当我成功将其冻结到.pb文件中时,它似乎工作正常,但是当我在不同的运行时加载该冻结图并使用$ perl Common.pm
Use of uninitialized value $textcolor in printf at Common2.pm line 10.
Use of uninitialized value $errmsg in printf at Common2.pm line 10.
<p><font color="">ERROR: </font>/<p>1
对其进行预测时,它给了我一个非常错误的预测,好像我的模型甚至还没有受过训练。
这是我的NN体系结构。
model.predict()
这是我用来尝试加载.pb文件的代码。
convnet = input_data(shape=[None, IMG_SIZE, IMG_SIZE, 3], name='masuk')
convnet = conv_2d(convnet, 40, 2, activation='relu')
convnet = max_pool_2d(convnet, 4)
convnet = conv_2d(convnet, 40, 2, activation='relu')
convnet = max_pool_2d(convnet, 4)
convnet = conv_2d(convnet, 80, 2, activation='relu')
convnet = max_pool_2d(convnet, 4)
convnet = conv_2d(convnet, 160, 2, activation='relu')
convnet = max_pool_2d(convnet, 4)
convnet = fully_connected(convnet, 500, activation='relu')
convnet = dropout(convnet, 0.75)
convnet = fully_connected(convnet, 32, activation='softmax')
convnet = regression(convnet, optimizer='adam', learning_rate=LR, loss='categorical_crossentropy', name='keluar')
model = tflearn.DNN(convnet, tensorboard_dir='log')
这是我的任务,我对tensorflow(以及一般的机器学习)有点陌生,所以在这里我想念一些东西使它起作用吗?