2017-05-28 13 views
0

異なるGPU(Tesla K-20、インストールされたcuda 7.5、6GBのメモリ)でコードを実行したときに、次のエラー(スタックトレースを参照) )。 GeForce 1080またはTitan X GPUで動作させるとコードはうまく動作します。PyTorchでオーバーフローエラーが発生しました

スタックトレースは:

File "code/source/main.py", line 68, in <module> 
    train.train_epochs(train_batches, dev_batches, args.epochs) 
    File "/gpfs/home/g/e/geniiexe/BigRed2/code/source/train.py", line 34, in train_epochs 
    losses = self.train(train_batches, dev_batches, (epoch + 1)) 
    File "/gpfs/home/g/e/geniiexe/BigRed2/code/source/train.py", line 76, in train 
    self.optimizer.step() 
    File "/gpfs/home/g/e/geniiexe/BigRed2/anaconda3/lib/python3.5/site-packages/torch/optim/adam.py", line 70, in step 
    bias_correction1 = 1 - beta1 ** state['step'] 
OverflowError: (34, 'Numerical result out of range') 

だから、何それはのGeForceまたはタイタンX GPUで正常に動作しながら、異なるGPU(テスラK-20)で、このようなエラーを取得する理由になることができますか?さらに、エラーはどういう意味ですか?私はそうは思わないメモリオーバーフローに関連していますか?

答えて

0

discuss.pytorch.orgで提案されている回避策の1つは次のとおりです。

bias_correction1 = 1 - beta1 ** min(state['step'], 1022) 
bias_correction2 = 1 - beta2 ** min(state['step'], 1022) 
BY

bias_correction1 = 1 - beta1 ** state['step'] 
bias_correction2 = 1 - beta2 ** state['step'] 

- :adam.pyに次の行を交換