飞桨AI框架安装和使用示例

飞桨AI框架安装和使用示例

飞桨PaddlePaddle是非常流行的国产AI框架,让我们一起来动手实践吧!

安装

飞桨安装参考页面:https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/linux-pip.html

在这个安装页面,选好操作系统、安装方式和计算平台,系统会给出一条指令,类似:

python -m pip install paddlepaddle-gpu==2.6.0.post120 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html


执行这条安装指令即可。


编译安装

如果安装页面里没有找到合适的安装文件,可以采用编译安装的方法,编译的方法参考官网,基本步骤是:


下载源码

git clone https://github.com/PaddlePaddle/Paddle.git

然后编译安装:

cd Paddle# 如果要使用较稳定的版本编译,可切换到 release2.3 分支下:# git checkout release/2.3# 进行 Wheel 包的编译,请创建并进入一个叫 build 的目录下mkdir build && cd build# 链接过程中打开文件数较多,可能超过系统默认限制导致编译出错,设置进程允许打开的最大文件数:ulimit -n 4096# 执行 cmake,完成编译
cmake .. -DPY_VERSION=3.7 \-DCMAKE_BUILD_TYPE=Release \-DWITH_GPU=OFF \-DWITH_XPU=ON \-DON_INFER=ON \-DWITH_PYTHON=ON \-DWITH_AVX=ON \-DWITH_MKL=ON \-DWITH_MKLDNN=ON \-DWITH_XPU_BKCL=ON \-DWITH_DISTRIBUTE=ON \-DWITH_NCCL=OFFmake -j$(nproc)

编译成功后,使用pip安装,如:

pip install paddlepaddle-0.0.0-cp38-cp38-linux_riscv64.whl

然后输入python3进入交互界面,执行验证命令:

import paddle
paddle.utils.run_check()

如果输出:PaddlePaddle is installed successfully!

就证明安装好了飞桨。

飞桨简单示例

飞桨的特点是单机多卡和多机多卡训练非常方便,比如单机多卡只需要多一句话`dist.spawn(train)`即可。下面是一个使用lenet模型,Mnist数据集进行训练的例子,这个模型和数据集都比较小,更适合做演示:

import paddle
from paddle.vision.transforms import ToTensor
import paddle.distributed as disttrain_dataset = paddle.vision.datasets.MNIST(mode='train', transform=ToTensor())
test_dataset = paddle.vision.datasets.MNIST(mode='test', transform=ToTensor())
lenet = paddle.vision.models.LeNet()# Mnist继承paddle.nn.Layer属于Net,model包含了训练功能
model = paddle.Model(lenet)# 设置训练模型所需的optimizer, loss, metric
model.prepare(paddle.optimizer.Adam(learning_rate=0.001, parameters=model.parameters()),paddle.nn.CrossEntropyLoss(),paddle.metric.Accuracy(topk=(1, 2)))
def train():# 启动训练model.fit(train_dataset, epochs=1, batch_size=64, log_freq=400)# 启动评估
#     model.evaluate(test_dataset, log_freq=20, batch_size=64)if __name__ == '__main__':# spawn自适应支持单机单卡和单机多卡训练dist.spawn(train)

可以切换数据集和模型,比如数据集换成Cifar10 ,模型可以用ResNet18。

改成这样:

train_dataset = paddle.vision.datasets.Cifar10(mode='train', transform=ToTensor())
test_dataset = paddle.vision.datasets.Cifar10(mode='test', transform=ToTensor())
# lenet = paddle.vision.models.LeNet()
resnet = paddle.vision.models.resnet18()
# model = paddle.Model(lenet)
model = paddle.Model(resnet)

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

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

相关文章

垃圾分类网站|基于Springboot框架+java+MYSQL数据库的垃圾分类网站开发设计与实现(可运行源码+数据库+文档)

目录 1.摘 要 2.系统结构设计 3.系统顺序图设计 4.数据库设计 5.系统详细设计 用户前台功能模块 管理员功能模块 垃圾分类管理员功能模块 论文参考 文末获取源码 1.摘 要 本论文主要论述了如何使用JAVA语言开发一个垃圾分类网站 ,本系统将严格按照软件开发…

「雷神加速器」pubg m登陆不上去、连接超时、无法进入游戏解决方法

Pubg Mobile(简称pubg m)作为人气吃鸡端游绝地求生PUBG的正版授权手游,完美保留了游戏中跳伞、跑毒、缩圈、捡装备的经典要素玩法,在手游玩家中有着极高的人气。近期,不少老玩家在登陆启动pubg m时出现登陆不上去、连接超时、无法进入游戏的情况,这里为大家整理汇总了几种常用解…

一款高输出电流 PWM 转换器

