【2023·CANN训练营第一季】昇腾AI入门课(PyTorch)学习笔记

举报
zekelove 发表于 2023/05/16 19:00:44 2023/05/16
【摘要】 在对CANN和昇腾有了一个基础的了解认知后,下面我们就来学习了解一下PyTorch和AscendCL的相关知识。PyTorch它是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发,不仅能够实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如TensorFlow都不支持的。高级功能:1.具有强大的GPU...

在对CANN和昇腾有了一个基础的了解认知后,下面我们就来学习了解一下PyTorch和AscendCL的相关知识。

PyTorch

它是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发,不仅能够实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如TensorFlow都不支持的。

高级功能:

1.具有强大的GPU加速的张量计算(如Numpy);

2.包含自动求导系统的深度神经网络。

优点:

1.支持GPU;

2.灵活,支持动态神经网络;

3.底层代码易于理解;

4.命令式体验;

5.自定义扩展。

PyTorch适配昇腾AI处理器方案

选择在线对接适配方案原因有以下几点:

* 最大限度继承PyTorch框架动态图

*最大限度继承GPU在PyTorch上的使用方式

*最大限度继承PyTorch原生的体系结构

*扩展性好,对于新增网络类型或结构,只需涉及相关计算类算子的开发和实现

*指定device为昇腾AI处理器

PyTorch模型迁移

三种方式:

自动迁移,训练脚本引入库代码;

工具迁移,使用脚本转换工具(msFmkTransplt)

手工迁移,迁移前的准备修改相关原始代码,单卡模型迁移,多卡模型迁移,Extra报错排查。

AscendCL基本功能

运行资源管理:指定硬件资源,创建管理对象容器,创建维护执行顺序的Stream。

内存管理:申请各阶段数据的内存,释放内存,通过内存拷贝实现数据传输。

三大关键功能:

图形图像预处理(视频图像编解码,图片抠图、缩放等)

深度学习推理计算(模型加载,执行)

单算子加速计算(单算子加载,执行)

AscendCL推理应用的开发流程

1. 准备环境

2. 创建代码目录

3. 构建模型(将训练好的模型转换昇腾AI处理器识别的*.om模型文件)

4. 开发应用(AscendCL初始化,运行管理资源申请,运行管理资源释放,AscendCL去初始化)

5. 编译及运行应用(具备数据,离线模型、源码和CMake文件)

开发关键功能主要有以下三点:

1. 图形图像预处理

2. 模型推理计算

3. 单算子加速计算

温馨提示

文章内容如果写的存在问题欢迎留言指出,让我们共同交流,共同探讨,共同进步~~~

文章如果对你有帮助,动动你的小手点个赞,鼓励一下,给我前行的动力。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。