日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TypeError: Can not convert a float32 into a Tensor or Operation.

發布時間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TypeError: Can not convert a float32 into a Tensor or Operation. 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

錯誤

TypeError: Can not convert a float32 into a Tensor or Operation. # 類型錯誤:不能將一個浮動32轉換為一個張量或操作。TypeError: Fetch argument 2.3025854 has invalid type <class 'numpy.float32'>, must be a string or Tensor. (Can not convert a float32 into a Tensor or Operation.)

如其意,類型錯誤:不能將一個浮動32轉換為一個張量或操作。也就是在計算圖實際運算的時候發生的錯誤,錯誤為數據類型錯誤,將應該是傳入的張量或者操作的的地方傳入了一個 float32 類型的數據.

分析

源碼

for step in range(1000):batch_xs, batch_ys = mnist.train.next_batch(100)_, Train_Loss = sess.run([Train_Step,Train_Loss], feed_dict={X: batch_xs, Y_true: batch_ys})print('Train step :',step,'Train_Losss :',Train_Loss)

錯誤產生的時候我查了查代碼,沒明白什么意思,后來debug才發現,是變量在第二遍運行的時候數據類型發生了改變,

其改變是在第一遍的時候,仔細看源代碼,輸出的Train_Loss與后面sess.run([Train_Step,Train_Loss], feed_dict={X: batch_xs, Y_true: batch_ys})中的’Train_Loss’同名,顯然第一遍運行之后,原本應該傳入session的Train_Loss就從張量變成了 float32

解決方案

避免重名,使用不同的名字
如原來的

_, Train_Loss = sess.run([Train_Step,Train_Loss], feed_dict={X: batch_xs, Y_true: batch_ys})

改為

_, train_loss = sess.run([Train_Step,Train_Loss], feed_dict={X: batch_xs, Y_true: batch_ys})

BUG就消失了
這是一個很低級的BUG…..但是也很有趣.

總結

以上是生活随笔為你收集整理的TypeError: Can not convert a float32 into a Tensor or Operation.的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。