keras 如何并行训练集成模型?

57hvy0tb  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(161)

我想训练一个合奏模型,由8个keras模型组成,我想在一个闭环中训练它,这样我就可以自动添加/删除训练数据,当训练结束,然后重新开始训练,我有一台机器有8个GPU,想在每个GPU上放一个模型,用同样的数据并行训练,所有的分布式策略只是做模型克隆但我只想并行运行model.fit()8次,有8个不同的模型。理想情况下,我有8个线程,每个线程调用model.fit(),但我找不到类似的东西。我也可以将训练分成8个完全不同的脚本,并行运行,但我仍然需要一种自动化的方式来开始和完成训练,然后检查训练何时完成,这样我就可以更新我的数据集并重新开始训练。
一个很简单的方法是使用'os.system(' python training_script_1.py ')'调用不同的脚本,但是这看起来很难看,而且更新训练数据比必要的要困难。(我需要写一个文件到磁盘,每次我这样调用脚本时都要加载它)。难道没有更好的方法来处理多个keras模型的闭环训练吗?

z6psavjg

z6psavjg1#

参考此块:

st_1 = tf.distribute.MirroredStrategy(["GPU:0", "GPU:1"])
with st_1.scope():
model[0].fit()

st_2 = tf.distribute.MirroredStrategy("GPU:2")
with st_2.scope():
model[1].fit()

相关问题