bug:描述
在進行tensorflow進行搭建CNN網絡時,在定義CNN的py文件中調用cnn模型,運行正常,但是在其他py文件中進行時就出現問題
ValueError: Tensor(“Variable:0” dtype=float32_ref) must be from the same graph as Tensor(“Reshape:0”, shape=(?, 2 8, 28, 1), dtype=float32)
bug分析
?由報錯可以看出,意思就是兩個tensor張量應該來自同一個計算圖中,在另外一個文件運行,默認是另一個計算圖了,所以計算圖不一樣,導致報錯
bug解決
?創建一個計算圖,將同一個計算圖的變量都在同一個計算圖下進行定義
修改前代碼:
# placeholder占位符X = tf.placeholder(tf.float32, [None, IMAGE_HEIGHT * IMAGE_WIDTH])Y = tf.placeholder(tf.float32, [None, MAX_CAPTCHA * CHAR_SET_LEN])keep_prob = tf.placeholder(tf.float32)
修復后代碼:
graph = tf.Graph() #定義計算圖with graph.as_default():# placeholder占位符X = tf.placeholder(tf.float32, [None, IMAGE_HEIGHT * IMAGE_WIDTH])Y = tf.placeholder(tf.float32, [None, MAX_CAPTCHA * CHAR_SET_LEN])keep_prob = tf.placeholder(tf.float32)
注:在涉及到張量的地方添加上?with graph.as_default()即可
參考
?解決ValueError: Tensor("Variable:0" dtype=float32_ref) must be from the same graph as Tensor("Reshape:_四平先森的博客-CSDN博客#解決django中調用CNN模型出現ValueError: Tensor(“Variable:0” dtype=float32_ref) must be from the same graph as Tensor(“Reshape:0”, shape=(?, 2 8, 28, 1), dtype=float32)的問題@TOC在同一個.py文件中可以實現,不會報錯,在外部的.py文件中調用預測...https://blog.csdn.net/llsplsp/article/details/105420453