跳转至

School/AI

配置 paddlepaddle-gpu

Windows 下的 PIP 安装-使用文档-PaddlePaddle深度学习平台

Windows 下的 Conda 安装-使用文档-PaddlePaddle深度学习平台

目前 paddlepaddle-gpu 只支持到 python3.10,如果使用 python3.11,pip 会无法匹配到包。

此处(附录-使用文档-PaddlePaddle深度学习平台)有GPU 及其对应架构和推荐 CUDA 版本的列表,按照对应版本安装对应的 paddlepaddle-gpu。

比如我笔记本的 GTX1660Ti 是 Turing 架构,可以使用 CUDA10 和 CUDA11,不过 paddlepaddle 推荐对于安培以前的架构使用 CUDA10.2,性能会更优,因此选择

「CUDA 工具包 10.2 配合 cuDNN v7.6.5」

首先安装对应的 paddlepaddle-gpu包:

image-20230616123330993

Text Only
python -m pip install paddlepaddle-gpu==2.4.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

然后安装 CUDA 和 cuDNN

CUDA Installation Guide for Microsoft Windows (nvidia.com)

CUDA Toolkit 12.1 Update 1 Downloads | NVIDIA Developer

这个网站下方 Archive of Previous CUDA Release 中有以前的版本

Installation Guide - NVIDIA Docs

cuDNN Download | NVIDIA Developer

一切同理

跟着文档走,下载 Zlib 配置环境变量添加 zlibwapi.dll 所在路径到 PATH

然后下载 cuDNN 解压并复制内容到 CUDA 安装路径下。

然后理论上就OK了

人工智能基础项目 1.环境配置

首先需要了解的东西

假设你了解基本的 Python 语言知识,并理解 Python 包的管理方式。

以下内容需要进行了解:

  1. Jupyter Notebook

Jupyter Notebook 顾名思义,是一个笔记应用,它编辑的笔记后缀为 .ipynb,笔记的内容以块为单位组织,块分为 Markdown 内容块和 Python 代码块(其实也支持一些其他数据科学常用的语言),其中的每一个块都可以执行,Markdown 内容快执行的效果即进行渲染,代码块执行的效果即将运行的输出以及最后一条语句的值显示出来。

但说他是个应用,其实不完全是,因为它其实是一个 Web 服务,分为前后端。前端网页负责提供笔记的界面并与后端沟通,而后端 Jupyter 内核负责与 Python 解析器交流。

可以达到下面的效果:

image-20230531102957369

  1. Anaconda、conda、pip、venv/virtual env

Anaconda 是一个 Python 发行版本,其中包含 Python 本体、conda 以及 180+ 个和数据科学有关的 Python 包。他还有另一个精简版本叫做 Miniconda,可以理解为不带有那 180+ 个 Python 包,使得用户可以选择只安装自己需要的包,减小了占用的空间大小。

pip 是 python 用于管理依赖的工具,比如我要安装一个名为 matplotlib 的包,我只需执行 pip install matplotlib

venvvirtual env 都是用于创建独立的 Python 环境的工具,前者是 Python3 标准库自带的,而后者是一个单独的 Python 包。有时我们写的不同项目会用到不同版本的 Python,甚至会用到不同版本的同一个包,此时独立的环境就极为重要。

conda 是一个用于管理依赖和环境的工具,可以理解为对 pipvenv 的组合,使用起来更加便捷。

一、安装

DataSpell

前往 Jetbrains 官网:JetBrains: 软件开发者和团队的必备工具

image-20230531102328219

安装完成后打开会有这样一个界面:

image-20230531104353736

这里要求你对默认的环境进行配置,其中:

  • Type 为环境的类型,这里选择使用 Conda(接下来会说怎么安装 Conda)

image-20230531104426715

  • Conda Executable 为 Conda 可执行文件的路径
  • Conda environment 为使用的 Conda 环境,填完 Conda Executable 后应当会自动显示一个默认的环境。

Conda

可以选择去官网下载安装,但是这里我选择使用 Scoop 安装。

有关 Scoop 见 aoike - 告别繁琐安装界面,使用Scoop管理Windows软件 (azurice.github.io)

image-20230531104811410

Text Only
scoop install extras/miniconda3

然后在刚才 DataSpell 的 Conda Executable 中选择这个文件:

image-20230531105154954

Launch DataSpell!

二、基本使用

进去后,就是经典的 Jetbrains IDE 的布局。

但是它并不是按照 项目(Project)来组织的而是按照 工作区(Workspace)来组织的:

image-20230531105329818

每一个工作区中可以包含多个目录,目录可以通过按钮来进行添加。也就是说它是连接到各个位置的目录,而非将一切放到一个目录下。

比如我这里添加了一个路径为 F:\Dev\AI 的目录:

image-20230531105625426

你可以为每一个目录选择不同的解释器:

image-20230531105649721

不过目前我们不用管他。

创建一个 Jupyter Notebook 文件:

