GPUでのpytorchのトレーニング、テスト効率を向上させるためのいくつかの実用的な経験
GPUでのpytorchのトレーニング、テスト効率を向上させるためのいくつかの実用的な経験
1、テスト時out of memoryはno_が設定されていないためかもしれませんgrad: with torch.no_grad():
for data, label in test_loader:
2、watch nvidia-smiコマンドでGPU利用率を確認したところ、利用率は100%、0%と高低が一定ではなく、dataloaderでnum_を設定できるworkers=n, pin_memory=True: train_loader = torch.utils.data.DataLoader(dataset=trainset, batch_size=128, shuffle=True, num_workers=8, pin_memory=True)
test_loader = torch.utils.data.DataLoader(dataset=testset, batch_size=1, shuffle=False, num_workers=8, pin_memory=True)
3、訓練時の第1のepoch GPUは十分に現存するが、第2およびその後のepochは2倍に現存し、out of memoryが現れ、1つの訓練epochの終了時にdelのいくつかの変数を得ることができる.for epoch in range(num_epochs):
###
del x, y1, y2, output, output_, labels, loss1, loss2
with torch.no_grad():
for data, label in test_loader:
train_loader = torch.utils.data.DataLoader(dataset=trainset, batch_size=128, shuffle=True, num_workers=8, pin_memory=True)
test_loader = torch.utils.data.DataLoader(dataset=testset, batch_size=1, shuffle=False, num_workers=8, pin_memory=True)
for epoch in range(num_epochs):
###
del x, y1, y2, output, output_, labels, loss1, loss2