[Call for Contribution] Tutorials for PaddlePaddle 2.0(基于飞桨2.0的应用案例教程建设)
1. 目标
目前飞桨2.0 Beta版本已经发布,不久的将来即将发布2.0 RC版本和2.0正式版,在2.0版本中,飞桨深度学习框架面向用户体验做了一系列的升级优化:API体系的全面升级以及命令式编程(动态图)能力的全面完善;系统优化了飞桨基础API的目录结构,全面修复了历史遗留的相关问题,并对API做了充分补充,特别是提供了更为完善的高层API功能;同时提供了对动态图的量化训练、混合精度训练的支持,动静转换实现了完备的语法支持,并且易用性大幅提升,动态图相关功能趋于完善,默认推荐使用动态图模式;数据处理、组网方式、模型训练、多卡启动、模型保存和推理等开发流程都有了对应优化;此外,推理库的C++接口也做了升级优化,推理库对量化模型的支持以及推理性能都有了全面增强。
这是飞桨框架的一个全新版本,为了能够让用户快速掌握到飞桨框架升级内容,并了解和学习如何使用2.0进行相关任务的开发,我们进行应用案例教程的立项,在不同的任务场景上为用户提供一个端到端的易学案例,来快速的传递相关知识和使用方法。
在此呼吁广大的飞桨开发者来一起共建我们的应用案例教程,努力为用户提供更加优质的示例教程,为用户学会使用框架铺设一条高速公路。
2. 教程清单
目前我们从已有内容和待补充方向进行了初步评估,梳理了以下建议的选题方向和题目,并为大家提供了比较优秀的对标文章进行学习参考,大家可以从这个列表中选择自己想要进行贡献的题目,或者也可以进行非列表内的题目自选。
类别 | 标题 | 参考链接 |
---|---|---|
计算机视觉 | 通过OCR实现验证码识别 | https://keras.io/examples/vision/captcha_ocr/ |
计算机视觉 | 基于fine-tuning的图像分类 | https://keras.io/examples/vision/image_classification_efficientnet_fine_tuning/ |
计算机视觉 | 通过Sub-Pixel实现图像超分辨率 | https://keras.io/examples/vision/super_resolution_sub_pixel/ |
自然语言处理 | 基于seq2seq的文本加法 | https://keras.io/examples/nlp/addition_rnn/ |
自然语言处理 | 使用预训练的词向量 | https://keras.io/examples/nlp/pretrained_word_embeddings/ |
自然语言处理 | 基于Bert的语义相似度计算 | https://keras.io/examples/nlp/semantic_similarity_with_bert/ |
自然语言处理 | 通过transformer实现文本分类 | https://keras.io/examples/nlp/text_classification_with_transformer/ |
生成模型 | 通过DCGAN实现人脸图像生成 | https://pytorch.org/tutorials/beginner/dcgan_faces_tutorial.html |
生成模型 | 通过CycleGAN实现图像风格迁移 | https://keras.io/examples/generative/cyclegan/ |
结构化数据 | 信用卡反欺诈-样本不均衡下的分类任务 | https://keras.io/examples/structured_data/imbalanced_classification/ |
时序数据 | 通过AutoEncoder实现时序数据异常检测 | https://keras.io/examples/timeseries/timeseries_anomaly_detection/ |
3. 贡献指南
3.1 飞桨框架2.0版本安装和使用
- 飞桨(PaddlePaddle)版本统一使用2.0最新版,安装说明:https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0-beta/install/index_cn.html。
- 2.0版本使用教程:https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0-beta/guides/index_cn.html。
- 2.0版本已有应用实践教程:https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0-beta/tutorial/index_cn.html。
3.2 题目认领
- 可以在上面提供的列表中进行题目选择或自选题目,并将确定的题目回复到本Issue中,方便他人同步知晓已开展的文章列表信息,避免重复选题。
3.3 教程编写
-
应用案例教程统一使用Notebook格式(.ipynb)来进行编写,可以在本地安装使用Jupyter开发,或使用AIStudio(https://aistudio.baidu.com)。
-
为了方便大家进行教程的编写,并统一阅读体验,下面为大家提供了一个简单的概要框架,大家根据实际任务按照下面的框架结构进行内容编写和组织,可以结合实际场景进行微调。如果对模板有一些建议我们也可以在下面进行回复讨论。
# 题目 作者信息:Github ID (github个人主页URL) ## 1. 简要介绍 简单的一段文字介绍本案例场景和用到的一些知识点,不用太复杂的讲述知识细节, ## 2. 环境设置 导入包,运行一些初始化方法 ## 3. 数据集 讲述数据集的一些基础信息,描述数据集组成等。进行数据集的下载、抽样查看、数据集定义等。 ## 4. 模型组网 基于Layer定义模型网络结构,模型的可视化展示。可以概要讲述一些网络结构代码设计的原因。 ## 5. 模型训练 使用模型网络结构和数据集进行模型训练。需要讲述一些实践中的知识点。 ## 6. 模型评估 使用评估数据评估训练好的模型。 ## 7. 模型预测 对模型进行预测,展示效果。
3.4 教程上传
- 写好的文档通过向https://github.com/PaddlePaddle/book仓库提交Pull Request的方式来进行教程文档的上传。
- 对提交好的PR可以指定Reviewer(saxon-zh、jzhang533、TCChenlong)进行内容和代码的评审,通过后会由具有Merge权限的同学进行最终的合入。
3.5 一些原则
- 代码封装得当,易读性好,不用一些随意的变量/类/函数命名。
- 注释清晰,不仅说明做了什么,也要说明为什么这么做。
- 文字部分暂时不用考虑国际化,先统一使用中文编写,注意概念和描述的清晰度,尽量让大家通俗易懂,如果实在难以解释,可以给出一些能够详细介绍的页面链接。
- 代码编写过程中能使用高层API的部分就使用高层API,无法使用高层API的部分就使用基础API。高层API使用指南:链接
- 做好代码的自测工作,每段代码块需要有运行结果。
4. 已合入仓库的教程
目前已经有13篇基于飞桨2.0的教程贡献,查看方式:
- Repo目录查看已经Merge的Notebook源文件:https://github.com/PaddlePaddle/book/tree/develop/paddle2.0_docs。
- 查看官网渲染后的页面:https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0-beta/tutorial/index_cn.html。
5. 还有不清楚的怎么办?
欢迎大家随时在这个Issue下进行提问。
非常感谢大家一起来贡献!共建飞桨繁荣社区!