#########################

开源社区讲解

雨哥讲解

什么是开源社区?

就是指以开源的概念来运作的内容,如开源项目、开源产品等,特点是公开透明。
是一种互利共赢的合作形式

开源社区的好处?
  1. 协作 接受所有人的修改
  2. 采用和重组 人们可以利用开源项目创建其他东西
  3. 透明度 任何人都可以对于开源项目进行监督和检查,可以进行纠错,促进更好发展
开源软件指南-如何从零玩转开源?
开源社区玩法

建立项目-代码托管-

  1. 自己lead一个项目
    构思;创建项目;组建团队;发展社区等

  2. 参与他人的项目
    bug反馈;文档个贡献;代码贡献;PR Review等

代码托管的软件平台

常用的为 github 和 gitee ,都是git内核的共享平台,github好处是全球最大,通用,gitee的好处是汉化比较好,而且是国内的,网络问题较少。

创建项目的基本文件(四大必备要素)

1.许可证 :保证在其他人可以使用的同时,不会产生不良后果,也不会被盗用等产生恶性影响及后续纠纷 如:阿巴齐 apache license 2.0
2. README:是项目的介绍;项目如何快速使用,和一些关键及重要用法的信息和索引
3. 贡献指南: 告诉开发者如何参与到自己的项目中
4. 行为准则: 参与到自己的项目中的开发者需要遵守什么行为规范,(有现成的内容)

示例:paddlepaddle的github

https://github.com/PaddlePaddle/paddle
(前一个paddlepaddle相当于是组织名,后一个paddle 是项目名)
在这里插入图片描述
paddlepaddle 的基本要素文件

参与别人项目 开源贡献

步骤:

  1. srar :对感兴趣或者喜欢的代码仓库点击star,可以将该仓库收藏到个人页面
  2. issue: 提交issue,反馈问题或者需求,或参与issue讨论
  3. Pull request:Fork项目,新增自己的逻辑和改进,并且提交PR/Review PR/Merge PR

最终
4. 独立发展生态Repo: 以来原有Repo,创建自己的,并且增强 (相当于自己出来单干)

以github为例 讲解开源平台使用
  1. 注册
    按照步骤来就行 问题不大

  2. 创建一个开源项目
    右上角加号 New repo
    在这里插入图片描述

填入内容&关键词以及信息
在这里插入图片描述

3.参与别人项目:
进入项目主页 查看别人的项目,并且点击三连
在这里插入图片描述
在这里插入图片描述

issue (开源贡献 最简单的途径)

可以在功能栏的ISSUEs中提交问题、意见和想法,并且进行交流,如paddlepaddle的:
在这里插入图片描述

下载&提交&上传 pull requests

可以将自己进行修改过的版本进行提交,在与原有代码的比较后进行上传与评价,如果得到项目管理员的许可,会进行更换和优化迭代 或被补充为项目代码的一部分(merge操作)

paddlepaddle的项目体系

paddle:主框架的代码库
models:官方所做的模型复现 代码库
paddleOCR: OCR领域的领域特有库
paddle lite: 预测引擎
paddledetection:
community:社区代码库
…
等等等等

#########################################################################

部署环节讲解

灰酱 老师
于航 PPDE 飞桨产品运营

小度熊二分类部署实践

跟硬件有一些相关。

在实地过程中 可以通过硬件输入在部署端对小度熊或者扬子鳄进行识别

课程目标
  1. 万能公式回顾——深度学习开发关键流程
  2. 概念明确 ——什么是训练?模型?部署?
  3. 武功秘籍——了解飞桨轻量级推理部署框架——paddle lite
  4. 轻松实践——自己学会并开发炮筒一个部署深度学习任务

课程重点:
1.任务解读 理解什么是训练 模型 部署
2.了解部署方案
3.实践 在armlinux进行小度熊的部署

万能公式回顾

今天主要讲的是部署上线:第六步
深度学习的关键环节:数据、模型、训练、预测

在训练完成后,会生成一个模型文件(类似于一个黑箱文件)
训练:从现有数据中学习经验
模型:训练好的神经网络
在paddlepaddle中,模型结构与模型网络,被抽象为了两个文件存储,作为模型的保存方式

部署即为将所生成好的模型文件,导入终端设备,进行实际应用的准备

常见的部署场景
  1. 服务器端高性能部署 ——侧重延迟,吞吐,资源消耗
  2. 模型服务化部署——侧重线上模型管理,弹性服务等
  3. Mobile&loT小型移动设备部署(一般性能较低)——侧重性能,资源使用,部署体积,多硬件
  4. web端部署 ——浏览器部署场景在这里插入图片描述

针对以上的部署场景,飞桨分别准备了相应的部署支持方案库
paddle inference
paddle serving
paddle lite 轻量级推理化引擎
paddle
在这里插入图片描述

从训练到部署

模型准备–》模型优化–》推理部署
在这里插入图片描述

paddle lite 轻量化部署平台

在这里插入图片描述

项目实践

参考链接:
https://aistudio.baidu.com/aistudio/projectdetail/1480672

保存模型参数时:
model.save(‘Hapi_MyCNN’) # save for training (动态图模型) 一般用于调优
model2.save(‘Hapi_MyCNN’, False) # save for inference (静态图模型) 一般用于部署
二者在部署时有一些区别

部署步骤:
使用OPT工具生成paddle lite 的.nb模型
对照paddle lite 预测库
对照paddle lite

笔记发布

多写笔记
投稿 投完了以后找灰酱 和paddlepaddle 相关的, 可以领奖励

抽奖

恭喜这些b

大作业讲解

明天再开一场直播 专门讲作业,今天快速过一下 明晚8点

cifar100 是一个100分类的数据集 是一个CV方向的图像分类题目
具体要求 见题目要求和参考

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