import torch
import numpy as np
# 张量的初始化
data=[[1,2],[3,4]]
tensor_data=torch.tensor(data) # 直接生成张量
np_array=np.array(data)
tensor_np=torch.from_numpy(np_array) # numpy数组生成
tensor_type=torch.ones_like(tensor_data,dtype=torch.float) # 继承tensor_data结构,重写数据类型,也可以不重写
tensor_retype=torch.rand_like(tensor_data,dtype=torch.float) # 继承tensor_data结构,指定数据类型随机数据
shape=(2,3) # 指定大小生成张量
rand_tensor=torch.rand(shape)
ones_tensor=torch.ones(shape)
zero_tensor=torch.zeros(shape)
# 张量属性
size=tensor_data.shape # 维数
type=tensor_data.dtype # 数据类型
device=tensor_data.device # 存储设备
# gpu运算张量
if torch.cuda.is_available():
tensor_data=tensor_data.to('cuda')
# 张量运算
tensor=torch.ones(4,4)
tensor[:,1]=0 # 第一列清零
t1=torch.cat([tensor,tensor,tensor],dim=1) # 张量拼接,横向,不加dim=1是纵向拼接
t2=tensor*tensor # 等价于tensor。mul(tensor)逐个元素相乘
t3=tensor@tensor.T # 等价于tensor。matmul(tensor.T)逐个矩阵相乘
tensor.add_(2) # 逐个元素+2
# 张量和numpy数组,两者可以使用内存上同一块内存,改变一个另一个随之改变
t4=torch.ones(5)
n4=t4.numpy() # 张量转numpy
t4.add_(5)
n5=np.ones(5)
t5=torch.from_numpy(n5) # numpy转张量
pytorch——张量 & numpy
最新推荐文章于 2023-05-09 08:45:00 发布