在ubuntu 18.04(GeForce GTX 760 4GB显存)使用MaskTextSpotter(CUDA-10.1)进行训练

参考 在ubuntu 18.04(GeForce GTX 760 4GB显存)编译/测试MaskTextSpotter(CUDA-10.1) 建立能运行的测试环境。

由于测试集使用的是 icdar2013 ,因此,务必保证已经可以在 icdar2013 数据集中进行测试。

接下来就是进行数据训练:

1. 修改训练脚本,默认情况下,训练脚本中使用了 8 张卡进行训练,我们只有一张卡,因此要调整训练参数

2. 下载训练集 MaskTextSpotter 默认使用的是 SynthText 数据集进行训练,需要先下载这个数据集,大约 40GB

3. 解压缩 SynthText 数据集到指定目录

4. 下载转换后的 SynthText 数据集索引文件,上面解压缩出来的索引是 .mat 扩展名的文件,我们需要转换成 MaskTextSpotter 需要的数据索引文件,作者提供了一份已经转换好的文件,我们直接下载并使用这个文件即可,这个文件大概要 1.6GB 的样子。

5. 生成训练文件 train_list.txt

执行脚本,生成文件

执行测试

注意,我们在 configs/pretrain.yaml 加载的权重文件是 "WEIGHT: "./outputs/finetune/model_finetune.pth" ,这个权重文件是从 SynthText 训练得来的,那么这个"model_finetune.pth"是怎么生成的呢?

作者没有详细介绍,我们从 masktextspotter.caffe2 项目的配置文件中可以知道,这个文件其实是从 " WEIGHTS: https://dl.fbaipublicfiles.com/detectron/ImageNetPretrained/MSRA/R-50.pkl" 开始生成的。这个文件也可以从本站下载 R-50.pkl

R-50.pkl: converted copy of MSRA’s original ResNet-50 model

具体配置文件内容参考如下:

其实我们直接删除或者注释掉权重文件加载部分也是可以的。只是,如果想要复现原作者的测试成果的话,我们最好使用相同的配置信息。

对于 4GB 显存的机器来说,由于显存非常有限,导致非常可能在运行的途中出现 "RuntimeError: CUDA out of memory." ,目前测试来看,继续执行命令即可。

训练结果存储在 outputs/pretrain 目录下,训练结果会在训练到一定阶段之后,存储到这个目录下。

如果出现类似如下错误,请适当减少学习速率 BASE_LR

参考链接


HTML实现点击图片放大功能

参考链接


html实现点击图片放大功能

TCP/IP TIME_WAIT状态原理

TIME_WAIT状态原理

----------------------------

通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。

客户端主动关闭连接时,会发送最后一个ACK后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进入CLOSED状态。

继续阅读TCP/IP TIME_WAIT状态原理

Python HttpServer服务器

参考链接


Visual Studio Code调试时报错"raise RuntimeError('already started')"

Visual Studio Code远程调试pytorch模型训练时,报错如下:

解决办法,在.py文件头添加如下语句:

更新:
如果你的工程是基于pytorch的,那么检查自己的dataLoader,是否使用了num_workers参数。当使用该参数时,可能会报上述错误。解决办法是将num_workers设置为0

参考链接


vscode调试时报错raise RuntimeError('already started')

Windows系统盘符错乱导致桌面无法加载

 系统:Windows 7

 问题:

ubuntu 18.04 系统上,使用 gparted 调整 Windows 7 系统分区大小之后,开机登陆用户,桌面无法显示,屏幕黑屏或者蓝色空白。

屏幕右下角显示:

按下 Ctrl+Shift+DEL 能打开任务管理器,但右击相关进程属性发现所有的系统应用显示为 E: 盘,可以确定是盘符错乱导致无法正常加载系统文件及和户配置。

 解决方法:

用U盘PE启动,命令行中执行 regist32.exe,定位到 HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices,复制 \DosDevices\C: 的值,这个值有长有短,但只要硬盘不变,分区不变,PE下得到的值和硬盘系统的值是一样的,可以直接复制过来用。

将光标定位在 HKEY_LOCAL_MACHINE 上,文件菜单或右键菜单上就可以有 加载配置单元 ,到硬盘系统中注册表保存位置,C:\Windows\System32\config 中,选择注册表文件 SYSTEM ,在弹出的框中输入一个 项名字(名字可以随意取),如 TEST,然后 HKEY_LOCAL_MACHINE 下就会新增一个 TEST 节点,加载刚才选择的 SYSTEM 的配置。定位到 MountedDevices,找到对应的 \DosDevices\C:,把刚才复制的值粘贴过去。

重新启动系统。

参考链接


ubuntu 18.04上使用Openconnect代替Cisco Anyconnect

OpenConnect 是一个 Cisco Anyconnect 的替代品,具有开源、易获取、可靠等优点。而官方版本的 Cisco Anyconnect 配置较为繁琐,需要在管理界面同时部署多平台客户端才能支持多平台。相比之下 OpenConnect 在这点就具有优势,可以在官方版本无法跨平台时替代使用。

命令行模式:

安装完成之后,在网络管理界面上的 VPN 设置界面上可以配置 Cisco Anyconnect 相关的项目。

如果刚刚安装之后, VPN 设置界面上没有出现这个选项,则可能需要重启系统才行。

参考链接