深度学习整理笔记

Reference: 动手学深度学习(Dive into Deep Learning,D2L.ai)与其b站教程
本文作为自己的备忘录,主要记录DL相关算法及应用。代码实现基于PyTorch框架。

环境安装相关

介绍如何给系统和conda换源,以及下载GPU版的Pytorch。

镜像源

由于Great Firewall的存在,我们一般很难通过官方方法安装对应环境(下载速度太慢甚至无法连接)。为了解决下载问题,国内的一些服务器会搭建镜像源,将国外网站的软件包或数据库复制到国内服务器上,以方便国内用户访问;故我们使用软件时也可以将下载源头换成一些镜像源。
这里以中科大镜像源为例,请自行查看帮助中的PyPI、conda、Ubuntu等换源教程,并下载miniconda以方便管理虚拟环境。偷个懒先

下载Pytorch与CUDA

p.s. Python环境为3.9即可(更高版本的Python可能与CUDA不兼容,原因未知)
若需要使用Nvidia GPU,您需要先下载显卡驱动和驱动对应的CUDA驱动版本和CUDA版本一定要对应上)。用nvcc -V查看CUDA是否安装成功。
下载Pytorch时,若使用官方指引则可能无法访问源;参照阿里云镜像源,将官方指引中的https://download.pytorch.org/whl换成https://mirrors.aliyun.com/pytorch-wheels即可。
综上,我们的安装指令为(此处安装的是CUDA13.0版本):pip install torch torchvision torchaudio --index-url https://https://mirrors.aliyun.com/pytorch-wheels/cu130

安装jupyter

下载jupyter notebook:
pip install jupyter notebook
为了跑通d2l教程的代码,可以使用如下指令下载代码和jupyter记事本。

mkdir d2l-zh && cd d2l-zh
curl https://zh-v2.d2l.ai/d2l-zh-2.0.0.zip -o d2l-zh.zip
unzip d2l-zh.zip && rm d2l-zh.zip

运行jupyter notebook,就能在localhost:8888上愉快地看教程跑代码啦

Pytorch的一些操作

本章节记录Pytorch库的一些方法与技巧。当字典用,等到需要再回来翻翻

自动微分

torch.tensor类似于numpy的数组,但它可以计算、存储梯度。根据求导链式法则,torch可以根据变量的关系创建计算图。我们创建一个tensor,再设一个函数用来计算梯度:

import torch
x = torch.arange(4.0)
x.requires_grad_(True) #设置x是否需要梯度,等同于torch.arange(4.0,requires_grad=True)
#此时 x = tensor([1. ,2. ,3. ,4.])
y = 2 * torch.dot(x,x) #这样y是x的函数
y.backward() #反向向x传播梯度
x.grad() #输出:tensor([ 0.,  4.,  8., 12.])
# 可以清空x的梯度。
x.grad_zero_()

注意:torch无法计算高维张量的梯度。需要把它转换为标量才可backward()

y = 2 * x * x #这里的*是按分量求积,结果为向量
y.backward()
# RuntimeError: grad can be implicitly created only for scalar outputs,只能对标量结果创建梯度
y.sum().backward() #对y的分量求和后再传播
x.grad()
#此时 x = tensor([0., 2., 4., 6.])

有时也可以把中间变量分离开来,当作新的自变量。要做到这一点,则需要“切断”中间变量与自变量之间的梯度传播:

x.grad.zero_()
y = x * x
u = y.detach() #u相对于y的区别就是从原来的计算图分开,阻止梯度流向x
z = u * x
z.sum().backward()
x.grad == u #tensor([True, True, True, True])
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