pytorch tensor创建tensor
目录
一、使用torch.Tensor创建
二、直接生成特殊的tensor
三、仿造其他tensor生成
四、从numpy生成
五、tensor中的to方法
一、使用torch.Tensor创建
import torch
data=[[1,2],[3,4]]
x_data=torch.tensor(data) # 将列表和数组传给tensor会自动转成tensor类型
x_data1=torch.tensor((1,2,3,4)) # 使用元组创建
print(x_data1)
二、直接生成特殊的tensor
import torch
data1=torch.ones(1,2,3) # 创建一个维度为(1,2,3)的元素全为1的tensor
data2=torch.zeros(1,2,3) # 创建一个维度为(1,2,3)的元素全为0的tensor
data3=torch.randn(3,4,5) # 创建一个维度为(3,4,5)的符合正态分布的tensor
data4=torch.eye(4,5) # 创建一个维度为(4,5)的单位矩阵
data5=torch.randint(5,(5,8)) # 创建一个5一下的随机整数维度为(5,8)的tensot
print(type(data4))
print(data4)
三、仿造其他tensor生成
import torch
data0=torch.Tensor([1,2,3,4])
data1=torch.ones_like(data0) # 仿造传入tensor生成相同形式的全为1的tensor
data2=torch.empty_like(data1) # 生成全为0的tensor
print(data2)
四、从numpy生成
import torch
import numpy as np
arr=np.array([1,2,3,4])
tensor0=torch.from_numpy(arr) # 对arr进行了浅拷贝
tensor1=torch.Tensor(arr) # 对arr进行了深拷贝
arr[0]=100
data_numpy=tensor0.numpy() # 将tensor转成numpy
print(tensor0) # 和arr数组一起改变
print(tensor1)
五、tensor中的to方法
1.数据类型转换
tensor0=torch.ones(4,5)
tensor1=tensor0.to(torch.int64) # 将数据类型转换成传入的数据类型
tensor2=tensor0.to(tensor1) # 将数据类型转换乘传入的tensor的类型
print(tensor2)
2.device转化
def tensor_device_demo():
if torch.cuda.is_available():
device=torch.device('cuda:0')
else:
device=torch.device('cpu')
# 将数据转到gpu中运行
tensor0=torch.randn(4,5)
tensor1=tensor0.to(device)