想学习AI,来试试百度飞桨,无需注册直接上手撸,亲测有效!!

180 阅读3分钟

以 Mac 为例,环境要求
需要确认 python 的版本是否满足要求,使用以下命令确认是 3.8/3.9/3.10/3.11/3.12

python3 --version

需要确认 pip 的版本是否满足要求,要求 pip 版本为 20.2.2 或更高版本

python3 -m pip --version

需要确认 Python 和 pip 是 64bit,并且处理器架构是 x86_64(或称作 x64、Intel 64、AMD64)架构 或 arm64 架构(paddle 已原生支持 Mac M1 芯片)

python3 -c "import platform;print(platform.architecture()[0]);print(platform.machine())"

确认好环境之后,要快速上手 PaddlePaddle,可以按照以下步骤进行:

1. 安装 PaddlePaddle

首先,确保你已经安装了 PaddlePaddle。你可以使用 pip 来安装:

安装 CPU 版本

pip3 install paddlepaddle -i https://mirror.baidu.com/pypi/simple

安装安装 Python 的 matplotlib 库和 numpy 库

matplotlib 库用于可视化图片,numpy 库用于处理数据

python3 -m pip install matplotlib numpy -i https://mirror.baidu.com/pypi/simple

2. 验证安装

安装完成后,可以通过以下代码验证安装是否成功:

import paddle

print(paddle.__version__)

如果出现PaddlePaddle is installed successfully!,说明您已成功安装。

3. 使用 PaddlePaddle 进行简单的任务

以下是一个简单的示例,手写数字识别任务 展示如何使用 PaddlePaddle 进行图像分类任务。
『手写数字识别』是深度学习里的 Hello World 任务,用于对 0 ~ 9 的十类数字进行分类,即输入手写数字的图片,可识别出这个图片中的数字。

完整示例,代码可以直接执行

import paddle
import numpy as np
from paddle.vision.transforms import Normalize

transform = Normalize(mean=[127.5], std=[127.5], data_format="CHW")
# 下载数据集并初始化 DataSet
train_dataset = paddle.vision.datasets.MNIST(mode="train", transform=transform)
test_dataset = paddle.vision.datasets.MNIST(mode="test", transform=transform)

# 模型组网并初始化网络
lenet = paddle.vision.models.LeNet(num_classes=10)
model = paddle.Model(lenet)

# 模型训练的配置准备,准备损失函数,优化器和评价指标
model.prepare(
    paddle.optimizer.Adam(parameters=model.parameters()),
    paddle.nn.CrossEntropyLoss(),
    paddle.metric.Accuracy(),
)

# 模型训练
model.fit(train_dataset, epochs=5, batch_size=64, verbose=1)
# 模型评估
model.evaluate(test_dataset, batch_size=64, verbose=1)

# 保存模型
model.save("./output/mnist")
# 加载模型
model.load("output/mnist")

# 从测试集中取出一张图片
img, label = test_dataset[0]
# 将图片shape从1*28*28变为1*1*28*28,增加一个batch维度,以匹配模型输入格式要求
img_batch = np.expand_dims(img.astype("float32"), axis=0)

# 执行推理并打印结果,此处predict_batch返回的是一个list,取出其中数据获得预测结果
out = model.predict_batch(img_batch)[0]
pred_label = out.argmax()
print("true label: {}, pred label: {}".format(label[0], pred_label))
# 可视化图片
from matplotlib import pyplot as plt

plt.imshow(img[0])
plt.show()

执行结果

WX20250207-195309@2x.png

以上代码使用 MNIST 数据集训练并测试了 LeNet 模型,并最终成功推理出了一张手写数字图片的标签,该图片推理结果是 7 ( pred label: 7),真实标签也是7 (true label: 7)。

简单地说,深度学习任务一般分为以下几个核心步骤:

  1. 数据集定义与加载
  2. 模型组网
  3. 模型训练与评估
  4. 模型推理

WX20250207-200623@2x.png

4. 参考文档和教程

要深入学习 PaddlePaddle,可以参考以下资源:

这些资源提供了详细的 API 参考、示例代码和使用指南,帮助你更好地理解和使用 PaddlePaddle。