模型每回合训练时间太久torch.save如何隔一段时间就保存,定时保存,或者手动点击保存,手动保存

可以弄一个计时器代码如下

# config.py

import time

class Config:

    def __init__(self):

        # 初始化参数为False

        self.save_flag = False

        # 设置超时时间为1个小时

        self.timeout = 1 * 60 * 60

        # 记录上次保存的时间

        self.last_save_time = time.time()


        # 检查是否超过超时时间,如果是,则将保存参数设置为True

    def check_timeout(self):

        current_time = time.time()

        if current_time - self.last_save_time > self.timeout:

            self.save_flag = True

            self.last_save_time = current_time

 

在train之前创建config对象中,然后设置每隔多少批次调用check_timeout函数,本质上是一个计时器,可以更简单一点,

另一个问题是如何手动保存呢,方法一创建一个qt窗口,比较复杂。可以参考https://github.com/xiyu1007/Myimagecaptioning里的win_qt.py

方法二:简单粗暴最好用,利用文件,每次在train里读取文件is_save.json初始内容如下data={"is_save":false},然后可以在建一个py文件(值得一提的是pycharm可以同时运行多个py文件)来进行写保存data={"is_save":true},如果手动的话太慢可能导致文件被打开中train打不开情况。所以新建一个py来操作。主要代码如下:

写入(在新的py文件进行写入,self换成你的文件路径随便一个.json结尾就行)

log_data = {"save_flag": True}

with open(self.log_path, "w") as file:
    json.dump(log_data, file)

读取

save_flag = false

try:

    with open(self.log_path, "r") as file:

     log_data = json.load(file)
 
     save_flag = log_data.get("save_flag",false)#false表示读取失败返回false
except FileNotFoundError:
    pass

if save_flag:
    torch.save

    记得在这里重新写入false不然会一直保存

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值