文章目录
%matplotlib具体作用是当你调用matplotlib.pyplot的绘图函数plot()进行绘图的时候,或者生成一个figure画布的时候,可以直接在你的python console里面生成图像。
%matplotlib inline
from __future__ import print_function
import torch
张量
Tensors与Numpy中的 ndarrays类似,但是在PyTorch中 Tensors 可以使用GPU进行计算.
张量是一个多维数据,是标量、向量、矩阵的高维拓展。
1.1 张量的创建
1.1.1 创建未被初始化张量
创建一个 5x3 矩阵, 但是未初始化
torch.empty()创建一个未被初始化数值的tensor,tensor的大小是由size确定
x = torch.empty(5,3)
print(x)
tensor([[1.0194e-38, 1.0469e-38, 1.0010e-38],
[8.9081e-39, 8.9082e-39, 5.9694e-39],
[8.9082e-39, 1.0194e-38, 9.1837e-39],
[4.6837e-39, 9.9184e-39, 9.0000e-39],
[1.0561e-38, 1.0653e-38, 4.1327e-39]])
1.1.2 随机初始化张量的创建
创建一个随机初始化的矩阵可以通过torch.randn和torch.rand以及torch.normal进行创建。
torch.randn和torch.rand和torch.normal的区别
* torch.rand(*sizes, out=None) 均匀分布:返回一个张量,包含了从区间[0, 1)的均匀分布中抽取的一组随机数。张量的形状由参数sizes定义。
* torch.randn(*sizes, out=None) 标准正态分布:返回一个张量,包含了从标准正态分布(均值为0,方差为1,即高斯白噪声)中抽取的一组随机数。张量的形状由参数sizes定义。
* torch.normal(means, std, out=None) 离散正态分布:返回一个张量,包含了从指定均值means和标准差std的离散正态分布中抽取的一组随机数。
* torch.linspace(start, end, steps=100, out=None)返回一个1维张量,包含在区间start和end上均匀间隔的step个点。输出张量的长度由steps决定。
#torch.rand(*sizes, out=None)
#sizes (int...) - 整数序列,定义了输出张量的形状
#out (Tensor, optinal) - 结果张量
y = torch.rand(5,3)#均匀分布
print(y)
tensor([[0.8548, 0.2107, 0.9187],
[0.6068, 0.9645, 0.7863],
[0.6950, 0.6796, 0.4461],
[0.5648, 0.4092, 0.6973],
[0.2998, 0.5046, 0.8426]])
y_rn = torch.randn(2,3)#标准正态分布
print(y_rn)
tensor([[ 1.3892, -1.0481, 0.5894],
[-0.0072, -0.9936, 0.8110]])
#因为我的是CPU版本所以需要注意数据类型
tmp = torch.arange(1