文件名:【pytorch深度学习】torch-张量Tensor,三星e218
【pytorch深度学习】torch-张量Tensor
torch-张量Tensor
文章目录 torch-张量Tensor1. 张量Tensor
1. 张量Tensor torch.tensor() scalar_tensor
= torch
.tensor
(3.14)vector_tensor
= torch
.tensor
([1, 2, 3])matrix_tensor
= torch
.tensor
([[1, 2], [3, 4]])tensor_3d
= torch
.tensor
([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) torch.zeros()-全零张量 zero_tensor
= torch
.zeros
(3, 4) torch.ones()-全一张量 ones_tensor
= torch
.ones
(2, 3) torch.full()-常数填充张量 constant_tensor
= torch
.full
((2, 2), 7) torch.eye()-单位矩阵 identity_matrix
= torch
.eye
(3) torch.arange()-等差数列张量 range_tensor
= torch
.arange
(0, 10, 2) torch.rand()-随机张量 rand_tensor
= torch
.rand
(2, 3) torch.randn()-正态分布随机张量 randn_tensor
= torch
.randn
(3, 3) size()-形状 x
= torch
.rand
(2, 3)print(x
.size
()) dtype-数据类型指定及获取 x
= torch
.rand
(2, 3, dtype
=torch
.float)print(x
.dtype
) to()-GPU/CPU
if torch
.cuda
.is_available
():device
= torch
.device
("cuda") else:device
= torch
.device
("cpu") x
= x
.to
(device
) randn_like()、zeros_like()、ones_like()-已知张量创建形状类似的张量 t
= torch
.randn
(3,3)t1
= torch
.randn_like
(t
) 张量方法(它们有很多参数可选,要用再查): t
= torch
.rand
(3, 4, 5)t
.nelement
() t
.size
() t
.shape t
.size
(2) t
.view
(12, 5) t
.view
(-1, 6).shapet
.view
(-1, 6).transpose
(1, 0).shape 索引和切片
张量的索引和切片和列表基本是一样的,有步长、起点、终点等。例如:
t
[0,0,2] t
[:,1,1] t
>0 t
[t
> 0] 张量运算 add_res
= x
+ y sub_res
= x
- y mul_res
= x
* y div_res
= x
/ y add_res
= torch
.add
(x
, y
)sub_res
= torch
.subtract
(x
, y
)mul_res
= torch
.mul
(x
, y
)div_res
= torch
.div
(x
, y
) 转置: x
= torch
.randn
(3, 4)y
= x
.transpose
(0, 1) 下面是对张量操作的总结,不含代码,要用再查:
创建操作:用于构造张量的函数,如ones()和from_numpy()修改操作:用于直接修改张量索引、切片、连接、转换操作:用于改变张量的形状、步长或内容的函数数学操作:通过运算操作张量内容的函数: 逐点操作:通过对每个元素分别应用一个函数来得到一个新的张量,如abs()、cos()归约操作:通过迭代张量来计算聚合值的函数,如mean()比较操作:在张量上计算数字谓词的函数频谱操作:在频域上进行变换和操作的函数其他操作:作用于向量的特定函数,或对矩阵进行操作的函数BLAS和LAPACK操作:符合基本线性代数子程序规范的函数,用于标量、向量—向量、矩阵—向量、矩阵—矩阵操作 随机采样:从概率分布中随机生成值的函数序列化:保存和加载张量的函数并行化:用于控制并行CPU执行的线程数的函数。
与·numpy的互操作:
points_np
= points
.numpy
()points
= torch
.from_numpy
(points_np
)