旅行好きなソフトエンジニアの備忘録

プログラミングや技術関連のメモを始めました

【PyTorch】モデルがevalモードの時にout of memoryが発生する事への対処法

PyTorchでモデルがtrainモードの時には発生しないのですが、evalモードの時にGPUのメモリが解放されないまま消費されていきout of memoryが発生していました。調べたところ、Variableにvolatileという引数があって、これをTrueにすれば良いよというアドバイスがあり、確かにout of memoryが発生しなくなりました。

# evalモードへ
model.eval()
# evalモードの時はvolatile=TrueでGPUメモリ解放される
X = Variable(X, volatile=True)

stackoverflow.com