ローカルマシン上で正常に動作するPyTorchでネットワークを構築しました。今ではGPU/CUDAをサポートしているマシンに移動してより大きなデータを訓練したいと考えました。しかし、ここではトレーニングが失敗します。より正確には、損失関数の計算は私のコードでは同じPyTorchスクリプトが別のマシンで実行されていない
を失敗し、私はラインに沿って何かがあります:GPUマシンで
loss_function = nn.NLLLoss()
....
def train():
...
loss = loss_function(log_probs, target)
...
を、スクリプトがloss = loss_function(log_probs, target)
で停止します。エラーなし、何もありません。ちょうど停止します。たとえGPUの代わりにCPUを使用しても強制します。
まったく同じ訓練データセットで全く同じスクリプトを使用します。 print
ステートメントを使用すると、log_probs
とtarget
は両方のマシンで同じか類似しています。この行のどれもNone
ではありません。 2つのマシンで動作が異なる理由はわかりません。
1. GPUのメモリ割り当てを確認します。 2.これが問題でない場合は、ドライバを確認します。 3. 3つ目のオプションは、2つのPytorch実装のバックエンドが異なることです。 CUDNNを使用しているのはおそらく1人だけです。 –