训练一个VGG16模型,训练了300个epoch了,突然网络波动断网了一下,几秒钟后又重新连接了进来,但是却无法继续运行了。重启环境又要从0开始运行。
请问一下各路大神Aistudio支持断网重连吗?支持的话怎么进行断网重连后继续保持原来的中间结果往下运行?
多谢了!
我这边如果出现几秒钟短暂的断网,notebook会自动联网然后继续输出数据。但断网时间长一些就跟你的情况一样了。
如果经常遇见这样的情况,还是建议多写几行代码,import logging模块,把调试信息写到 log日志文件里。这样只要在运行,log里就会不断更新跑的数据。
感谢您的解答。我是一名新手,log日志的重载可以描述的再清晰点吗?
你可以在设置里设置关闭页面后环境终止时间
有后台运行最长运行时间,可以断网,重连后notebook的log可能没了,但是程序还在继续运行
这个目前没有很好的方法,我的做法是设置里设置关闭页面后环境终止时间为2小时,这样即使断网,程序还在运行,下次直接点进入,不要停止
断网之后进入,LOG就不更新了,最好自己写入Log方便查看
一般短暂断网时多等会儿,别急着刷新页面,也许一会儿就连上了。
还有就是断网后程序继续运行的时间是可以设置的——默认10分钟,最大2小时。但是,重新登录后打印不会继续输出。这种情况可以使用Paddle的VisualDL组件记录日志。其输出不受断网影响。
VisualDL的显示结果随时可以刷新浏览器查看。
VisualDL使用可以看我写的这篇帖子。
一文帮你理解用Paddle训练模型的原理2-权值可视化(VisualDL)
https://aistudio.baidu.com/aistudio/projectdetail/386954
在这种情况下,log的可以起到一个与print()类似的作用,只不过他可以把调试信息都写入到本地的一个log文件中。
下面给一个代码例子。第一、二、、三、五步你可以不用动,最多第三步里用改log日志保存在本地的路径。
第四步里面有很多个logger.debug(),就相当于print()。都是用来输出自己想要的信息,这部分有很多我自己的变量,所以你要去掉,自己用logger.debug()输出你要的信息
import logging # 第一步,创建一个logger logger = logging.getLogger() logger.setLevel(logging.DEBUG) # Log等级总开关 # 第二步,创建一个handler,用于写入日志文件 logfile = './log3.txt' #可以换成你自己想要生成log日志的路径 fh = logging.FileHandler(logfile, mode='a') fh.setLevel(logging.DEBUG) # 用于写到file的等级开关 # 第三步,定义handler的输出格式 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') fh.setFormatter(formatter) # 第四步,将logger添加到handler里面 logger.addHandler(fh) logger.debug(state) logger.debug('训练集大小 %d,batch_size大小 %d,epochs大小 %d,学习率大小 %0.5f'%(m_train,BATCH_SIZE,num_epochs,learning_rate)) logger.debug('step %d'%(step)) ratio = evl(train_reader) print('训练数据的正确率 %0.2f%%'%(ratio*100)) logger.debug('训练数据的正确率 %0.2f%%'%(ratio*100)) ratio = evl(test_reader) print('预测数据的正确率 %0.2f%%'%(ratio*100)) logger.debug('预测数据的正确率 %0.2f%%\n'%(ratio*100)) # 第五步,移除某个创建的handler logger.removeHandler(fh)
最多第二步里用改log日志保存在本地的路径。
不错不错
对您的回复表示由衷的感谢
针对各位的回答,真的学习的蛮多的
目前我自己用的是
watch -n 0.1 -d nvidia-smi #每隔0.1秒刷新一次
来查看后台GPU是不是在工作来判断是否在运行。
希望百度飞桨官方能给出一个好点的解决方案
前段时间终端开久了也会死机,现在好像好了
赞一个
介绍的很详细
我这边如果出现几秒钟短暂的断网,notebook会自动联网然后继续输出数据。但断网时间长一些就跟你的情况一样了。
如果经常遇见这样的情况,还是建议多写几行代码,import logging模块,把调试信息写到 log日志文件里。这样只要在运行,log里就会不断更新跑的数据。
感谢您的解答。我是一名新手,log日志的重载可以描述的再清晰点吗?
你可以在设置里设置关闭页面后环境终止时间
感谢您的解答。我是一名新手,log日志的重载可以描述的再清晰点吗?
有后台运行最长运行时间,可以断网,重连后notebook的log可能没了,但是程序还在继续运行
这个目前没有很好的方法,我的做法是设置里设置关闭页面后环境终止时间为2小时,这样即使断网,程序还在运行,下次直接点进入,不要停止
断网之后进入,LOG就不更新了,最好自己写入Log方便查看
一般短暂断网时多等会儿,别急着刷新页面,也许一会儿就连上了。
还有就是断网后程序继续运行的时间是可以设置的——默认10分钟,最大2小时。但是,重新登录后打印不会继续输出。这种情况可以使用Paddle的VisualDL组件记录日志。其输出不受断网影响。
VisualDL的显示结果随时可以刷新浏览器查看。
VisualDL使用可以看我写的这篇帖子。
一文帮你理解用Paddle训练模型的原理2-权值可视化(VisualDL)
https://aistudio.baidu.com/aistudio/projectdetail/386954
在这种情况下,log的可以起到一个与print()类似的作用,只不过他可以把调试信息都写入到本地的一个log文件中。
下面给一个代码例子。第一、二、、三、五步你可以不用动,最多第三步里用改log日志保存在本地的路径。
第四步里面有很多个logger.debug(),就相当于print()。都是用来输出自己想要的信息,这部分有很多我自己的变量,所以你要去掉,自己用logger.debug()输出你要的信息
最多第二步里用改log日志保存在本地的路径。
不错不错
对您的回复表示由衷的感谢
针对各位的回答,真的学习的蛮多的
目前我自己用的是
来查看后台GPU是不是在工作来判断是否在运行。
希望百度飞桨官方能给出一个好点的解决方案
前段时间终端开久了也会死机,现在好像好了
赞一个
介绍的很详细