安装环境,windows:nvidia官网下载cuda以及cudnn
安装minicoda,
不要换源,安装对应版本的pytorch,
安装d2l和jupyter。(可以换源)
一.
n维数组是机器学习的主要数据结构:样本,特征,类别
创建数组:1.形状 ;2.每个元素数据类型 ;3.每个元素值
访问元素:[1:3,1:]注意,这里1:3为开区间,实际上取1和2行,1:表示1到n列
[::3,::2] ::3表示隔三行去一次,即0,3,6.... ::2表示隔两行取一次,即0,2,4....
张量表示一个由数值组成的数组,这个数组可能有多个维度(具有一个轴的张量对应数学上的向量(vector); 具有两个轴的张量对应数学上的矩阵(matrix))
1.arange可以生成一个行向量,以0开始的12个整数
2.shape可以访问张量形状
3.numel返回张量元素数
4.reshape改变一个张量的形状而不改变元素数量和元素值(我们可以通过-1
来调用此自动计算出维度的功能。 即我们可以用x.reshape(-1,4)
或x.reshape(3,-1)
来取代x.reshape(3,4))
5.zeros可以创建一个全零的矩阵,相对的,ones可以创建全为1的数组。
6.可以用嵌套列表为张量元素赋予确定值。
二.运算符:1.+,-,*,/,**
2.按元素运算,exp()
3.X = torch.arange(12, dtype=torch.float32).reshape((3,4))生成0-11的张量,数据类型为float32,格式为(3,4)
4.Y = torch.tensor([[2.0, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])
torch.cat((X, Y), dim=0), torch.cat((X, Y), dim=1)
我们可以看出,dim=0时,以整行为单位操作及改变行数;dim=1时以整0列为单位操作,即改变列数。
5.sum求和
三.广播机制
四.
五.
操作大内存不要太多赋值。
六.
学习numpy,
.item(),float()以及int()操作都是针对只有一个元素的张量的。