image-20230531105720278

创建完毕后打开,它会提示你没有安装 Jupyter,点击安装,安装完成后等待 Updating skeletons 完成,即可:

image-20230531105746209

image-20230531110226463

至于为什么用 DataSpell 而不直接用 Jupyter 呢?因为 DataSpell 有代码补全:

image-20230531110354194

这些个按钮自己理解一下,这个代码块的运行效果如下:

image-20230531110459955

三、更多例子

Python
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme(style="dark")

# Simulate data from a bivariate Gaussian
n = 10000
mean = [0, 0]
cov = [(2, .4), (.4, .2)]
rng = np.random.RandomState(0)
x, y = rng.multivariate_normal(mean, cov, n).T

# Draw a combo histogram and scatterplot with density contours
f, ax = plt.subplots(figsize=(6, 6))
sns.scatterplot(x=x, y=y, s=5, color=".15")
sns.histplot(x=x, y=y, bins=50, pthresh=.1, cmap="mako")
sns.kdeplot(x=x, y=y, levels=5, color="w", linewidths=1)

提示没有安装库可直接将鼠标移到红线上后点击浮动框中的 Install,或者手动执行:

Text Only
conda install numpy seaborn matplotlib

image-20230531110846059

项目要求

要求:参考三个选题(手写体数字识别、人脸识别、猫狗识别),可以结合大创的项目。不可以选择百度 AIStudio 上原封不动的项目,必须有所修改,或者修改模型结构,或者修改数据集。否则,20 分的项目,最多得 10 分。

项目内容

手写体数字识别属于典型的图像多分类问题

实践平台:百度AI实训平台-AI Studio

实践流程

  • 准备数据

  • 配置网络

  • 定义网络
  • 定义损失函数
  • 定义优化算法
  • 训练网络
  • 模型评估
  • 模型预测

实验要求

  1. 按实践流程调通程序

  2. 采用MNIST数据集,原数据集中只有黑底白字,在原数据集中增加白底黑字的数字图像,即:使得系统也能识别白底黑字的数字图像。

  3. 撰写实验报告

  4. 将调通的程序发布到百度AI实训平台-AI Studio上,将实验报告提交到指定的助教邮箱。

评分

实验报告评分标准(10分):每组组员的分数相同

  1. 实验最终准确率(占2分):按准确率高低的排序给分。

  2. 实验尝试的模型(占3分):使用2个及以上经典卷积网络(如VGG等)的,得3分,使用1个经典CNN的得2分,未使用经典CNN的得1分。

  3. 实验调参(占2分):对学习率、优化器、模型的深度和宽度(隐层中神经元的数目)、激活函数等,进行过10次及以上尝试者,得2分;只进行少于10次尝试者得1—1.5分。

  4. 实验数据分析(占3分):以图表的形式展示实验结果,在此基础上进行深入讨论者,得3分;讨论内容肤浅者,得1--2分。

2. 项目展示与答辩评分标准(10分)

总分 最好的 accuracy(或 Precision 和 Recall) 演示功能正确 超时 阐述清晰 回答问题正确
10 2 3 2 2 1

其中,超时不包括提问环节,超时和最好的 accuracy(或 Precision 和 Recall)全组统一。

  1. 每组答辩时长 15 分钟,不需要制作 PPT,每人陈述 3 分钟,即自述 12 分钟。组员分工介绍以下内容:

  2. 项目思路

  3. 数据集规模,训练集、(验证集)、测试集的样本分配

  4. 模型的网络结构:几层卷积层、几个卷积、卷积大小、激活函数、损失函数、池化层、全连接层、输出层几个神经元

  5. 超参个数、如何设置的(学习率等)
  6. 训练模型的过程、训练时长
  7. 是否修改了网络结构,怎么修改的
  8. 尝试了几个模型,对比结果的结论是什么
  9. 展示运行结果

  10. 回答问题 3 分钟(覆盖课堂讲授的理论和实践内容),每人回答一个问题。

  11. 每组组员的得分不同,取决于个人在“阐述清晰”、“回答问题正确”、“演示功能正确”环节的表现。

    • 必须弄清楚 CNN 术语含义,尤其在分组答辩时,要用对术语,否则我的问题,你可能答不到点子上,也会浪费时间。

    • 若连老师所提的问题都听不懂,或弄错术语的含义,直接扣分。

3.专题研究报告提交要求

  1. 将上述专题研究报告的word文档以邮件附件的形式提交给助教(期末公布邮箱 )。
  2. 专题研究报告命名为:AI-组号-题目;邮件主题必须为:AI报告-组号-题目,否则无效。截止日期为6月17日12点。
  3. 提交此报告,不加分,但迟交或不交,扣分。
  4. 迟交1天(晚24小时内)扣2分;
  5. 迟交2天(晚48小时内)扣5分;
  6. 迟交3天(晚72小时内)扣10分;
  7. 3天后(超过72小时)视同未提交,即专题研究环节计0分。