文章目录
前言
一、pytorch简介
二、pytorch安装
1.安装Anaconda
2.安装 pytorch
三、pytorch基础知识
1.张量
2.创建tensor
3.张量的操作
1.加法
2.索引操作
总结
本文记录了一些pytorch学习的相关记录,作为本人查询的笔记。
PyTorch是由Facebook人工智能研究小组开发的一种基于Lua编写的Torch库的Python实现的深度学习库,目前被广泛应用于学术界和工业界,而随着Caffe2项目并入Pytorch, Pytorch开始影响到TensorFlow在深度学习应用框架领域的地位。总的来说,PyTorch是当前难得的简洁优雅且高效快速的框架。
step1:进入官网选择合适的版本安装;
step2:安装后可在开始菜单栏查看;
step3:创建虚拟环境;
conda create -n env_name python==version
创建的虚拟环境:
conda create -n sun python==3.8
conda env list 可用于查询当前安装的虚拟环境
step4:换源,这里使用windows系统,conda换源(清华源)官方换源帮助
step1:进入pytorch官网PyTorch官网
step2:找到Install,我们需要结合自己情况选择命令并复制下来,然后使用conda下载或者pip下载。
具体安装此处不详细说明。
在深度学习中,我们通常将数据以张量的形式进行表示,比如我们用三维张量表示一个RGB图像,四维张量表示视频。
张量维度 |
代表含义 |
---|---|
0维张量 |
代表的是标量(数字) |
1维张量 |
代表的是向量 |
2维张量 |
代表的是矩阵 |
3维张量 |
时间序列数据 股价 文本数据 单张彩色图片(RGB) |
在PyTorch中,torch.Tensor 是存储和变换数据的主要工具。
可在虚拟工具中使用notebook来实现编程试验:
运行虚拟环境,选择合适的地址,运行notebook:
新建内容如图:
1.torch.rand()随机初始化矩阵
import torch
x = torch.rand(4, 3)
print(x)
tensor([[0.5522, 0.4581, 0.3311],
[0.9411, 0.3355, 0.3388],
[0.8535, 0.6223, 0.1819],
[0.1564, 0.0937, 0.8786]])
2.torch.zero()构造一个矩阵全为 0
import torch
x = torch.zero(4, 3)
print(x)
tensor([[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])
常见构造张量的方法:
函数 |
功能 |
---|---|
Tensor(sizes) |
基础构造函数 |
tensor(data) |
类似于np.array |
ones(sizes) |
全1 |
zeros(sizes) |
全0 |
eye(sizes) |
对角为1,其余为0 |
arange(s,e,step) |
从s到e,步长为step |
linspace(s,e,steps) |
从s到e,均匀分成step份 |
rand/randn(sizes) |
rand是[0,1)均匀分布;randn是服从N(0,1)的正态分布 |
normal(mean,std) |
正态分布(均值为mean,标准差是std) |
randperm(m) |
随机排列 |
import torch
# 方式1
y = torch.rand(4, 3)
print(x + y)
# 方式2
print(torch.add(x, y))
# 方式3 in-place,原值修改
y.add_(x)
print(y)
tensor([[1.4521, 0.8000, 1.1564],
[1.9135, 1.1953, 0.9734],
[1.6804, 1.0618, 0.2125],
[0.7221, 0.6130, 1.7743]])
tensor([[1.4521, 0.8000, 1.1564],
[1.9135, 1.1953, 0.9734],
[1.6804, 1.0618, 0.2125],
[0.7221, 0.6130, 1.7743]])
tensor([[1.4521, 0.8000, 1.1564],
[1.9135, 1.1953, 0.9734],
[1.6804, 1.0618, 0.2125],
[0.7221, 0.6130, 1.7743]])
需要注意的是:索引出来的结果与原数据共享内存,修改一个,另一个会跟着修改。如果不想修改,可以考虑使用copy()等方法
import torch
x = torch.rand(4,3)
# 取第二列
print(x[:, 1])
tensor([0.6358, 0.4822, 0.5770, 0.6834])
y = x[0,:]
y += 1
print(y)
print(x[0, :]) # 源tensor也被改了了
tensor([1.1131, 1.6358, 1.4098])
tensor([1.1131, 1.6358, 1.4098])
PyTorch中的 Tensor 支持超过一百种操作,包括转置、索引、切片、数学运算、线性代数、随机数等等,具体使用方法可参考官方文档。
jupyter notebook运行结果如图:
可进行单块运行,比较方便,推荐使用。
以上是本次学习的相关整理内容,简单学习了pytorch的相关简介与基础操作。之后将继续深入学习,利用pytorch编写相关程序及深度学习算法,实现更多操作内容。