1. Pytorch基础
-
X.reshape(-1, 4)隐式指定第一维度的大小,通过程序自动推断。
-
torch.zeros((2, 3, 4)),参数是一个tuple,特别注意torch张量计算的广播性质
-
torch.cat((X, Y), dim=0) dim=0表示第一个维度相加,其他维度保持不变。
-
X == Y , X < Y, X > Y逐个元素进行比较,返回一个同大小的True-False张量,X.sum()会将所有元素相加。
-
如果我们想为多个元素赋值相同的值,我们只需要索引所有元素,然后为它们赋值
X[0:2, :] = 12 -
我们可以使⽤切⽚表⽰法将操作的结果分配给先前分配的数组,例如Y[:] = expression
-
pd.get_dummies(df, dummy_na=True) 实现哑变量编码,Convert categorical variable into dummy/indicator variable. 该函数可将dummy_na代表是否将NaN也记录,增加一行
-
哈达码积,两个向量逐个元素相乘。A * B ;Torch.dot(a, b)表示两个向量的点积,torch.mm(a, b)表示两个矩阵的矩阵乘法。
A. sum(axis=0,keepdims=True)表示第0轴在求和过程中就没有了。 -
torch.detach()用于将当前的tensor从计算图中取出通俗点解释就是,经过detach返回的张量将不会进行反向传播计算梯度。
-
pytorch神经网络
通过实例化nn.Sequential来构建我们的模型,层的执⾏顺序是作为参数传递的。 -
模型的参数访问
net[0].state_dict() 访问第一层的参数
net[0].bias.data 访问第一层访问偏置
net[2].weight.grad 访问第三层权重的梯度
net.named_parameters() 访问模型中所有的参数
net[2].bias.data访问偏置
可以使用net.state_dict()
来访问模型的参数,再利用torch.save()
便可保存。加载参数时先实例化一个对象clone
,再clone.load_state_dict(torch.load('mlp.params'))