本文主要是介绍python-pytorch 常用api打卡0.1.330,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
python-pytorch 常用api打卡0.1.100
- torch.nn
- torch.nn.Flatten
- torch.nn.Linear
- torch.nn.ReLU
- torch.nn Module
- model.train(True)
- Tensor操作
- argmax函数
torch.nn
torch.nn.Flatten
- 维度计数是从0开始
- m = nn.Flatten()默认从1维开始合并
- 合并的维度值,就是这些维度的乘积
- 对于数据维度的理解
如下数据input
4.1 对于数据-1.1995e+00来说需要input[0][0][0][0],而[0]的个数就是这个数据的“维度”
4.2 对于数据[-1.1995e+00, 1.6391e+00, -1.2680e+00, 2.5306e-02, 1.8864e-01]来说需要input[0][0][0],是“三维”
tensor([[[[-1.1995e+00, 1.6391e+00, -1.2680e+00, 2.5306e-02, 1.8864e-01],[ 6.5537e-01, -3.0261e-01, 6.1051e-01, -3.5670e-01, -3.0462e-01],[-2.4055e+00, 9.0808e-01, 6.8750e-01, -4.9038e-01, 5.9194e-01],[ 2.4578e+00, 1.5924e+00, 6.7753e-01, 8.1588e-01, 4.2632e-01],[ 4.9011e-01, -4.9083e-01, 1.3152e+00, -8.3352e-01, 1.0400e-01]]],[[[ 3.0514e-01, -9.6460e-01, 3.7641e-02, -1.8372e-02, -1.7491e+00],[-1.5873e-01, -1.1810e+00, 1.9811e+00, 4.6428e-01, -5.8273e-01],[-2.6358e-01, -8.0828e-01, -1.9920e+00, -6.6097e-01, -4.1544e-01],[-1.4223e+00, -9.7968e-01, 1.0762e+00, 5.4633e-01, -1.1961e+00],[ 2.8003e-01, -2.4002e-01, -4.5771e-01, -1.7926e+00, -2.4925e-02]]],
torch.nn.Linear
- 参数是输入和输出都是特征数,可以简单理解成特性就是列
- 模型输入的参数要求,只要满足要求的特征数(列)即可,不管数据有多少行
- 由于是xw+b=y,再根据矩阵乘法的要求:被乘数的列一定要和乘数的行相等,即axb,a的列要等于b的行
- 创建线性层时会自动创建权重矩阵和偏置向量,并将它们保存在模型的参数列表中
- 这个模型处理的数据,注意不是参数,一定要是torch.float32的,否则会报错RuntimeError: mat1 and mat2 must have the same dtype
torch.nn.ReLU
- max(0,x),大于0取值本身,小于0取值0
- 最重要的意义是:非线性性,使得神经网络能够拟合非线性函数,从而增强模型的表示能力;其他意义还有如稀疏性、计算效率、缓解梯度消失问题等
torch.nn Module
model.train(True)
- 训练时,在模型使用到Dropout, BatchNorm层的时候必须要使用到model.train(),至于为什么参见第4点
- test时,在模型使用到Dropout, BatchNorm层的时候必须要使用到model.eval(),至于为什么参见第4点
- model.eval()等同于model.train(False)
- https://www.jb51.net/article/281007.htm
Tensor操作
argmax函数
argmax(1):取列表每行的最大值
argmax(0):取列表每列的最大值
这篇关于python-pytorch 常用api打卡0.1.330的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!