“莫道幽人一事无,闲中尽有静工夫。” —— 吕岩《绝句》
有关PyTorch的几个网址
本次笔记主要基于PyTorch官网上的Tutorials提几点注意事项和心得。
PyTorch 安装
参照官网;
关于CUDA版本的确定:右键→NVIDIA控制面板→“帮助”里的“系统信息”→“组件”→“NVCUDA”
win+R下cmd→pip3→安装命令
linux下安装
1. torch安装
另外,linux安装可能因为网速限制等原因出现Read time out错误,此时可以使用如下命令提升timeout时间:
pip --default-timeout=6000 install torch torchvision
#--default-timeout=6000
2. 下载和更新CUDA可以在NVIDIA官网根据系统配置选择相应的下载版本和命令
系统:ubuntu 18.04
安装方式:cluster
网速有限,且经常无法响应,所以难以在终端中直接安装,可以选择在浏览器中先下载安装包,采用cluster方式安装;
按照官网指令解压,然后阅读readme文件;
主要是按照其中顺序安装各包(直接点击解压后的文件夹中文件,按照readme中顺序依次安装);
最后在readme下打开终端,输入readme最后一行命令(<pkg>/可以删去),程序回应“OK”
重启电脑后在终端中检查是否安装成功:
$ python3
>>> import torch
>>> torch.cuda.is_available()
# True
DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ
WHAT IS PYTORCH?
张量
PyTorch针对张量进行操作,首先需要创建张量(张量可以理解为多维度的矩阵,是矩阵的拓展);
import torch
命令 | |
torch.empty(dim) torch.zeros(dim) | 全零张量 |
torch.rand(dim) | [0,1]平均分布 |
torch.tensor(tensor) | 直接创建 |
torch_x.size() | 获取张量形状 |
张量操作
加减乘除同python;也可以利用自带的torch.add(x,y)等函数实现;
注意函数方法后带有下划线_ 的操作,考虑计算是否已经替换原变量;
reshape操作: e.g. tensor_x.view(-1,8)
张量tensor同numpy的转换
a.numpy()
torch.from_numpy(b)
可以像numpy和matlab里面那样用索引引用tensor中的元素;
需要注意的是tensor_a对应的numpy_b在torch自带操作函数下,改变tensor_a的值,numpy_b的值也会改变;
而使用一般的python操作符,则不会出现这种情况;
a = torch.ones(5)
b = a.numpy()
#See how the numpy array changed in value.
a.add_(1)
print(a)
print(b)
#Out:
#tensor([2., 2., 2., 2., 2.])
#[2. 2. 2. 2. 2.]
#Converting NumPy Array to Torch Tensor
#See how changing the np array changed the Torch Tensor automatically
import numpy as np
a = np.ones(5)
b = torch.from_numpy(a)
np.add(a, 1, out=a)
print(a)
print(b)
#Out:
#[2. 2. 2. 2. 2.]
#tensor([2., 2., 2., 2., 2.], dtype=torch.float64)
将tensor移至GPU
.to(device)方法