一、产品描述 TPS543x 是一款高输出电流 PWM 转换器,集成了低电阻、高侧 N 沟道 MOSFET。具有所列的特性的基板上还包括高性能电压误差放大器(可在瞬态条件下提供高稳压精度)、欠压锁定电路(用于防止在输入电压达到 5.5V 前启动&…

ps aux | grep xxxx和ps ef | grep xxxx这两个命令有什么区别

命令实例 ps aux | grep nexus和ps ef | grep nexus ps aux | grep nexus 和 ps ef | grep nexus 这两个命令都用于在 Unix 或 Linux 系统中查找与 nexus 相关的进程,但它们在展示进程信息时有细微的区别。 ps aux | grep nexus: ps aux 是一种显示系统上所有运行进…

中间件 | Redis - [基本信息]

INDEX 1 常规用法2 QPS3 pipeline 1 常规用法 分布式锁 最常见用法,需要注意分布式锁的redis需要单点 分布式事务 分布式事务中,核心的技术难点其实是分布式事务这个事本身作为数据的持久化 2PC,比如 seata 的 AT 模式下,将 un…

HYBBS 表白墙网站PHP程序源码

安装教程 上传程序安装,然后设置账号密码,登陆后台切换模板手机PC都要换开启插件访问前台。 安装完成后如果不能正常访问就删除install安装文件夹 安装完成后右上角登录后点击头图进入后台 找到插件 安装表白墙配置插件 找到模板 将表白墙模板同时设…

Linux 开发工具 yum、git、gdb

目录 一、yum 1、软件包 2、rzsz 3、注意事项 4、查看软件包 5、安装软件 6、卸载软件 二、git操作 1、克隆三板斧 2、第一次使用会出现以下情况: 未配置用户名和邮箱: push后弹出提示 三、gdb使用 1、背景 2、使用方法 例一&#xff1a…

MyBatis的#{}和${}:安全与灵活并存的SQL之道

MyBatis的#{}和${}:安全与灵活并存的SQL之道 MyBatis是一款广泛使用的Java持久化框架,提供了强大的SQL映射和数据库操作功能。在编写MyBatis的SQL语句时,我们经常会遇到#{}和${}两种不同的占位符语法。本文将详细解析#{}和${}的区别以及它们在…

Day30-Linux基础阶段总复习

Day30-Linux基础阶段总复习 1. 运维人员的三个核心职责(了解)2. 企业网站和应用的可用性的衡量标准(重点)2.1 高并发企业业务写入流程图2.2 中小型企业案例 3. Linux系统诞生发展过程中的关键代表人物4. 企业场景如何针对不同的业…

详解动态规划(算法村第十九关青铜挑战)

不同路径 62. 不同路径 - 力扣(LeetCode) 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finis…

HubSpot出海CRM智能化营销,创造无限商机

随着企业的全球化发展,营销的挑战也在不断增加。如何有效地管理多样化的市场、提升客户互动和参与度,成为了全球企业必须面对的重要问题。在这一挑战背景下,HubSpot出海CRM的营销自动化功能成为了企业的强大利器,为实施全球化营销…

Java多线程——synchronized、volatile 保障可见性

目录 引出synchronized、volatile 保障可见性Redis冲冲冲——缓存三兄弟:缓存击穿、穿透、雪崩缓存击穿缓存穿透缓存雪崩 总结 引出 Java多线程——synchronized、volatile 保障可见性 synchronized、volatile 保障可见性 原子性:在一次或者多次操作时…

【C++】Unordered_map Unordered_set

在C98中,STL提供了底层为红黑树结构的一系列关联式容器,例如map、set等。它们在搜索数据时效率可达到O(logN),但最糟糕的情况下搜索需要比较红黑树的高度次,若此时树中的节点非常之多,那么搜索效率就非常不理想。 最理…

python绘制趋势线

趋势线 趋势线是用来显示数据趋势或者预测未来发展方向的一种图形表示方法。在统计学和数据分析中,趋势线通常是通过拟合数据点来找到一条最符合数据整体趋势的直线、曲线或者其他形状。常见的趋势线拟合方法包括线性回归、多项式回归、指数平滑等。 趋势线在金融…

OpenHarmony教程指南—Ability的启动模式

介绍 本示例展示了在一个Stage模型中,实现standard、singleton、specified多种模式场景。 本实例参考开发指南 。 本实例需要使用aa工具 查看应用Ability 模式信息。 效果预览 使用说明 1、standard模式: 1)进入首页,点击番茄…

贪心算法详解及机器人运动应用Demo

一、引言 贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。贪心算法在有最优子结构的问题中尤为有效。今天,我们将通过一个机器人运动的Demo来详细解析贪心算…

文心一言眼中的ChatGPT是什么样的

Q: 你好文心一言,请说一说你眼中的chatgpt A: 在我眼中,ChatGPT是一种非常先进和强大的自然语言处理模型,它展示了人工智能技术的显著进步。ChatGPT拥有出色的语言理解和生成能力,能够与用户进行流畅、自然的对话,并尝…

[c/c++] const

const 和 #define 的区别 ? const 和指针一块出现的时候,到底谁不能修改 ? const 和 volatile 能同时修饰一个变量吗 ? const 在 c 中的作用 ? 1 const 和 #define 的区别 const 和 #define 的相同点: (1) 常数 const 和 #define 定…

lanqiao:合根植物

题目描述: 代码实现:

私域商业模式创新:消费增值引领企业业绩飙升

大家好,我是吴军,专注于私域商业模式的深度探索。今天,我要分享的是一个极具启发性的客户故事。这家企业,在短短一个月内,业绩飙升至上百万级别,用户活跃度同样瞩目,日均在线用户稳定在八万至十…