我在读pyTorch文档(二)

常用Torch自带Tensor处理函数

  1. bool = torch.is_tensor(x):判断x是否为pytorch张量;
  2. bool = torch.is_storage(x):判断x是否为pytorch对象;
  3. N = torch.numel(x):输出pytorch张量x的元素数;
  4. x = torch.eye(n):输出n*n的二维单位矩阵;
  5. y = torch.from_numpy(x):将numpy矩阵x转化为torch张量y,共享内存;
  6. x = torch.linspace(start, end, step):输出一维间隔张量x;
  7. x = torch.logspace(start, end, step):输出一维指数间隔张量x;
  8. x = torch.ones(dim0,dim1,dim2,…):输出一维全1张量x;
  9. x = torch.rand(dim0,dim1,dim2,…):输出一维随机张量x,随机数范围[0,1];
  10. x = torch.randn(dim0,dim1,dim2,…):输出一维随机张量x,服从均值为0方差为1的正态分布;
  11. x = torch.randperm(n):输出从0到n-1的随机整数排列张量;
  12. x = torch.arange(start, end, step):输出一维间隔张量x;
  13. x = torch.range(start, end, step):与12有细小差别,建议用12;
  14. x = torch.zeros(dim0,dim1,dim2,…):输出一维全0张量x;
  15. y = torch.cat((x1,x2,x3,…), dimension):张量连接函数;
  16. y = torch.chunk(x, chunks, dim):对x在给定轴dim上进行切片成chunks块;
  17. y = torch.gather(x, dim, index):根据dim从x中输出index索引矩阵对应的张量;
  18. y = torch.index_select(x, dim, index):根据dim从x中输出index索引矩阵对应的张量向量;
  19. y = torch.masked_select(x, mask):根据mask矩阵取出取输入张量x中的指定项,将取值返回到一个新的1D张量;
  20. y = torch.nonzero(x,):输出包含输入x中非零元素索引的张量,输出张量中的每行包含输入中非零元素的索引;
  21. y = torch.split(x, split_size, dim):将输入张量x沿着维度dim分割成相等形状的张量;
  22. y = torch.squeeze(input, dim=None):将输入张量大小为1的维度进行挤压,若给定dim,则若dim维度为1则进行挤压, 返回张量与输入张量共享内存,所以改变其中一个的内容会改变另一个;
  23. y = torch.stack(sequence, dim):沿着一个新维度对输入张量序列进行连接,序列中所有的张量都应该为相同形状;
  24. y = torch.t(x):对二维张量x进行转置;
  25. y = torch.transpose(x, dim0, dim1):对输入张量x进行转置,交换维度dim0和dim1,输出张量与输入张量共享内存;
  26. y = torch.unbind(x,dim):移除指定维后,输出一个元组,包含了沿着指定维切片后的各个切片;
  27. y = torch.unsqueeze(x, dim):输出一个新的张量,对输入的制定维度插入维度 1,返回张量与输入张量共享内存;

Torch并行函数

  1. torch.get_num_threads():获得用于并行化CPU操作的OpenMP线程数;
  2. torch.set_num_threads(N):设定用于并行化CPU操作的OpenMP线程数;

Torch数学函数1

  1. y = torch.abs(x):取绝对值;
  2. y = torch.acos(x):取反余弦函数;
  3. y = torch.add(x, value, other):y = x + (other ∗ value),两个张量x和other的尺寸不需要匹配,但元素总数必须一样;
  4. y = torch.addcdiv(x, value, z1, z2):y = x + value * (z1./z2);
  5. y = torch.addcmul(x, value, z1, z2):y = x + value * (z1.*z2);
  6. y = torch.asin(x):取反正弦函数;
  7. y = torch.atan(x):取反正切函数;
  8. y = torch.ceil(x):向上取整函数,2.3->3,-2.3->-2;
  9. y = torch.clamp(input, min, max):将输入x张量每个元素的夹紧到区间 [min,max],如果只给min参数,那么默认max为正无穷,同理如果只给max参数,那么默认min为负无穷;
  10. y = torch.cos(x):取余弦函数;
  11. y = torch.cosh(x):取双曲余弦函数;
  12. y = torch.div(x, value):将x逐元素除以标量值value,value可以和x拥有相同的形状,完成逐点相除;
  13. y = torch.exp(x):将x逐元素取e指数;
  14. y = torch.floor(x):向下取整函数,2.3->2,-2.3->-3;
  15. y = torch.fmod(x, divisor):计算除法余数,divisor为标量,余数的正负与被除数相同;
  16. y = torch.remainder(x, divisor):计算逐元素除法余数,余数的正负与被除数相同;
  17. y = torch.frac(x):返回每个元素的分数部分;
  18. y = torch.lerp(x1, x2, weight):线性插值函数,y=x1+weight∗(x2−x1);
  19. y = torch.log(x):对x取自然数对数;
  20. y = torch.log1p(x):y = log(x + 1);
  21. y = torch.mul(x):将x逐元素乘以标量值value,value可以和x拥有相同的形状,完成逐点相除;
  22. y = torch.neg(x):y = -x;
  23. y = torch.pow(x, exponent):将x逐元素对exponent取指数幂,exponent可以和x拥有相同的形状,完成逐点相除;
  24. y = torch.reciprocal(x):y = 1.0/x;
  25. y = torch.round(x):将输入x张量每个元素舍入到最近的整数;
  26. y = torch.rsqrt(x):将输入x张量每个元素平方根后取倒数;
  27. y = torch.sigmoid(x):逐元素取sigmoid值;
  28. y = torch.sign(x):逐元素取符号值;
  29. y = torch.sin(x):逐元素取正弦;
  30. y = torch.sinh(x):逐元素取正弦;
  31. y = torch.sqrt(x):逐元素开平方根;
  32. y = torch.tan(x):逐元素取正切;
  33. y = torch.tanh(x):逐元素取双曲正切;
  34. y = torch.trunc(x):逐元素向0取整;

