暂时释放tensorflow或pytorch中的gpu 我使用TysFooFo来训练我的实验,其中一些是冗长的,在中间,我想测试新的实现,但是我需要停止这个过程,然后返回它。 检查点保存和加载无法解决此问题。 有没有办法存储GPU条件和进程并再次恢复? 我尝试了kill-STOP,但它没有释放GPU。

暂时释放tensorflow或pytorch中的gpu 我使用TysFooFo来训练我的实验,其中一些是冗长的,在中间,我想测试新的实现,但是我需要停止这个过程,然后返回它。 检查点保存和加载无法解决此问题。 有没有办法存储GPU条件和进程并再次恢复? 我尝试了kill-STOP,但它没有释放GPU。,tensorflow,neural-network,gpu,Tensorflow,Neural Network,Gpu,您可以在model.fit()中修改epoch,使其运行几个epoch并结束。之后,您可以使用另一个model.fit()通过设置参数initial\u epoch=history.epoch[-1]从离开的位置继续培训 例如- 最初你用下面的方法训练了10个时代 initial_epochs = 10 history = model.fit(train_batches, epochs=initial_epochs,

您可以在
model.fit()中修改
epoch
,使其运行几个epoch并结束。之后,您可以使用另一个
model.fit()
通过设置参数
initial\u epoch=history.epoch[-1]
从离开的位置继续培训

例如-

最初你用下面的方法训练了10个时代

initial_epochs = 10
history = model.fit(train_batches,
                    epochs=initial_epochs,
                    validation_data=validation_batches)
fine_tune_epochs = 10
total_epochs =  initial_epochs + fine_tune_epochs

history_fine = model.fit(train_batches,
                         epochs=total_epochs,
                         initial_epoch =  history.epoch[-1],
                         validation_data=validation_batches)
稍后,您可以使用下面的

initial_epochs = 10
history = model.fit(train_batches,
                    epochs=initial_epochs,
                    validation_data=validation_batches)
fine_tune_epochs = 10
total_epochs =  initial_epochs + fine_tune_epochs

history_fine = model.fit(train_batches,
                         epochs=total_epochs,
                         initial_epoch =  history.epoch[-1],
                         validation_data=validation_batches)
你可以找到一个写得很好的例子。他们正在使用此过程进行微调

此外,根据的建议,您可以使用
model.save
将您的模型另存为
model。save
在使用
load\u model
加载模型后,保存案例中重新启动培训所需的所有信息。这在CPU上运行良好,但我可以看到用户在Github和Stackoverflow中使用GPU保存、加载和重新培训此任务时面临的问题

此外,您还可以查看,
train\u on\u batch
trains只使用一个批次和一次。在批次上使用train_的想法可能是在每个批次之间自己做更多的事情。不确定这是否会有很大帮助

同时,您可以使用第一种方法


希望这能回答你的问题。快乐学习。

为什么不能通过保存和加载来解决?关于您的用例的更多信息?原则上,您可以在某个地方停止程序,以某种方式将所有内容转换为CPU,手动释放GPU,运行其他内容,执行相同的操作,然后返回到以前的状态(例如,再次转换为GPU)但我不明白为什么这是明智的/可行的解决方案tbh。您是否希望测试特定于GPU的新实现?为什么不在CPU上测试它呢?这是不可能的,因为我正在用一个历元运行大约2000个训练,如果我想保存并再次加载它们,它会使训练过载。我告诉你这是不可能的,我在问题中提到过,所以我对暂时发布GPU的方式感兴趣。@yousef yegane-希望我们已经回答了你的问题。如果你对答案感到满意,请接受并投票。