1
我有一臺在GPU機器上訓練過的TensorFLow模型。接下來,我需要將其導出並部署在僅限CPU的生產機器上。在TensorFlow中加載輸出模型
我已經使用了MNIST export example中描述的輸出。上面初始化了保存對象。
with graph.as_default():
saver = tf.train.Saver(tf.all_variables(), sharded=True)
...
export_path = 'resnet34_rmsprop_wd1e-1/saves/'
print('Exporting trained model to %s' % export_path)
init_op = tf.group(tf.initialize_all_tables(), name='init_op')
model_exporter = exporter.Exporter(saver)
model_exporter.init(sess.graph.as_graph_def(),
init_op=init_op,
default_graph_signature=exporter.classification_signature(input_tensor=inference_images,
classes_tensor=inference_class,
scores_tensor=inference_predictions),
named_graph_signatures={'inputs': exporter.generic_signature({'images': inference_images}),
'outputs': exporter.generic_signature({'class': inference_class, 'predictions': inference_predictions})})
model_exporter.export(export_path, tf.constant(1), sess)
print('Done exporting!')
接下來,我試圖加載保存模型:
new_saver = tf.train.import_meta_graph('assets/saved_model/export.meta')
new_saver.restore(sess, 'assets/saved_model/export')
什麼,我得到的是:
Traceback (most recent call last):
File "script_test_classifier.py", line 4, in <module>
...
line 33, in __initialize_session__
new_saver = tf.train.import_meta_graph('assets/saved_model/export.meta')
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py", line 1711, in import_meta_graph
read_meta_graph_file(meta_graph_or_file), clear_devices)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py", line 1598, in _import_meta_graph_def
input_graph_def, name="", producer_op_list=producer_op_list)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/importer.py", line 258, in import_graph_def
op_def = op_dict[node.op]
KeyError: u'SaveV2'
什麼是錯誤的原因,以及它如何可能被修復?
此外,也許還有其他方式導入TensorFlow模型到Python?
我已經嘗試將TF更新到最新版本。它沒有幫助,仍然得到「KeyError:u'SaveV2'」 –