【发布时间】:2018-05-26 17:35:35
【问题描述】:
我是 tf 的新手,我正在研究图像分类器。我已经建立了模型。我使用sess.run() 从学习的模型中预测单个图像,但无论输入是什么,输出标签都不会改变。
def predict():
tf.reset_default_graph()
with tf.Session() as sess:
new_saver = tf.train.import_meta_graph('~/trained-model.ckpt.meta')
new_saver.restore(sess, '~/trained-model.ckpt')
y_pred = tf.get_default_graph().get_tensor_by_name('y_pred:0') #softmax(output_of_last_layer) is equal to y_pred
X = tf.get_default_graph().get_tensor_by_name('X:0')
final = imageprepare('jean.jpeg')
final = np.asarray(final)
print(type(final))
final = np.reshape(final,[784,1])
print (type(final))
output_label = sess.run(y_pred, feed_dict={X: final})
print(output_label)
无论输入是什么,output_label 的值都保持不变,即形状为 [number_of_lables,1] 的 np 数组
我训练了一个模型并保存了它。我现在正在尝试不同的输入图像,以查看它们属于哪个类。如果我更改任何输入图像,它应该更改 output_label,因为 output_label 包含答案有多接近的概率但是 output_label 不取决于输入图像,这是问题任何解决方案吗?
提前致谢
【问题讨论】:
-
整个代码在codeshare.io/2jO4oR
-
你检查过权重吗,它们到处都是零吗?
-
@ArpitKathuria 不,无处。我尝试在训练模型后预测一张图像(不保存然后重新加载)。
output_labels都是一
标签: python tensorflow machine-learning