[3週間]8.20金
7753 ワード
✏️Multi-GPU
->1 vs.2以上
-> GPU vs. System(computer with GPU)
->1台のコンピュータ上の単一GPU
->1台のコンピュータ上の複数のGPU
->主に使用する環境
-> Multi computer & Multi GPU
->ex)サーバルーム
モデル並列(モデル並列)
データへいれつ
->データ配分演算を簡単に行い、平均値を得るためにまとめます
->コーディネータGPUの集約によるGPU使用のアンバランス問題&Batchサイズの減少→GPUボトルネック&GIL
->CPUごとにプロセスを作成し、各GPUに割り当てる
->平均単一演算
✏️Hyperparameter Tuning
->学習率、layer input/output dimension、オプティマイザなど
-> Acc ⬆, Loss ⬇
Hyperparameter Tuning Methods
->ランダム検索スペースとグリッド検索が一般的(旧学校)
Hyperparameter Tuning Tool - Ray
🔗Image Reference
✏️Pytorch Troubleshooting
Out Of Memory(OOM)
->通常は反復の間に発生するので難しいです.
Batch Size ⬇ → GPU clean → Run
GPUtilの使用
モジュール
!pip install GPUtil
import GPUtil
GPUtil.showUtilization()
torch.cuda.空のcache()の使用
→graphと直接関係を断つ命令
トレーニングサイクルにテンソル形式で蓄積された変数は確認する必要がある.
total_loss = 0
for i in range(10000):
optimizer.zero_grad()
output = model(input)
loss = criterion(output, label)
loss.backward()
optimizer.step()
total_loss += loss # should be float(loss) or loss.item() to make it tensor → float
delコマンドを正しく使用
# python의 메모리 배치 특성 상 loop이 끝나도 메모리를 차지
for x in range(10):
i = x
print(i) # 9 is printed
実験可能なbatchサイズ
oom = False
try:
run_model(batch_size) # 64 → 32 → ...
except: RuntimeError:
oom = True
if oom:
for _ in range(batch_size):
run_model(1)
torch.No grad()の使用
必ず
それ以外は
->pretravidモデル推奨
->torchsummary
->大型でなければ
毎週学習のまとめ
課題実行プロセス/成果整理
ピア・セッションのクリア
今週はpytorchを使ってモデルを作成したり、datasetやdataloaderを使ったりするなどpytorchを正しく学ぶことができる課題なので、量が非常に多いです.授業のコメントと課題コードのコメントはほとんど対等な会話の大部分を占めている.たくさん学べて、たくさんもらえてよかったです.
学習の回顧
時間が経つにつれて、私が知っていることが多くなり、輪郭もぼやけてきたような気がします.ちょっと不安急いで勉強したからだと思いますが...もう一度復習して整理したいのですが、毎日の勉強量が大きすぎてついていけず、100%満足できる復習や整理ができません.仕方がない.もっと時間をかけて作るしかない...来週も頑張ります!
Reference
この問題について([3週間]8.20金), 我々は、より多くの情報をここで見つけました https://velog.io/@blackpudding96/3주차-8.20-금テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol