飞桨 GPU 训练

news2024/11/20 10:28:07

  • 飞桨
    • 官网介绍
    • 使用流程
  • paddle —— 飞桨的深度学习核心框架
    • 本地 padddlepaddle 的安装和卸载
      • 安装
      • 查看当前安装的版本
      • 卸载
    • 启动 GPU 训练
      • 指定 GPU
    • 飞桨创建项目
      • PaddlePaddle 2.1.2 下的对比
      • 修改为 paddlepaddle2.4.0
  • CUDA

飞桨

飞桨官网:https://www.paddlepaddle.org.cn/

官网介绍

今天的机器越来越“聪明”,正是源于 深度学习 的出现,作为最有影响的人工智能关键共性技术,其在 图像分类、语音识别 等方面展现出了强大实力。

这么神奇的功能,实现 起来一定很复杂吧?

的确如此!只不过…

现在可以借助 开源深度学习平台 的能力去解决啦!

  • 开发者在开源深度学习平台上面,像搭积木一样构建自己的 AI 应用,极大地降低了研发门槛,提升了效率。

在这里插入图片描述

  • 飞桨是 百度研发 的一款 技术领先,功能完备的产业级 深度学习 开源 开放平台。

在这里插入图片描述

  • 集深度学习核心框架、基础模型库、端到端开发套件、工具组件和服务平台为一体,助力产业智能化,致力于让深度学习的创新与应用更简单
    在这里插入图片描述
  • 这些都基于飞桨的四大领先技术:

在这里插入图片描述

  • 飞桨助力开发者快速实现 AI 想法,快速上线 AI 业务。帮助越来越多的行业 完成 AI 赋能,实现产业智能化升级
  • 随着飞桨 赋能行业 进程的加快,小到智能桃子分拣机、零件质检,大到城市规划、病虫害监视、无人驾驶、预防性医疗保健等,

在这里插入图片描述

  • 飞桨已在工业、农业、服务业、零售、通讯、地产、医疗、互联网等众多行业中实现落地应用。

在这里插入图片描述

使用流程

在这里插入图片描述
在这里插入图片描述

paddle —— 飞桨的深度学习核心框架

深度学习平台的 Paddle 是由百度开发的一个 开源深度学习框架

  • 它支持动态图和静态图两种模式,
  • 提供了丰富的算法模型库、端到端开发套件和工具组件,
  • 还具有超大规模并行深度学习能力。

本地 padddlepaddle 的安装和卸载

注意 !!!
在飞桨平台创建项目时会自动安装好相应版本的 paddlepaddle,这是 本地要自己手动安装 的教程。

详见:飞桨快速安装

安装

在这里插入图片描述

要安装最新稳定版本 paddlepaddle,可以直接如下命令:

# CPU:
# pip install paddlepaddle

# GPU:
pip install paddlepaddle-gpu

查看当前安装的版本

查看当前安装的 PaddlePaddle 版本:

import paddle
print(paddle.__version__)

卸载

在这里插入图片描述

启动 GPU 训练

在 paddle 上用 GPU 训练,需要

  • 先安装 GPU 版本的 paddlepaddle;
  • 然后在代码中指定使用 GPU 设备,比如 paddle.device.set_device('gpu:0')

指定 GPU

使用 paddledeviceget_device()set_device() 来获取和设置 GPU。

import paddle
print(paddle.device.get_device())

在这里插入图片描述

paddle.device.set_device('gpu:0') 
print(paddle.device.get_device())

注意!!!如果出现了以下错误,

ValueError: The device should not be 'gpu', since PaddlePaddle is not compiled with CUDA

此时,看一下 Cuda 版本。
在这里插入图片描述

错误的原因:

  • 这个错误提示是指在使用 PaddlePaddle 进行深度学习任务时,指定了 GPU 在线性层上的计算,但是 PaddlePaddle 没有编译 CUDA,因此无法使用 GPU 进行计算。如果 没有在 PaddlePaddle 中启用 GPU 计算,并且尝试在使用 GPU 时进行训练或推断操作,就会导致出现这个错误。
  • 安装的 paddlepaddle 是 CPU 版本的,不支持 GPU 训练。

解决方法:

  • 需要先卸载 CPU 版本的 paddlepaddle
  • 然后安装 GPU 版本的 paddlepaddle
  • 安装成功后,你就可以用 paddle.device.set_device(‘gpu’) 来指定使用 GPU 了(如果是在本地,必须有 GPU;如果在飞桨创建项目,必须要用 GPU 算力资源)。

飞桨创建项目

以下创建一个 pyhon3.7PaddlePaddle 2.4.0 版本的环境,使用的是 0.5点/小时 的算力资源:

在这里插入图片描述
在这里插入图片描述

  • nvcc 是 NVIDIA CUDA 编译器,它是 NVIDIA 公司提供的用于 GPU 并行计算的编译器。
  • 在使用 CUDA 进行 GPU 编程时,需要使用 nvcc 对 CUDA 代码进行编译,以生成可以在 GPU 上运行的二进制可执行文件。

PaddlePaddle 2.1.2 下的对比

以下通过在 pyhon3.7PaddlePaddle 2.1.2 版本的环境下,对比不同的算力资源,看一下区别。

  1. 以下是创建了一个 pyhon3.7PaddlePaddle 2.1.2 版本的环境,使用的是 基础版 CPU (未使用 GPU)的算力资源:

在这里插入图片描述

  1. 以下是创建了一个 pyhon3.7PaddlePaddle 2.1.2 版本的环境,使用的是 0.5点/小时 的算力资源:

在这里插入图片描述

  1. 以下是创建了一个 pyhon3.7PaddlePaddle 2.1.2 版本的环境,使用的是 1.0点/小时 的算力资源:

在这里插入图片描述

修改为 paddlepaddle2.4.0

现在,把 paddlepaddle2.1.2 改成 paddlepaddle2.4.0 再来看看区别。

在这里插入图片描述
这是同一个项目,仅仅修改了 PaddlePaddle 框架版本,使用 0.5点/小时 的算力资源进入环境。

在这里插入图片描述

注意到这里新增了一句输出:Build cuda_11.2.r11.2/compiler.29618528_0

  • 这段文字描述了正在构建的 CUDA 工具包版本号,cuda_11.2.r11.2/compiler.29618528_0
  • cuda_11.2.r11.2 表示 CUDA 工具包的版本号,其中 11.2 代表主版本号,r11.2 代表次版本号,compiler.29618528_0 则表示构建的编译器版本。
  • 安装适当版本的 CUDA 工具包非常重要,可以确保代码与所运行的计算机上的 CUDA 版本兼容,并且可以获得最佳的性能和功能。

CUDA

CUDA(Compute Unified Device Architecture)是 NVIDIA 公司开发的用于进行并行计算的平台和编程模型。CUDA 平台基于 GPU(Graphics Processing Unit,图形处理器),利用 GPU 强大的并行计算能力来加速计算密集型应用程序,包括科学计算、机器学习、深度学习、计算机视觉、自然语言处理等领域。

CUDA 平台提供了一系列软硬件工具,帮助开发人员使用 C/C++、Python 等编程语言编写 GPU 加速的应用程序。它的 核心部分是 CUDA Toolkit,其中包含了 CUDA 编译器、标准数学库、调试器和性能分析器等工具,可以帮助开发人员构建高效的并行应用程序。

CUDA 特别适合具有大规模数据并行性质的应用,例如矩阵乘法、卷积神经网络(CNN)、循环神经网络(RNN)等。由于 GPU 具有高度并行处理能力和内存带宽,相对于传统的 CPU 计算,使用 CUDA 可以显著提高这些应用程序的性能,缩短运行时间,为科学和工程计算等领域提供了重要的支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/603225.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

编程最重要的技术之一 — 调试(以C语言代码为例)

编程最重要的技术之一 — 调试(以C语言代码为例) 前言1. 什么是bug?2. 调试是什么?有多重要?2.1 调试是什么?2.2 调试的基本步骤2.3 Debug和Release的介绍 3. Windows环境调试介绍3.1 调试环境准备3.2 学会快捷键3.3 …

Unity - 记录解决 部分手机设备上 浮点精度 不足 导致 UV 采样断层严重的 BUG

文章目录 环境目的问题解决Project 环境 Unity : 2020.3.37f1 Pipeline : BRP 目的 备忘,便于日后索引 问题 正常手机显卡芯片的浮点解析进度上的效果(其实不用手机上,PC 上将 uv * scale 一个巨大的值也会出现的) 异常手机显…

MySql Order by 字段出现重复导致 limit 分页后的数据错乱

问题描述 select * from standard_process order by event_time desc 此条sql查询的结果如下: 共有28条数据,确实是按照event_time排序的。 但是加了limit以后就出现问题了,原本以为是截取的前10条,结果出现了数据错乱的情况。 …

安装VTK8.2.0-win 实际操作

Windows下安装VTK8.2.0 1、依赖 VS2017 Qt5 cmake 2、前期准备 2.1、访问vtk官方下载VTK8.2.0源码 VTK源码下载地址:https://vtk.org/download/ 2.2、配置环境变量 配置CMAKE_PREFIX_PATH,值为Qt的bin路径 2.3、新建2个文件夹一个用于存放cmake编…

Fourier分析入门——第14章——Fourier光学

目录 第14章 Fourier光学 14.1 引言 14.2 物理光学和图像形成(Physical optics and images formation) 14.3 Fourier光学域(The Fourier optics domain) 14.4 图像形成的线性系统描述(Linear Systems Description of Image Formation) 第14章 Fourier光学 14.1 引言 Four…

操作系统-进程和线程-进程和线程

目录 一、进程的概念、组成、特征 二、进程的状态与转换、组织 2.1进程状态 2.2进程转换关系 2.3进程的组织 链接方式 索引方式 三、进程控制 3.1进程的创建 3.2进程的终止 3.3进程的阻塞和唤醒 3.4进程的切换 ​编辑 四、进程通信 4.1共享存储 4.2消息传递 直接通信…

C++算法刷题--2023/6/2

源代码&#xff08;C&#xff09;&#xff1a; #include<iostream> using namespace std; struct Road{char way[100]{}; }; int main(){int t;cin>>t;struct Road *p new Road[t];int right0,left0;for(int i0;i<t;i){cin>>p[i].way;} for(int i0;i&…

力扣刷题【第一期】

文章目录 1.爬楼梯2.求两数的和&#xff08;283&#xff09;3.移动零&#xff08;283&#xff09;3.1 题目描述3.2 算法描述3.3具体实现 4.合并有序连表&#xff08;21&#xff09;4.1 题目描述4.2 算法思想4.3 代码实现 5.删除连表中重复的值&#xff08;83&#xff09;5.1 题…

CodeEditor之sublimetext:sublimetext的简介、安装、使用方法之详细攻略

CodeEditor之sublimetext&#xff1a;sublimetext的简介、安装、使用方法之详细攻略 目录 sublimetext的简介 sublimetext的安装 1、安装教程如下所示 sublimetext的使用方法 sublimetext的简介 Sublime Text 是一个文本编辑器&#xff08;收费软件&#xff0c;可以无限期试…

javascript基础十五:说说new操作符具体都干了什么?

一、是什么 在JavaScript中&#xff0c;new操作符用于创建一个给定构造函数的实例对象 举个粟子 function Parent (name,age){this.name name;this.age age; } undefined Parent.prototype.sayName function(){console.log(this.name) } ƒ (){console.log(this.name) } c…

佛朗斯冲击港交所IPO:叉车租赁的未来是数字化?

佛朗斯“三战”IPO。 图源&#xff1a;佛朗斯 近日&#xff0c;广州佛朗斯股份有限公司&#xff08;下文简称为“佛朗斯”&#xff09;正式向港交所递交招股书&#xff0c;拟于港交所主板挂牌上市。 值得注意的是&#xff0c;这并不是佛朗斯首次冲击IPO。2019年6月和2020年7月…

操作系统-计算机系统概述-特性发展分类分层结构

目录 一、定义 1.1特征 二、操作系统的分类和发展 2.1手工操作阶段 2.2批处理阶段 2.2.1单道批处理系统 2.2.2多道批处理系统 2.3分时操作系统 2.4实时操作系统 2.5 网络操作系统 2.6分布式操作系统 2.7 个人计算机操作系统 三、操作系统的运行与机制 内核态和用…

【Python】函数 ⑤ ( 函数说明文档 | 函数说明文档内容建议 | 代码示例 )

文章目录 一、函数说明文档1、函数说明文档简介2、函数说明文档内容建议2、代码示例 - 函数说明文档 一、函数说明文档 1、函数说明文档简介 函数说明文档 就是 通过 注释 对 函数的作用进行解释说明 ; 函数说明文档 用法 : 在 函数定义 后 , 函数体的第一行位置 , 输入六个双…

Linux:Linux基础网络设置

ifconfig ifconfig #查看网卡信息 inet---网络接口的ip地址 netmask---子网掩码 broadcast---广播地址 ether----物理地址&#xff08;mac地址&#xff09; hostname hostname #查看主机名 hostnamectl set-hostname 自定义主机名 route route # 查看网卡网关 destination-…

华为OD机试真题B卷 Java 实现【检查是否存在满足条件的数字组合】,附详细解题思路

一、题目描述 给定一个正整数数组&#xff0c;检查数组中是否存在满足规则的数字组合 规则&#xff1a;A B 2C 二、输入描述 第一行输出数组的元素个数。 接下来一行输出所有数组元素&#xff0c;用空格隔开。 三、输出描述 如果存在满足要求的数&#xff0c;在同一行…

Ubuntu使用ssh连接两个主机

前提&#xff1a;两者连接同一个WiFi&#xff08;局域网&#xff09; ssh安装&#xff1a; sudo apt-get install openssh-client sudo apt-get install openssh-server 首先在两个主机分别终端输入&#xff1a;ifconfig 查询两者的ip 用户名是前面的那个&#xff1a; …

【算法系列 | 1】深入解析排序算法之冒泡排序

序言 你只管努力&#xff0c;其他交给时间&#xff0c;时间会证明一切。 文章标记颜色说明&#xff1a; 黄色&#xff1a;重要标题红色&#xff1a;用来标记结论绿色&#xff1a;用来标记一级论点蓝色&#xff1a;用来标记二级论点 决定开一个算法专栏&#xff0c;希望能帮助大…

大湾区C++模拟题

大湾区信息学创新大赛模拟题 一、单项选择题&#xff08;15题共30分&#xff09; 1.计算机的运算速度取决于给定的时间内&#xff0c;它的处理器所能处理的数据量。处理器一次能处理的数据量叫字长。已知64位奔腾处理器一次能处理64个信息&#xff0c;相当于&#xff08; A …

厨电「前浪」压「后浪」

作者 | 辰纹 来源 | 洞见新研社 俗话说&#xff0c;姜是老的辣。说的是老年人有经验&#xff0c;办事稳重老练。 俗话也说&#xff0c;长江后浪推前浪。说的是经过历练的新人新事胜过旧人旧事。 这两句话看似矛盾&#xff0c;实则充满哲理&#xff0c;老而弥坚的老手与初生牛…

网关如何让非Matter设备快速加Matter网络?

作为连接智能家居设备的重要桥梁&#xff0c;网关是所有命令请求的入口&#xff0c;并完美充当起“翻译官”的角色。它能够精准“翻译”拥有不同通信协议、数据传输格式及网络地址里所包含的信息&#xff0c;将数据重新打包&#xff0c;以适应目的系统的需求。 虽然网关对于智…