同步操作将从 zhaomingming/演示 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
除给班班提交作业代码之外,可以把自己的代码放在 github 上或者 gitee 上,github 连接慢的同学可以放在 gitee 上,gitee 的使用方法与 github 一样,但连接更快。
git clone https://gitee.com/Mathematical_formula_recognition/CourseMaterialsCodes.git
git add .
git commit -m "your content"
git push -u origin master
学员 | 仓库链接 | 点评 |
---|---|---|
txy14326 | https://gitee.com/txy14326 | 这个代码的思路特别清晰。训练一个模型主要的步骤都有:样本数据准备,gt 的准备,模型的建立,loss 函数的定义,优化函数的选择等等。 在这个思路上扩充成大规模的数据集,大模型会比较容易,比较好理解。 |
作业建议步骤以及建议代码:
开始作业前,建议先下载 VGG 模型预训练权重 pths.zip 和数据集 ICDAR_2015.zip。
ICDAR_2015.zip,密码:hc1v
pths.zip,密码:108d
下载后解压,将
ICDAR_2015
和pths
文件夹放入week18
目录中。
答案并不惟一,也不一定是最优秀的
数学公式识别检测数据集:
cvpr2019,提取码:0sbm
cvpr2020,提取码:8171
进入标注小组办法:
标注办法:
[计划20200427日晚更新完毕]
作业建议步骤以及建议代码:
可选作业:
1. 参考代码位置:week19/get_f1_score.py
python get_f1_score.py 可以看到例子
2. 关于f-score 意义的理解可以参考这里:https://zhuanlan.zhihu.com/p/141033837
作业建议步骤以及建议代码
开始作业前,从这里下载数据集image2latex100k.zip
2020522之后一周有效: 链接:https://pan.baidu.com/s/1CM9spFSXkyzkc4LB76YNPA 密码:ubtm关于数据生成思路,可以在这里看看能否收到启发:
1. 完成im2latex模型的前向计算程序inference.py,参考代码位置:week21/inference_0520.py
作业建议步骤以及建议代码
week21参考答案:week21/inference_20200527.py
与inference_20200527配套代码:
week21/data_loader.py
week21/get_train_data.py
1. 完成数据的重新整理(为了尽快让大家训练起来,这里我先提供一份,后续把数据整理代码发出来,数据整理过程确实有点繁琐)
2. 完成训练程序(相比inference,训练需要添加loss,然后backward,这些是这个项目的真正难点)
3. 完成基本流程后,需要添加teacher forcing,以看到收敛效果。
4. 总体思路:完成代码后,先完成小批量数据在cpu上的训练,添加后续所有组件,然后再转入gpu,进行大批量数据训练。
小批量数据训练,验证了我们写的训练代码可以基本闭环,是有效的,为后续大批量数据训练提供基础。
5. 后续需要添加的组件有:[schedule sampling], [row encoder and position embedding], [word embedding],这些组件,我会最近尽快更新上去。
小批量数据训练,验证了我们写的训练代码可以基本闭环,是有效的,为后续大批量数据训练提供基础。 小批量训练效果展示:
作业建议步骤以及建议代码
1. 数据位置:week22/im2latex_100K_norm_data_split_100M,
使用方法:
a 此文件夹内含有6个文件都是以x开头,每个大约90M,将其传入ModelArts 的notebook上使用【点击notebook 页面 upload】
b 将x开头的文件,同步到teminal里
c 执行cat_unzip.sh 里面的命令,即可完成数据准备。
2. 待填空代码位置:week22/train_20200529.py 需要填空的地方在385,193,126,325行。
3. 385行是实现loss函数的定义,这个函数在193行要使用。
4. 126行是 随机梯度下降的内容,需要你完成权重的数值的更新。
5. 325行需要实现teacher forcing功能
6. 这份代码我在dataloader中做了设置:只训练2张图片,batch_size=2,epoch每次都更新。
7. 当上传到gpu训练时,需要使用data_loader_whole.py 代替data_loader.py即可。
1. 先用 BLEU 来评价自己train的model(少量图片)得BLEU,验证训练得闭环性。
2. 验证完成后,使用大量图片进行训练,这时候需要改小学习率,或者使用clip_gradients方法。
3. 使用attnetion结构[dot,product]
4. 使用双lstm结构
作业建议步骤以及建议代码
1. 先用baseline模型,训练几个epoch, 查看收敛情况。week23/answer1中为训练代码。week23/pth/中模型文件为训练了4个epoch的模型参数文件。
2. 更换sgd 为momentum + L2正则化
3. 使用双lstm结构
4. 使用 attention结构
5. 使用clip_gradients方法
6. 使用词向量
7.使用multi-head attention
1.将我们训练得到的两个模型:east和im2latex部署到webserver上。
作业建议步骤以及建议代码
1.参考模型部署的工程代码:https://gitee.com/anjiang2020_admin/bd_cv3_webserver_demo
gpu类型:
训练速度特别快,数万数据,一个epoch只要45秒左右。
第一次配置时间较长,建议腾出至少4个小时的时间来配置。 使用云上的独立GPU,注意一点:obs是你唯一可以保存文件的地方,其他地方的保存都是暂时的,会清除。 pipeline:
下面是详细步骤:
准备好自己的gitee
建立modelarts上的notebook【建议建立一个6小时的】
创建notebook
notebook参数
notebook参数
从这里打开我们刚才创建的notebook环境
打开terminal
在terminal里自己可以随意操作
termial使用原则
git clone 你的gitee,把代码放到terminal里 查看README文件,切换到pytorch环境,可以使用gpu
利用notebook的同步功能,把数据也同步到terminal里
选中notebook里的文件,点击syn,可以将notebook里的文件同步到terminal里
数据和代码都有了,可以配置环境和开发了。
任何时候,都可以同步文件到obs上,可以参考/week19/upload.py,如下图:
TO DO LIST:
20200529:
20200527:
20200509:
20200503:
20200429:
20200428:
20200425:
20200422:
20200421:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。