深度学习:PyTorch创建Tensor

本文详细介绍了如何使用numpy和torch创建不同维度的张量,以及如何设置默认数据类型。还涵盖了均匀分布、正态分布、全零全一矩阵、对角线矩阵、等差数列和随机排列等内容。
摘要由CSDN通过智能技术生成

第一节、创建Tensor-1

1.使用numpy创建tensor

#创建Tensor的方法一:numpy
a=np.array([2,3.3])#表示导入dimension=1的张量
print(torch.from_numpy(a))
print(torch.from_numpy(a).dim())#1

a=np.ones([2,3])#表示导入dimension为2的张量,值全部用1来填充
print(torch.from_numpy(a))
print(torch.from_numpy(a).dim())#2

2.使用torch创建tensor

#创建Tensor的方法二
a=torch.Tensor([2.,3.3])
print(a)
print(a.dim())#1

a=torch.Tensor([[2.,3.3],[1.,4.4]])
print(a)
print(a.dim())#2

a=torch.FloatTensor(2,3)#dimension=2
print(a)
print(a.dim())#2

a=torch.IntTensor(1,2,3)#dimension=3
print(a)
print(a.dim())#3

a=torch.empty(2,3)#dimension=2
print(a)
print(a.dim())#2

3.设置tensor默认的数据类型

#设置tensor默认类型:set_default_tensor_type()
num=torch.tensor([1.,3.3])
print(num.type())#torch.FloatTensor

torch.set_default_tensor_type(torch.DoubleTensor)#将默认的FloatTensor改变成DoubleTensor
num1=torch.tensor([2.,4.4])
print(num1.type())#torch.DoubleTensor

第二节、创建Tensor-2

1.均匀分布

#均匀分布,数值在(0,1)之间
a=torch.rand(3,3)#表示dimension=2
print(a)
print(torch.rand_like(a))#rand_like传入的参数是变量,rand传入的参数是shape
print(a.dim())#2

#均匀分布,整数,数字在[x1,x2)之间
b=torch.randint(1,10,[3,3])#表示得出的数在[0,10)之间,[3,3]是shape
print(b.dim())#2
print(b)

2.正态分布

#正态分布:在0的附近跳动
a=torch.randn(3,3)#表示随机生成dimension=2的三行三列的张量
print(a)
print(a.dim())#2

b=torch.normal(mean=torch.full([10],0),std=torch.arange(1,0,-0.1))
print(b)
print(b.dim())#是dimension=1,里面有10个值的张量

3.将所有元素赋值成同一个值

#把所有元素全部赋值成一个元素
num=torch.full([3,3],7)#dimension=2,三行三列的张量
print(num)
print(num.dim())

num=torch.full([],7)#标量7
print(num)
print(num.dim())#0

num=torch.full([1],7)#张量7,dimension=1
print(num)
print(num.dim())#1

4.torch.linspace()

#torch.linspace()
a=torch.linspace(0,10,11)
print(a)#根据间隔平均分成有11个数,等差数列
print(a.dim())#1

a=torch.linspace(0,10,10)
print(a)#根据间隔平均分成10个数,等差数列
print(a.dim())#1

a=torch.linspace(0,10,4)
print(a)#根据间隔平均分成4个数,等差数列
print(a.dim())#1

5.torch.logspace()

#torch.logspace()
a=torch.logspace(0,-1,10)
print(a)#分割成10个数,x1,x2,x3,...,x10,结果分别是10^x1,10^x2,...,10^x10
print(a.dim())#1

6.torch.ones()和torch.zeros()

#生成全部为0的
a=torch.zeros(3,3)
print(a)
print(a.dim())#2


#生成全部为1的
a=torch.ones(3,3)
print(a)
print(a.dim())

7.torch.eye()

#生成对角线为1,其他全是0的
a=torch.eye(3,3)
print(a)
print(a.dim())#2

a=torch.eye(3)
print(a)
print(a.dim())#2

8.torch.randperm()

#torch.randperm()
a=torch.randperm(10)#[0,10)之间随机分散开
print(a)

num1=torch.rand(2,3)
num2=torch.rand(2,2)
idx=torch.randperm(2)
print(idx)#表示[0,1)打乱顺序

print(num1)
print(num2)

print(num1[idx])
print(num2[idx])

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值