一、Tensor
Tensor(张量是一个统称,其中包括很多类型):
0阶张量:标量、常数、0-D Tensor;1阶张量:向量、1-D Tensor;2阶张量:矩阵、2-D Tensor;……
二、Pytorch如何创建张量
2.1 创建张量
2.2 tensor与ndarray的关系
两者之间可以相互转化
运行结果:
2.3 常用api
torch.empty(x,y)
创建x行y列为空的tensor。
torch.ones([x, y])
创建x行y列全为1的tensor。
torch.zeros([x,y])
创建x行y列全为0的temsor。
zeros与empty的区别
后者的数据类型是不固定的。
torch.rand(x, y)
创建3行4列的随机数,随机数是0-1。
torch.randint(low, high, size)
创建一个size的tensor,随机数为low到high之间。
torch.randn([x, y])
创建一个x行y列的tensor,随机数的分布式均值为0,方差1。
2.4 常用方法
item():
一个元素
numpy():
ndarray
size()
形状
view()
浅拷贝形状改变view(-1,2)view(4, 2)
dim()
获取维度。
max()
获取最大值。
t()
转置。
transpose(x,y)
x,y是size里面返回的形状相换。
permute()
传入size()返回的形状的顺序。
transpose与permute的区别
前者传入列即可相互交换;后者传入列会根据传入的顺序来进行转化,且需要传入所有列数的索引。
取值[第一阶, 第二阶,……]
一个逗号隔开代表一个阶乘冒号代表全取
赋值[第一阶, 第二阶,……]
直接赋值即可
三、数据类型
3.1 获取数据类型
tensor.dtype
获取数据类型
设置数据类型
Tensor()
type()
修改
四、tensor的其他操作
4.1 相加
torch.add(x, y)
相加
直接相加
tensor.add()
add_()
4.2 tensor与数字的操作
tensor + 数值
五、CUDA中的tensor
CUDA.to
torch.cuda.is_available()