PyTorch学习笔记 1. 安装配置和一些基本概念

PyTorch学习笔记 1. 安装配置


本文学习资源《深度学习框架 PyTorch入门与实践》,陈云编著,电子工业出版社

一、 学习环境

  • CentOS7

二、安装conda

wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh
chmod +x Anaconda3-2020.11-Linux-x86_64.sh
./Anaconda3-2020.11-Linux-x86_64.sh

按提示安装即可。

三、安装PyTorch包

1. 新建一个conda虚拟环境

conda create -n pytorch python=3.7
conda env list
conda activate pytorch

2. 安装PyTorch包

pip install   -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple torchvision
pip install --upgrade numpy

3. 测试

python

>>> import torch as t

没有报错则安装成功。

四、一些基本概念

1. Tensor

Tensor是PyTorch中重要的数据结构,可以理解为一个高维数组。表现形式可能是一个标量、一维数组、二维数组或更高维的数组。
Tensor和numpy的ndarrays类似,但Tensor可以使用GPU加速。

示例:

from __future__ import print_function
import torch as t

# 只分配空间,未执行初始化
x = t.Tensor(5,4)
print(x)

显示结果:
PyTorch学习笔记 1. 安装配置和一些基本概念

随机数初始化

from __future__ import print_function
import torch as t

x = t.rand(5,4)
print(x)

PyTorch学习笔记 1. 安装配置和一些基本概念

显示Tensor的形状

print(x.size())

PyTorch学习笔记 1. 安装配置和一些基本概念

Tensor加法

from __future__ import print_function
import torch as t

x = t.rand(5,4)
y = t.rand(5,4)

print(x)
print(y)
print(x+y)

PyTorch学习笔记 1. 安装配置和一些基本概念
加法还可以写成:

t.add(x,y)
或
result = t.Tensor(5,4)
t.add(x,y,out=result) # 输出到result变量

add_

  • 如果使用 y.add(x) , y不改变,返回一个新值。
  • 如果使用 y.add_(x) , 则y会改变。

GPU运算支持

if t.cuda.is_available():
    x = x.cuda()
    y = y.cuda()
    print(x+y)

2. Autogra 自动微积分

PyTorch的Autograd模块实现了微分运算。
autograd.Variable是Autogra中的核心类,它内部封装了Tensor。Tensor在被封装为Variable后,可以调用它的.backward实现反向传播,自动计算所有梯度。

Variable的数据结构如下:
PyTorch学习笔记 1. 安装配置和一些基本概念

import torch
from torch.autograd import Variable

a=Variable(torch.Tensor([1]),requires_grad=True) 
b=Variable(torch.Tensor([2]),requires_grad=True)
c=Variable(torch.Tensor([3]),requires_grad=True)


d=a+b
e=d+c
e.backward()

print(d.grad)     # 中间梯度值不保存,为空

print(a.grad_fn)  # 第一个节点的.grad_fn为空
print(e.grad_fn)  # <AddBackward0 object at 0x7f88153d6250>
上一篇:完美解决前端跨域之 easyXDM 的使用和解析


下一篇:用nginx的反向代理机制解决前端跨域问题在nginx上部署web静态页面