1
我正在使用Inception v3模型並應用了轉移學習。培訓和評估很好。恢復的模型未初始化(初始V3 /轉移學習)
現在我嘗試實際使用(保存的)模型。 我訓練
print("Saving model...")
saver = tf.train.Saver()
save_path = saver.save(sess, self.MODEL_SAV_PATH)
print("...Saved @ ", save_path)
在剛保存的模型,並嘗試將其與
def load_model(self):
tf.reset_default_graph()
self.input_shape = tf.placeholder(tf.float32, shape=[None, pipeline.height, pipeline.width, pipeline.channels])
with slim.arg_scope(inception.inception_v3_arg_scope()):
self.logits, self.end_points = inception.inception_v3(self.input_shape, num_classes=1001, is_training=False)
self.predictions = self.end_points['Predictions']
self.sess = tf.Session()
saver = tf.train.import_meta_graph(META_PATH)
saver.restore(self.sess, train.latest_checkpoint(CHECKPOINT_PATH))
恢復...
,並最終用它
prediction = self.sess.run(self.predictions, feed_dict={self.input_shape: converted_images}).argmax()
但sess.run會拋出以下錯誤
FailedPreconditionError (see above for traceback): Attempting to use uninitialized value InceptionV3/Conv2d_1a_3x3/weights
[[Node: InceptionV3/Conv2d_1a_3x3/weights/read = Identity[T=DT_FLOAT, _class=["loc:@InceptionV3/Conv2d_1a_3x3/weights"], _device="/job:localhost/replica:0/task:0/gpu:0"](InceptionV3/Conv2d_1a_3x3/weights)]]
[[Node: InceptionV3/Predictions/Reshape_1/_795 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_2278_InceptionV3/Predictions/Reshape_1", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"]()]]
,所以我想自己是不是就在我的恢復過程......
用'saver = tf.train.Saver()'替換'saver = tf.train.import_meta_graph(META_PATH)'就行了。 –
thx!想讓它成爲答案嗎? – Marco
當然!將它作爲答案發布。 –