2017-09-29 5 views
0

ローカルマシン上で正常に動作する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_probstargetは両方のマシンで同じか類似しています。この行のどれもNoneではありません。 2つのマシンで動作が異なる理由はわかりません。

+1

1. GPUのメモリ割り当てを確認します。 2.これが問題でない場合は、ドライバを確認します。 3. 3つ目のオプションは、2つのPytorch実装のバックエンドが異なることです。 CUDNNを使用しているのはおそらく1人だけです。 –

答えて

0

私はMo Hossnyのアドバイスに従った。問題は確かにPyTorchの異なるバージョンでした。作業マシンはPyTorch 0.1.12を実行します。新しいマシンでは、0.2.0の最新バージョンをインストールしました。明示的に0.1.12バージョンを新しいマシンにインストールした後、すべて正常に機能しました。

この問題を暗示する可能性のあるエラーやその他の出力はありません。

関連する問題