Python Tensorflow:sess.run()用于预测不会更改值

Python Tensorflow:sess.run()用于预测不会更改值,python,tensorflow,machine-learning,Python,Tensorflow,Machine Learning,我是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, '~/trai

我是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\u标签
值保持不变,这是形状的np数组[标签的数量,1]


我训练了一个模型并保存了它。我现在正在尝试不同的输入图像,看看它们属于哪一类。如果我更改任何输入图像,它应该更改输出标签,因为输出标签包含答案接近的概率,但输出标签不取决于输入图像,这是问题所在,有解决方案吗


提前感谢

没有修改
输出标签值的功能

要解决这个问题:

img1 = imageprepare('x.jpeg')
img1 = np.asarray(img1)
img2 = imageprepare('y.jpeg')
img2 = np.asarray(img2) 
img3 = imageprepare('z.jpeg')
img3 = np.asarray(img3) 

input_images = [img1,img2,img3]    
output_label = sess.run(y_pred, feed_dict={X: input_images})

其中x、y、z是输入图像

整个代码都在codeshare.io/2jo4上,或者你检查过权重了吗,它们到处都是零吗?@ArpitKathuria不,没有。我尝试在训练模型后预测一张图像(不保存然后重新加载)。
output\u标签
都是一个标签,但如果我更改输入图像,即
final
,它应该更改
output\u标签
的值。不是吗?我跑了好几次。我手动更改了它,值完全相同。这不是我要问的。如果我更改输入图像,输出标签的值保持不变,这是错误的。它显示了图像与标签(或类)的接近程度,但如果我输入两幅图像,值是相同的。我训练了一个模型并保存了它。我现在正在尝试不同的输入图像,看看它们属于哪一类。如果我更改任何输入图像,它应该更改输出标签,因为输出标签包含答案接近的概率,但输出标签不取决于输入图像,这是问题所在,有解决方案吗?