我有一個帶有四個輸出標籤的tensorflow程序。我訓練了模型,現在正在用它評估單獨的數據。Tensorflow tf.nn.in_top_k錯誤目標[0]超出範圍
的問題是,在我使用的代碼
import tensorflow as tf
import main
import Process
import Input
eval_dir = "/Users/Zanhuang/Desktop/NNP/model.ckpt-30"
checkpoint_dir = "/Users/Zanhuang/Desktop/NNP/checkpoint"
def evaluate():
with tf.Graph().as_default() as g:
images, labels = Process.eval_inputs()
forward_propgation_results = Process.forward_propagation(images)
init_op = tf.initialize_all_variables()
saver = tf.train.Saver()
top_k_op = tf.nn.in_top_k(forward_propgation_results, labels, 1)
with tf.Session(graph=g) as sess:
sess.run(init_op)
saver.restore(sess, eval_dir)
tf.train.start_queue_runners(sess=sess)
print(sess.run(top_k_op))
def main(argv=None):
evaluate()
if __name__ == '__main__':
tf.app.run()
總體而言,我只有一個班。
我的錯誤率,在這裏我介紹一個熱矩陣標籤代碼是在這裏:
def error(forward_propagation_results, labels):
labels = tf.one_hot(labels, 4)
tf.transpose(labels)
labels = tf.cast(labels, tf.float32)
mean_squared_error = tf.square(tf.sub(labels, forward_propagation_results))
cost = tf.reduce_mean(mean_squared_error)
train = tf.train.GradientDescentOptimizer(learning_rate = 0.05).minimize(cost)
tf.histogram_summary('accuracy', mean_squared_error)
tf.add_to_collection('losses', cost)
tf.scalar_summary('LOSS', cost)
return train, cost
這個錯誤表明'forward_propagation_results'(假設是一個大小爲'bxc'的矩陣)和'labels'中的值(假設是一個長度爲「b」的矢量,所有的值都是< C')。你可以嘗試在失敗的行之前添加「print(forward_propagation_result,sess.run(labels))'語句嗎? – mrry
當然:這是我的結果:(,array([40],dtype = int32)) –