当前位置: 首页 > news >正文

树莓派_Pytorch学习笔记20:初步认识深度学习框架

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi)

本人所用树莓派4B 装载的系统与版本如下:

 版本可用命令 (lsb_release -a) 查询:

 Python 版本3.7.3:

本文很水,就介绍一下我以后的学习使用PC训练深度学习模型,然后给树莓派推理的开发想法

为何在PC端安装pytorch环境:

模型训练通常对硬件要求较高,但推理阶段对硬件的要求相对较低。这允许你将模型部署到各种边缘设备上,如树莓派。

使用树莓派进行PyTorch深度学习模型的训练,虽然技术上可行,但通常不是最优选择,主要因为树莓派的计算能力和内存资源相对有限。

因此,在更高性能的Windows电脑上先训练好模型,然后再将训练好的模型部署到树莓派上进行推理(即使用模型进行预测或分类等操作)的做法是非常提倡的,也是实际应用中常见的做法。

  1. 模型兼容性:确保在Windows上训练的模型能够无缝迁移到树莓派上。这通常不是问题,因为PyTorch模型是跨平台的,但你需要确保所有依赖库(如PyTorch本身)在树莓派上也是兼容的。
  2. 性能优化:虽然树莓派足以进行推理,但可能需要对模型进行量化或剪枝等优化措施,以进一步提高在树莓派上的运行效率。
  3. 数据传输:如果模型或数据集非常大,可能需要考虑如何将它们从Windows电脑传输到树莓派。确保有稳定且足够快的网络连接,或者使用外部存储设备(如USB驱动器)进行传输。
  • 选择合适的模型:根据树莓派的性能限制,选择适合在边缘设备上运行的模型。
  • 进行模型优化:在部署到树莓派之前,对模型进行必要的优化,如量化、剪枝等。
  • 使用容器化技术:考虑使用Docker等容器化技术来打包和部署模型,以确保在不同环境下的一致性和可移植性。
  • 测试与验证:在树莓派上充分测试模型,确保其在目标应用中的准确性和性能符合预期。

ONNX协议:

  • 模型转换:将不同框架(如PyTorch、TensorFlow、MXNet等)训练的模型转换为ONNX格式,以便在其他框架或硬件上部署。
  • 模型优化:利用ONNX Runtime等推理引擎对ONNX模型进行优化,提高模型的推理速度和效率。
  • 模型部署:将ONNX模型部署到各种硬件和平台上,包括云端、边缘设备和移动端等。

初步认识Pytorch:

GPU加速

GPU加速是通过将数据和模型从CPU转移到GPU来实现的,从而利用GPU的并行计算能力来加速深度学习模型的训练和推理过程。

示例: 定义俩个比较大的矩阵进行运算,分别使用CPU与GPU进行运算比较

GPU运行了俩次,第二次所用时间小于CPU:

自动求导

PyTorch的自动求导机制是训练神经网络时的一个核心概念,它使得计算梯度变得简单而高效。

常用网络层

PyTorch提供了丰富的网络层实现,包括全连接层、卷积层、池化层、激活函数层等。

深度学习训练过程:

把图像拆分成以为像素阵列

Pytorch 最全入门介绍,Pytorch入门看这一篇就够了-CSDN博客

 
 

匆匆结语:

没有实践的理论学习与查找资料真是枯燥无味......

配置个环境变量丝毫没有任何成就感,觉得很浪费时间...

网上学习资料贴出:

10分钟入门神经网络 PyTorch 手写数字识别_哔哩哔哩_bilibili

 文心一言

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • linux 查看历史命令列表来访问之前的内容的命令是:history
  • Backend - C# 操作PostgreSQL DB
  • RabbitMQ保证消息被成功发送和消费
  • 网络安全筑基篇——XSS、XML、XXE
  • 全新TTT架构:挑战Transformer和Mamba的霸主地位
  • 从Helm到 Operator:Kubernetes应用管理的进化
  • 二叉苹果树
  • 如何用Vue3和Plotly.js创建交互式表格?
  • 【亲测有效】Linux/Ubuntu远程服务器使用plt.show()没有反应,vscode ssh 远程ubuntu,plt.show不显示图片问题
  • 泰勒公式中拉格朗日余项和佩亚诺余项的区别及具体的应用场景案例
  • Vue3 根据相对路径加载vue组件
  • PostgreSQL 中如何处理数据的并发更新冲突解决?
  • Git 操作总结
  • 移动应用:商城购物类,是最常见的,想出彩或许就差灵犀一指
  • 插入排序算法(C语言版)
  • axios 和 cookie 的那些事
  • ES6简单总结(搭配简单的讲解和小案例)
  • gf框架之分页模块(五) - 自定义分页
  • Laravel Telescope:优雅的应用调试工具
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • select2 取值 遍历 设置默认值
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 欢迎参加第二届中国游戏开发者大会
  • 区块链共识机制优缺点对比都是什么
  • 跳前端坑前,先看看这个!!
  • 国内开源镜像站点
  • ​LeetCode解法汇总518. 零钱兑换 II
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (一) springboot详细介绍
  • (转)Mysql的优化设置
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转载)利用webkit抓取动态网页和链接
  • ***原理与防范
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .net8.0与halcon编程环境构建
  • .NetCore项目nginx发布
  • .NET成年了,然后呢?
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • /bin/bash^M: bad interpreter: No such file or directory
  • /tmp目录下出现system-private文件夹解决方法
  • @AliasFor 使用
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • @Transactional 详解
  • [android] 看博客学习hashCode()和equals()
  • [APIO2015]巴厘岛的雕塑