线性代数
一.标量
只有一个元素的张量
import torch#pytorch引用
x=torch.tensor(3.0)
y=torch.tensor(4.0)
print(x)
print(y)
print(x+y)
print(x**y)#x的y次方
二.向量
(1)由标量值组成的列表
a=torch.arange(5)
print(a)
print(a[3])#下标从0开始
输出:
(2)张量长度和形状
h=torch.tensor([1,8,2])
print(len(h))#张量长度
print(h.shape)#张量形状,因为这个是一维向量所以结果是[张量长度]
输出:
(3)创建矩阵,reshape重新设定形状
A=torch.arange(16).reshape(2,8)#2行8列16个元素
print(A)
(4)转置
A=torch.arange(12).reshape(3,4)
print(A)
print("-------------------------")
print(A.T)#转置.T
(5)对称矩阵AT=A
B=torch.tensor([[1,2,3],[2,0,4],[3,4,5]])
print("转置前:")
print(B)
print("---------------------------")
print("转置后")
print(B.T)
print(B.T==B)#对比每个元素是否相等,相等用True
(6)三维矩阵
C=torch.arange(24).reshape(2,3,4)#2个部分,每个部分3行4列。三维,从左到右1~3维
print(C)
tensor([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
(7)clone()重新分配地址,将值复制过去!
D=torch.arange(24).reshape(4,6)
print("D矩阵:")
print(D)
print(id(D))
E=D.clone()
print("E矩阵:")
print(E)
print(id(E))
print(E+D)
(8)矩阵乘法(点乘)
D=torch.arange(24).reshape(4,6)
E=D.clone()
print(E*D)
D矩阵,E矩阵都是这样如下
结果输出:
(9)降维
import torch
A=torch.arange(12).reshape(3,4)
print(A)
print(A.sum())#对所有元素求和
print(A.sum(axis=0))#0维指的是对每一列的所有行求和
print(A.sum(axis=1))#1维,对每一行的所有列求和
print(A.sum(axis=[0,1]))#0,1两个维度就是对所有元素求和
(10)求平均值
import torch
A=torch.arange(12,dtype=torch.float32).reshape(3,4)#在arrange里要设置变量类型为float或复合型
print(A.sum())
print(A)
#print(A.size)
print(A.mean())
print(A.mean(axis=0))#第0维平均值
(11)非降维
import torch
A=torch.arange(12,dtype=torch.float32).reshape(3,4)
print("A:")
print(A)
print("A.sum(axis=1)")#按列求和
print(A.sum(axis=1))
print(" A.sum(axis=1, keepdims=True)")#按列求和且保持维度不变
sum_A = A.sum(axis=1, keepdims=True)
print(sum_A)
print("A/sum_A")#A中每一个元素除以sum_A对应行的元素
print(A / sum_A)
print("A.cumsum(axis=0)")
print(A.cumsum(axis=0))#按行依次叠加!
(12)点积(正常向量积)
import torch
import numpy as np
x=np.arange(4)
y=np.ones(4)
print(x)
print(y)
print(np.dot(x,y))
print(np.sum(x*y))
import numpy as np
A=np.arange(12).reshape(3,4)
print(A)
B=np.arange(8).reshape(4,2)
print(B)
print(np.dot(A,B))
(13)对应位置相乘
标签:reshape,sum,torch,arange,线性代数,print,axis From: https://www.cnblogs.com/luckyhappyyaoyao/p/18328824