使用VisualDL有一段时间了,在交流群里热心小哥哥和小姐姐的帮助下,对它也有了一点了解,这里就把我走过的坑说一下。埋大家的坑,让别人无坑可跳。
VisualDL2.0入门--基于静态图的数字验证码识别:https://aistudio.baidu.com/aistudio/projectdetail/518501
从0开始写项目很累,如果对你有帮助,希望能fork、评论支持一下。
另外,有什么建议欢迎留言,我会及时关注的~
—————————————————————————————————————————————————————
正文
1. 版本检查(喝前摇一摇):
现在普遍用的是VisudlDL2.0版本(以下简称VDL),对应的Paddle也需要1.8版本以上,所以用前请务必检查你的版本是否正确。
2. 无法打开VDL(摇完打不开):
AI Studio下,你的LogWriter目录必须在/home/aistudio/log或者他的子目录
在本地的话没有要求,但是要确保LogWriter打开的目录下有.log文件
3. 打开VDL显示空白或显示不正确(打开不好喝):
这个问题主要是送进LogWriter的数据不规范,请严格按照要求修改
————————————————————我是没有感情的分界线———————————————————————
———————————————————————我是没有感情的分界线————————————————————
4. 重复在相同文件夹调用LodWriter(喝了还想喝):
先看一段代码示例:
# 当前目录为/home/aistudio
with LogWriter("log") as log_writer:
pass
with LogWriter("log/DenseNet") as log_writer:
pass
如果你学过C,可以把LogWriter理解成指针。上面的代码生成了两个指针,分别指向log文件夹和log/DenseNet文件夹,我们是可以正常写入并且VDL可以从这里面读数据的。但是如果写成下面的格式,就会出问题:
# 当前目录为/home/aistudio
with LogWriter("log") as log_writer:
pass
# 重新定义了一个指针,也指向log文件夹
with LogWriter("log") as log_writer:
pass
你重新定义了一个指针,指向log文件夹。C中我们知道指针会把指向地址的数据直接更改,因此这两个代码块如果第二个正确执行,会直接将第一个代码块做的操作覆盖。下面是我和VDL交流群中 @Yixin|VisualDL小姐姐的原话:
—————————————————————————————————————————————————————
我:with LogWtiter只要写一次就行了吗?
Yixin|VisualDL:这样就代表生成了一个LogWriter 而一个LogWriter是对应一个指定logdir的 你写了三个LogWriter,而指明的又是一个logdir,就会分别往一个路径下的三个文件写日志而就像我上午说的一样,一个路径下是根据文件名时间戳选取一个日志展示的,这样就会导致其中两个不会被展示
—————————————————————————————————————————————————————
我的logdir是对的,送到LogWriter的数据也正常,还是卡在加载数据的界面或者进去只有空白的坐标,我该怎么办?
咳咳!敲黑板了啊!
- 在AI Studio中,只要你启动项目,服务器那端会同时打开VDL,你的所有操作都会被监听到。但是VDL目前没有判断LogWriter指向的目录被删的操作,所以如果你不小心删除log文件,会导致VDLDL监听不到以前的log文件。解决办法只有一个,重新项目,服务器也会帮你重启VDL。
- 在本地运行的话,重启本地的visualdl即可
建议谨慎添加。。gan贼吃资源
嗯,gan的确不是省油的灯啊
不过咱有V100,加大马力干!
试过手写字符,还吃得消。要是大的人像,得试着来了
尺寸要是控制得好问题不大,优化一下32G显存跑满