这类问题是初次使用tensorflow常犯的错误,错误原因是sess.run之前的tensor list和函数內的tensor list命名一致,導致在迭代運行時使得原有的tensor變量被賦值成float或其他類型,導致迭代運行出錯。
例:
result,acc1,cross_entropy,fcl_softmax=sess.run([optimizer,acc,cross_entropy,fcl_softmax],feed_dict = {images_input:train_batch,labels_input:test_batch})
這裏sess.run之前的cross_entropy是float類型,但是sess.run中的cross_entropy是tensor,故出現上述報錯。同樣的fcl_softmax也是前後命名相同,有可能也會錯。
为方便起见,一律改成:
result_,acc1_,cross_entropy_,fcl_softmax_=sess.run([optimizer,acc,cross_entropy,fcl_softmax],feed_dict = {images_input:train_batch,labels_input:test_batch})