1

我正在尝试使用来自 此链接的 TensorFlow 1.7.0 版本并使用以下代码恢复 Mobile-net V2 模型,但出现错误。

import tensorflow as tf    
dir(tf.contrib)
tf.reset_default_graph()
v1 = tf.get_variable("v1", shape=[3])
v2 = tf.get_variable("v2", shape=[5])
saver = tf.train.Saver()
with tf.Session() as sess:
  saver = tf.train.import_meta_graph("/mobilenet_v2_1.4_224.ckpt.meta")
  saver.restore(sess, "/mobilenet_v2_1.4_224.ckpt.data-00000-of-00001")

我面临以下与 TPU 相关的错误,因为我支持 GPU:

Traceback(最近一次调用最后):文件“/home/ext_user1/tensorflow_1.2.1_cp34/lib/python3.4/site-packages/tensorflow/python/client/session.py”,第 1327 行,在 _do_call return fn(* args) 文件“/home/ext_user1/tensorflow_1.2.1_cp34/lib/python3.4/site-packages/tensorflow/python/client/session.py”,第 1310 行,_run_fn self._extend_graph() 文件“/home/ ext_user1/tensorflow_1.2.1_cp34/lib/python3.4/site-packages/tensorflow/python/client/session.py”,第 1358 行,在 _extend_graph graph_def.SerializeToString(),status) 文件“/home/ext_user1/tensorflow_1. 2.1_cp34/lib/python3.4/site-packages/tensorflow/python/framework/errors_impl.py”,第 516 行,退出 c_api.TF_GetCode(self.status.status)) tensorflow.python.framework.errors_impl.InvalidArgumentError:没有注册 OpKernel 以支持具有这些属性的 Op 'ShutdownDistributedTPU'。
注册设备:[CPU],注册内核:

[[节点:ShutdownDistributedTPU = ShutdownDistributedTPU_device="/job:tpu_worker/device:TPU_SYSTEM:0"]]

请帮我。

4

1 回答 1

1

解决此问题的方法是从元图中清除预设设备

saver = tf.train.import_meta_graph("/mobilenet_v2_1.4_224.ckpt.meta", clear_devices=True)

元图用于从检查点恢复训练会话。对于从该检查点进行的预测,不需要元图。但是,如果您想继续训练模型,那么导入元图和清除设备是最好的方法。

于 2018-10-01T16:50:08.003 回答