我正在用Keras+TensorFlow后端进行神经网络实验。我在电脑上使用GPU,运行Windows7。你知道吗
我的工作流程如下所示。你知道吗
我创建了一个小的python脚本,它定义了一个模型,然后运行model.fit_generator
约50个周期,如果验证精度在10-15个周期后没有提高,那么就提前停止。然后用python model_v3_4_5.py
这样的命令运行终端
通常一个时代需要1.5个小时。在此期间,一些新的想法(训练参数或新的架构)进入我的脑海。你知道吗
然后我创建一个新的python脚本。。。你知道吗
在实验中我发现最好不要同时训练几个模型。我经历了历元时间加倍和验证精度奇怪的下降。你知道吗
因此,我想等到第一次训练结束后再进行第二次训练。同时,我想避免我的电脑闲置,并运行一个新的培训后,第一次已经完成。你知道吗
但是我不知道第一次训练什么时候结束,因此,运行timeout <50 hours> && python model_v3_4_6.py
这样的命令将是一个愚蠢的解决方案。你知道吗
然后我需要一个队列管理器。你知道吗
我想到的一个解决方案是在我的电脑上安装Jenkins slave并使用Jenkins提供的队列。据我所知,詹金斯有GPU访问问题。你知道吗
另一个变种-在Jupyter笔记本的不同单元中训练模型。但是,我在这里看不到单元格执行的队列。这是一个topic, being discussed。你知道吗
更新。下一个变体。向模型脚本中添加一些代码,检索当前GPU状态(它当前是否运行NN?)如果它在计算的话就等着吧。这将产生问题的情况下,几个脚本(不止一个光明的新想法:))等待GPU闲置。你知道吗
还有其他的变种吗?你知道吗
最后,我想到了简单的cmd脚本
我们创建一个子目录
train_queue
,并将带有模型的脚本放入其中。所有脚本都将其输出记录到文件中,这些文件的名称包含时间戳。你知道吗此脚本还调用^{} program
相关问题 更多 >
编程相关推荐