看板 DataScience 關於我們 聯絡資訊
作業系統:win10 問題類別:batch size, gradient, triplet loss 使用工具:python, pytorch 問題描述: 當把圖片整批丟入模型時, 要求必須整批圖片的size必須相同, 這我能理解 它是[batch size, h, l, w]形式傳入 網上查到兩種解決方法: 1. resize()成統一尺寸,但小弟的圖片不巧圖片大小差異很大(有旋轉..等),長寬有的 甚至是轉置。擔心會不會resize後失真太多? 2. batch_size設為1,但這存在一個問題,我的模型設定的損失函數是計算triplet loss, 如果batch_size=1 沒辦法丟到loss function做計算,到下個batch模型重算時,上次計算 出來的gradient是不是就消失了?(我實驗是模型根本找不到梯度)所以想請教大家有沒有 保留梯度的方法? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 117.19.228.161 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1587137688.A.EC0.html ※ 編輯: wang19980531 (117.19.228.161 臺灣), 04/17/2020 23:38:38
followwar: pytorch是 b,c,h,w04/18 00:02
followwar: 1. 你可以考慮用crop04/18 00:02
followwar: 2.你沒計算loss沒有backward 不會有gradient04/18 00:03
我的架構大概是 for each圖片: y=model(x) append(y_,y) loss=triplet_loss(y_,labels) opt.zero_grad() loss.backward() opt.step() 原本將圖片這批丟到model(就是append先,迴圈外才做model)是可行的 但只有一張圖片的y也沒有辦法算loss跟gradient; append在一起為何會算不出來(loss降不了)
yoyololicon: 做gradient accumulation ㄅ04/18 14:03
sxy67230: 1.resize可調整插值方法,試試看是否還有嚴重失真,或是04/18 14:49
sxy67230: crop,或是直接在Convolution layer跟Fully connected l04/18 14:49
sxy67230: ayer之間塞入一些特殊池化層,因為尺度固定是來自於FCL04/18 14:49
sxy67230: 層便於計算而採用的。04/18 14:49
我沒有fully connected layer喔 但是一個batch丟入model算必須要[n,c,l,w] l*w的圖片 大小要一致 不然只能一張一張丟 可是如上 會發生找不出梯度的問題?
sxy67230: 2. 你直接印出損失值看看是否是損失函數出來的值是否有04/18 14:51
sxy67230: 問題,或是你沒有更新參數自然沒有梯度。04/18 14:51
world4jason: gradient accumulation遇到BN會GG 我最近也在思考這04/18 19:57
world4jason: 個問題04/18 19:57
illegalplan: Padding, crop一起做 就當作data augmentation04/19 14:54
padding似乎不失為一個好方法 謝謝提議 ※ 編輯: wang19980531 (117.19.228.161 臺灣), 04/20/2020 07:30:48 感謝大家的意見,抱歉這麼晚才做回應! ※ 編輯: wang19980531 (117.19.228.161 臺灣), 04/20/2020 07:34:46
followwar: 你的triplet loss的用法對嗎? 應該是04/20 11:53
followwar: (anchor, positive, negative)04/20 11:54
我用的是別人寫好的hard都triplet loss 應該是online的就是只要給一串label和向量他會自己去算loss ※ 編輯: wang19980531 (61.221.242.34 臺灣), 04/20/2020 12:10:01
sxy67230: 如果你是用online triplet記得要去檢查一下target是要 04/20 14:32
sxy67230: 有重複類別,不然輸出矩陣計算後會變成nan。另外還有tri 04/20 14:32
sxy67230: plets loss計算是採用歐式距離,可能要注意壓縮出來的 04/20 14:32
sxy67230: 結果 04/20 14:32
janus7799: 長邊resize到固定長度,短邊padding 04/21 21:01
diabolica: padding試試看 04/22 21:46