Aistudio怎么断网重连?
收藏
快速回复
AI Studio平台使用 问答Notebook项目 4067 28
Aistudio怎么断网重连?
收藏
快速回复
AI Studio平台使用 问答Notebook项目 4067 28

训练一个VGG16模型,训练了300个epoch了,突然网络波动断网了一下,几秒钟后又重新连接了进来,但是却无法继续运行了。重启环境又要从0开始运行。

请问一下各路大神Aistudio支持断网重连吗?支持的话怎么进行断网重连后继续保持原来的中间结果往下运行?

多谢了!

1
收藏
回复
全部评论(28)
时间顺序
m
mar836924042
#2 回复于2020-04

我这边如果出现几秒钟短暂的断网,notebook会自动联网然后继续输出数据。但断网时间长一些就跟你的情况一样了。

如果经常遇见这样的情况,还是建议多写几行代码,import logging模块,把调试信息写到 log日志文件里。这样只要在运行,log里就会不断更新跑的数据。

1
回复
Cyber巨蟹
#3 回复于2020-04

感谢您的解答。我是一名新手,log日志的重载可以描述的再清晰点吗?

0
回复
辽宁八月十五
#4 回复于2020-04

你可以在设置里设置关闭页面后环境终止时间

0
回复
Cyber巨蟹
#5 回复于2020-04
我这边如果出现几秒钟短暂的断网,notebook会自动联网然后继续输出数据。但断网时间长一些就跟你的情况一样了。 如果经常遇见这样的情况,还是建议多写几行代码,import logging模块,把调试信息写到 log日志文件里。这样只要在运行,log里就会不断更新跑的数据。
展开

感谢您的解答。我是一名新手,log日志的重载可以描述的再清晰点吗?

0
回复
自尊心3
#6 回复于2020-04

有后台运行最长运行时间,可以断网,重连后notebook的log可能没了,但是程序还在继续运行

0
回复
w
wangwei8638
#7 回复于2020-04
有后台运行最长运行时间,可以断网,重连后notebook的log可能没了,但是程序还在继续运行

这个目前没有很好的方法,我的做法是设置里设置关闭页面后环境终止时间为2小时,这样即使断网,程序还在运行,下次直接点进入,不要停止

1
回复
w
wangwei8638
#8 回复于2020-04

断网之后进入,LOG就不更新了,最好自己写入Log方便查看

0
回复
AIStudio810258
#9 回复于2020-04

一般短暂断网时多等会儿,别急着刷新页面,也许一会儿就连上了。

0
回复
AIStudio810258
#10 回复于2020-04

还有就是断网后程序继续运行的时间是可以设置的——默认10分钟,最大2小时。但是,重新登录后打印不会继续输出。这种情况可以使用Paddle的VisualDL组件记录日志。其输出不受断网影响。

 

1
回复
AIStudio810258
#11 回复于2020-04

VisualDL的显示结果随时可以刷新浏览器查看。

0
回复
AIStudio810258
#12 回复于2020-04

VisualDL使用可以看我写的这篇帖子。

一文帮你理解用Paddle训练模型的原理2-权值可视化(VisualDL)

https://aistudio.baidu.com/aistudio/projectdetail/386954

0
回复
m
mar836924042
#13 回复于2020-04
感谢您的解答。我是一名新手,log日志的重载可以描述的再清晰点吗?

在这种情况下,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)  
2
回复
m
mar836924042
#14 回复于2020-04
在这种情况下,log的可以起到一个与print()类似的作用,只不过他可以把调试信息都写入到本地的一个log文件中。 下面给一个代码例子。第一、二、、三、五步你可以不用动,最多第三步里用改log日志保存在本地的路径。 第四步里面有很多个logger.debug(),就相当于print()。都是用来输出自己想要的信息,这部分有很多我自己的变量,所以你要去掉,自己用logger.debug()输出你要的信息   [代码]
展开

最多第二步里用改log日志保存在本地的路径。

0
回复
自尊心3
#15 回复于2020-04
最多第二步里用改log日志保存在本地的路径。

不错不错

0
回复
Cyber巨蟹
#16 回复于2020-04
在这种情况下,log的可以起到一个与print()类似的作用,只不过他可以把调试信息都写入到本地的一个log文件中。 下面给一个代码例子。第一、二、、三、五步你可以不用动,最多第三步里用改log日志保存在本地的路径。 第四步里面有很多个logger.debug(),就相当于print()。都是用来输出自己想要的信息,这部分有很多我自己的变量,所以你要去掉,自己用logger.debug()输出你要的信息   [代码]
展开

对您的回复表示由衷的感谢

0
回复
何必固執丶
#17 回复于2020-04

针对各位的回答,真的学习的蛮多的

0
回复
Cyber巨蟹
#18 回复于2020-04

目前我自己用的是

watch -n 0.1 -d nvidia-smi     #每隔0.1秒刷新一次

来查看后台GPU是不是在工作来判断是否在运行。

希望百度飞桨官方能给出一个好点的解决方案

0
回复
自尊心3
#19 回复于2020-04
目前我自己用的是 [代码] 来查看后台GPU是不是在工作来判断是否在运行。 希望百度飞桨官方能给出一个好点的解决方案

前段时间终端开久了也会死机,现在好像好了

1
回复
w
wangwei8638
#20 回复于2020-04
在这种情况下,log的可以起到一个与print()类似的作用,只不过他可以把调试信息都写入到本地的一个log文件中。 下面给一个代码例子。第一、二、、三、五步你可以不用动,最多第三步里用改log日志保存在本地的路径。 第四步里面有很多个logger.debug(),就相当于print()。都是用来输出自己想要的信息,这部分有很多我自己的变量,所以你要去掉,自己用logger.debug()输出你要的信息   [代码]
展开

赞一个

0
回复
才能我浪费99
#21 回复于2020-04
在这种情况下,log的可以起到一个与print()类似的作用,只不过他可以把调试信息都写入到本地的一个log文件中。 下面给一个代码例子。第一、二、、三、五步你可以不用动,最多第三步里用改log日志保存在本地的路径。 第四步里面有很多个logger.debug(),就相当于print()。都是用来输出自己想要的信息,这部分有很多我自己的变量,所以你要去掉,自己用logger.debug()输出你要的信息   [代码]
展开

介绍的很详细

0
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户