模型训练一段时间后意外终止了

我在同一台电脑上同时使用cpu训练两个神经网络模型(模型并不复杂),在运行大概23个小时之后,两个同时报错了:

# Program 1 error:
...
RuntimeError: Caught RuntimeError in DataLoader worker process 0.
...
RuntimeError: Couldn\'t open shared file mapping: <000001D70AFB4E12>, error code: <1455>

# Program 2 error:
...
RuntimeError: [enforce fail at ..\c10\core\CPUAllocator.cpp:75] data. DefaultCPUAllocator: not enough memory: you tried to allocate 1048576 bytes. Buy new RAM!

两个模型都使用pytorch搭建,模型1设定dataloader的 num_worker=3,模型2设置为0

从网上搜索出来的结果看这两个问题都源于电脑性能不足

模型1的错误可以通过减少worker数量解决(但我已经设置很少了,我看别人都设置十几甚至几十,但我仅仅设置几个它就会占用大量磁盘,详见:https://blog.woyou.cool/post/3096

模型2的错误说的很明显,内存不足,但是模型训练过程中,内存的占用不应该是稳定的吗?为啥在二十多个小时之后才出问题,不知道是不是发生了内存泄漏还是怎么着。

这俩问题我觉得都很诡异,不管是cpu性能还是内存不足,他们都不应该在训练这么长时间之后才出问题呀。

我突然想到,在模型训练的这二十多个小时里,我依旧是在一直使用这台电脑,或许恰是那个时间点,其他程序占用了太多资源导致模型训练资源不足。

但我上午的时候还用来编译了一些qt程序,我看模型训练过程也没受影响啊。依然觉得诡异。

另:貌似tensorboard也在同一时间挂掉了

1 thought on “模型训练一段时间后意外终止了”

Leave a Comment