看板 DataScience 關於我們 聯絡資訊
作業系統:(ex:mac,win10,win8,win7,linux,etc...) Ubuntu 問題類別:(ex:ML,SVM,RL,DL,RNN,CNN,NLP,BD,Vis,etc...) CNN 使用工具:(ex:python,Java,C++,tensorflow,keras,MATLAB,etc...) PyTorch 問題內容: 想問大家在train超大型網路時連一個batch都塞不進VRAM的狀況 有沒有什麼心得或技巧? 目前的狀況是想把cycleGAN改成3D的好用醫學影像來訓練 因為cycleGAN的cycle consistency對醫學應用來說非常有趣 但是cycleGAN本身的架構就是由4個中大型CNN組成 原作者公開的implementation 2D版本batch size=1的時候就會吃掉大約3GB的RAM 要換成3D的話trainable parameter直接暴增一個dimension 目前是用超小的patch size下去跑,不然的話… 只能指望用NVlink的Quadro GV100了 想到的蠢方法是用CPU跑 插八條32GB RAM就有256G了 但速度…… 困擾了很久,好像也沒什麼討論度 是不是這問題太蠢了所以沒什麼人討論workaround呢 還是真的只能用錢堆了 ----- Sent from JPTT on my Asus ASUS_Z01KDA. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.114.83 ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1541248547.A.51F.html
Mchord: 3D data還是做2D convolution的話,也只有第一層跟輸出層 11/03 22:02
Mchord: 參數量有影響 11/03 22:02
kaltu: 那這樣跟手動把3D volume切成stack of 2D slices然後直接用 11/03 23:59
kaltu: 原始的2D網路有差別嗎? 11/03 23:59
AmibaGelos: slice共用網路的話是類似 但這樣slice間沒有做conv哦 11/04 00:12
AmibaGelos: 好奇3d image有多大 128*128*128*64ch*4B就0.5G了orz 11/04 00:12
yiefaung: 有一種方法是forward完把前面drop掉 每backward一層重新 11/04 17:24
yiefaung: 算到那一層的forward 11/04 17:24
yiefaung: 但基本上就是用運算量跟時間換空間 11/04 17:26
michellehot: 把資料送給google用cloud tpu算吧 11/04 19:29
michellehot: 花點錢省時間省空間 11/04 19:30
michellehot: 另外感謝分享醫學影像的資訊 11/04 19:31