D89 抓不到bug...
2019/08/19 下午 02:17
機器學習共學討論版
趙阿里
觀看數:47
回答數:1
收藏數:0
ml100-2
ml100-2-d89
我目前卡關了,對了一下其他同學的答案,好想沒有差太多,可是我卻跑不出來
訓練開始會show這樣的錯誤
回答列表
-
2019/08/20 上午 10:46Benjamin Chai贊同數:1不贊同數:0留言數:1
在define focal_loss()的時候是這樣
def focal_loss(gamma=2., alpha=4.):
gamma = float(gamma)
......
但在define combined_lossfunction()的時候
loss = (1-ce_weights)*focal_loss(y_true, y_pred) + .......
這裡把y_true(是一個Tensor)丟進focal_loss的第一個變數,也就是gamma
所以後來其實是在做gamma = float(y_true)
才會出 TypeError: float() argument must be a string or a number, not 'Tensor'這個錯誤訊息
應該在def focal_loss的時候前面再加兩個argument去接y_true和y_pred就可以了,像這樣
def focal_loss(y_true, y_pred, gamma=2., alpha=4.):