一:函数理解:
1: torch.concatenate(tensor 1 , tensor2 , axis =0,1) 若axis = 0,则在列上进行连接,若axis = 1 ; 则在行上进行连接 ; 同时tensor可以换成numpy进行连接 ;
2:torch.norm(numpy or tensor , ord =1 /2 , axis =0 /1) 详解:是求tensor或者numpy的范数,若ord=1,则求第一范数,axis =0,则求列向量的范数 ;
3:torch.tensor.item(): 解析:前面若是单元素的tensor时候,可以调用item将其变成一个标量;
4: 若a是二维的list , 关于list a [x:y]的截取说明: a[x:y],左闭右开,取这些行 ; a[x , y]:取x,y这个数 ; a[1 , x::y]:在第二行,从x处开始,每隔y取一个数 ;
5:tensor和numpy的互换: a = from_numpy(b),此时将numpy转换为tensor,且两者公用相同的内存 , 改变numpy的值就会改变tensor的值;
6:看完这本书后,记得在看一遍torch文档,然后在把之前的3DDFA和3DDFA_V2之前的项目看下,整理结束后,在看下3dmm face论文 ;
7:关于数据的特征变量还有标签的组合说明:所谓的特征就是输入的已知变量 (比如房价估算中的房子面积数和房子年数就是两个已知变量数据),标签就是该特征变量在真实权重参数的计算下得到的真实值 ; 此时我们可用: import torch.utils.data as Data dataset = Data.TensorDataset(输入特征的变量值, 该特征对应的真实标签) data_set = Data.Dataloader(dataset , batch_size , shuffle = true); 此时我们便可以获得打包好的数据集 ;
8:关于网络在训练前参数的初始化形式,可以参考如下形式进行初始化该权重参数 ; from torch.nn import init init.normal_(net.linear/conv2d/参数名.weight , mean = 0 ,std =0.1) ; 初始化均值为0 ,方差为0.1的参数 ;
9:关于全连接层的说明: 全连接层输入的数据是[batch_size , 输入数据的特征个数(参考房价预算的特征个数)] ,输出的数据是batch_size , 输出数据的种类个数 ; 在其中的运算形式是:output = input @ w.t() +b; 形变后就相当于output = w1x1 + w2x2+b;只不过变成了矢量的运算;其中这个input就是输入的特征变量,w 就是权重参数, output就是这次的预测值 ; 全程可以参考房价预算的这个例子,包含两个特征的变量, 还有一个预测值
|