PyTorch---(七)创建tensor

本文详细介绍了如何在PyTorch中从NumPy数组、列表导入数据,创建未初始化的张量,设置默认张量类型,以及使用rand、rand_like、randint等函数生成随机张量的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

1 从numpy导入数据   torch.from_numpy(a)

import torch
import torchvision
import numpy as np

a = np.array([2, 3.3])
a = torch.from_numpy(a)
print(a)
# out: tensor([2.0000,3.0000], dtype=torch.float64)

a = np.ones([2, 3])
a = torch.from_numpy(a)
print(a)
# out: tensor([[1., 1., 1.],
               [1., 1., 1.],dtype=torch.float64)

2 从list导入数据

传入数据用tensor,传入形状用FloatTensor

# 2 import from list
b = torch.tensor([2., 3.2])
print(b)
# out:tensor([2.0000, 3.2000])
# 传入数据用tensor,传入形状用FloatTensor
# 小写的tensor接受数据,
# 大写的Tensor()或者FloatTensor()接受的是shape,数据的维度

b = torch.FloatTensor([2., 3.2])
print(b)
# out:tensor([2.0000, 3.2000])
# 少用,容易混淆:也可以接受数据,在列表里面,
b = torch.FloatTensor(2, 3)  # 两行三列
print(b)
# out:tensor([[1.0790e-43, 0.0000e+00, 1.4013e-45],
#         [0.0000e+00, 1.4013e-45, 0.0000e+00]])
b = torch.tensor([[2., 3.2], [1., 22.3]])
print(b)
# tensor([[ 2.0000,  3.2000],
#         [ 1.0000, 22.3000]])

 

3 未定义的初始化  unintialized

1 未初始化的
torch.empty,
torch.FloatTensor

未初始化,最终需要把数据写进去不然后面会出问题

 

2 设置默认

Tensor代表着默认类型,
pytorch默认为FloatTensor, 
tensor([1.1])也会认为是FloatTensor

除非我做了设置
其他类型还有IntTensor, DoubleTensor

 

print(torch.tensor([1.2, 3]).type())
torch.set_default_tensor_type(torch.DoubleTensor)
print(torch.tensor([1.2, 3]).type())

# out:
torch.FloatTensor
torch.DoubleTensor

4 rand /rand_like ,   randint

1 torch.rand函数:

   每个元素, 随机均匀分布在[0, 1]

  torch.rand_like()

2 使用自定义空间 torch.randint (min, max, [shape])
随机取值范围:[min, max)

 

d = torch.rand([3, 3])
print(d)
# tensor([[0.2792, 0.3550, 0.2530],
#        [0.8100, 0.7595, 0.4843],
#        [0.6003, 0.5629, 0.3204]])


d = torch.rand_like(d)
print(d)
# tensor([[0.4093, 0.1789, 0.5550],
#        [0.8076, 0.5962, 0.4770],
#        [0.5378, 0.9922, 0.7233]])


d = torch.randint(1, 10, [3, 3])
print(d)
# tensor([[3, 3, 3],
#        [2, 7, 7],
#        [3, 3, 6]])

5 正态分布的随机分布torch.randn([3, 3])

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机视觉-Archer

图像分割没有团队的同学可加群

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值