Torch数学函数2

  1. y = torch.cumprod(x, dim):沿着指定维度yi=x1∗x2∗x3∗…∗xi;
  2. y = torch.cumsum(x, dim):沿着指定维度yi=x1+x2+x3+…+xi;
  3. y = torch.dist(x1, x2, p):输出x1-x2的p范数;
  4. y = torch.mean(x, dim):输出x给定维度每行的平均数,输出形状与输入相同,除了给定维度上为1;
  5. y = torch.median(x, dim):输出x给定维度每行的中位数,输出形状与输入相同,除了给定维度上为1;
  6. y = torch.mode(x, dim):输出x给定维度每行的众数,输出形状与输入相同,除了给定维度上为1;
  7. y = torch.norm(x, p, dim):输出x给定维度的p范数,输出形状与输入相同,除了给定维度上为1;
  8. y = torch.prod(x,dim): 输出x给定维度的所有元素乘积,输出形状与输入相同,除了给定维度上为1;
  9. y = torch.std(x,dim): 输出x给定维度的所有元素标准差,输出形状与输入相同,除了给定维度上为1;
  10. y = torch.sum(x,dim): 输出x给定维度的所有元素和,输出形状与输入相同,除了给定维度上为1;
  11. y = torch.var(x,dim): 输出x给定维度的所有元素方差,输出形状与输入相同,除了给定维度上为1;
  12. 4–11中若不指定维度dim,则计算所有元素的相应功能;

Torch数学函数3

  1. y = torch.eq(x1,x2):判断是否相等,返回与x1形状相同的mask;
  2. y = torch.equal(x1,x2):判断是否相等,返回True或者False;
  3. y = torch.ge(x1,x2):判断是否大于等于,返回与x1形状相同的mask;
  4. y = torch.gt(x1,x2):判断是否大于,返回与x1形状相同的mask;
  5. y = torch.kthvalue(x, k, dim):取输入张量x指定维上第k 个最小值,返回值和索引;
  6. y = torch.le(x1,x2):判断是否小于等于,返回与x1形状相同的mask;
  7. y = torch.lt(x1,x2):判断是否小于,返回与x1形状相同的mask;
  8. y = torch.max(x,dim):指定维度的最大值,若不指定维度,则为所有元素最大值;
  9. y = torch.max(x1, x2):y = max(x1,x2);
  10. y = torch.min操作同max;
  11. y = torch.ne(x1,x2):判断是否不等于,返回与x1形状相同的mask;
  12. y = torch.sort(x, dim, descending):对x1的指定维度做升序或者降序排列;
  13. y = torch.topk(x, k, dim, largest, sorted):取前k个最大值;
  14. y = torch.diag(x, diagonal):对角化/反对角化操作,diagonal = 0为主对角线,diagonal > 0为主对角线之上,diagonal < 0为主对角线之下;
  15. y = torch.histc(x, bins, min, max):直方图操作,min和max同时为0则取原数据的最大最小值;
  16. y = torch.trace(x):二维矩阵的迹;
  17. y = torch.tril(x, k):下三角矩阵操作,k = 0为主对角线,k > 0为主对角线之上,k < 0为主对角线之下;
  18. y = torch.triu(x, k):上三角矩阵操作,k = 0为主对角线,k > 0为主对角线之上,k < 0为主对角线之下;

Torch数学函数4

  1. y = torch.addbmm(beta, mat, alpha, batch1, batch2):y = (beta∗M)+(alpha∗sum(batch1_i*batch2_i))
  2. y = torch.addmm(beta, mat, alpha, mat1, mat2): y = (beta∗M)+(alpha∗mat1*mat2);
  3. y = torch.addmv(beta, tensor, alpha, mat, vec):y = (beta∗tensor)+(alpha∗(mat*vec));
  4. y = torch.addr(beta, mat, alpha, vec1, vec2):y = (beta∗mat)+(alpha∗vec1×vec2);
  5. y = torch.baddbmm(beta, mat, alpha, batch1, batch2):y = (beta∗mat)+(alpha∗batch1×batch2);
  6. y = torch.bmm(batch1, batch2):y = sum(batch1_i*batch2_i);
  7. y = torch.btrifact(x):LU分解;
  8. y = torch.btrisolve(b, LU_data, LU_pivots):结合7求方程组的解;
  9. y = torch.dot(x1, x2):求点积;
  10. y = torch.eig(x, eigenvectors):计算特征值特征向量;

你可能感兴趣的:(pytorch学习)