6.3.2 指定区间的张量创建

1.torch.arange(start, end, step)在区间内按步长创建张量

import torch

# torch.arange(start, end, step) 在区间[start,end)中创建步长为step的张量
tensor1 = torch.arange(10, 30, 2)
print(tensor1)

# torch.arange(end) 创建区间为[0,end),步长为1的张量
tensor2 = torch.arange(6)
print(tensor2)

2.torch.linspace(start, end, steps)在区间内按元素数量创建张量

import torch

# torch.linspace(start, end, steps) 在区间按元素数量创建张量
tensor1 = torch.linspace(10, 30, 5)
print(tensor1)

3.torch.logspace(start, end, steps, base)在指数区间内按指定底数创建张量

import torch

# torch.logspace(start, end, steps, base) 在区间[start,end]之间生成steps个数,并以base为底,区间内的数为指数创建张量
tensor1 = torch.logspace(1, 3, 3, 2)
print(tensor1)

6.3.3 按数值填充张量

  • torch.zeros(size)创建指定形状的全0张量
  • torch.ones(size)创建指定形状的全1张量
  • torch.full(size, value)创建指定形状的按指定值填充的张量
  • torch.empty(size)创建指定形状的未初始化的张量
  • torch.zeros_like(input)创建与给定张量形状相同的全0张量
  • torch.ones_like(input)创建与给定张量形状相同的全1张量
  • torch.full_like(input, value)创建与给定张量形状相同的按指定值填充的张量
  • torch.empty_like(input)创建与给定张量形状相同的未初始化的张量
import torch

# torch.zeros(size) 创建指定形状的全0张量
tensor1 = torch.zeros(2, 3)
print(tensor1)

# torch.ones_like(input) 创建与给定张量形状相同的全1张量
tensor2 = torch.ones_like(tensor1)
print(tensor2)

# torch.full(size,fill_value) 创建指定形状的按指定值填充的张量
tensor1 = torch.full((2, 3), 6)
print(tensor1)

# torch.empty_like(input) 创建与给定张量形状相同的未初始化的张量
tensor2 = torch.empty_like(tensor3)
print(tensor2)
torch.eye(n, [m])创建单位矩阵
import torch

# torch.eye(n) 创建n*n的单位矩阵
tensor1 = torch.eye(3)
print(tensor1)

# torch.eye(n, m) 按指定的行和列创建
tensor2 = torch.eye(3, 4)
print(tensor2)

6.3.4 随机张量创建

  • torch.rand(size)创建在[0,1)上均匀分布的,指定形状的张量
  • torch.randint(low, high, size)创建在[low,high)上均匀分布的,指定形状的张量
  • torch.randn(size)创建标准正态分布的,指定形状的张量
  • torch.normal(mean,std,size)创建自定义正态分布的,指定形状的张量
  • torch.rand_like(input)创建在[0,1)上均匀分布的,与给定张量形状相同的张量
  • torch.randint_like(input, low, high)创建在[low,high)上均匀分布的,与给定张量形状相同的张量
  • torch.randn_like(input)创建标准正态分布的,与给定张量形状相同的张量
import torch

# torch.rand(size) 创建在[0,1)上均匀分布的,指定形状的张量
tensor1 = torch.rand(2, 3)
print(tensor1)

# torch.rand_like(input) 创建在[0,1)上均匀分布的,与给定张量形状相同的张量
tensor2 = torch.randint_like(tensor1, 1, 10)
print(tensor2)

# torch.randn(size) 创建标准正态分布的,指定形状的张量
tensor1 = torch.randn(4, 2)
print(tensor1)

# torch.normal(mean,std,size) 创建自定义正态分布的,指定形状的张量。mean为均值,std为标准差
tensor2 = torch.normal(5, 1, tensor1.shape)
print(tensor2)

torch.randperm(n)生成从0到n-1的随机排列,类似洗牌

import torch

# torch.randperm(n) 生成从0到n-1的随机排列
tensor1 = torch.randperm(10)
print(tensor1)
  • torch.random.initial_seed()查看随机数种子
  • torch.manual_seed(seed)设置随机数种子
import torch

# 查看随机数种子
print(torch.random.initial_seed())
# 设置随机数种子
torch.manual_seed(42)
print(torch.random.initial_seed())
© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像-大赛人网
欢迎您留下宝贵的见解!
提交
头像-大赛人网

昵称

取消
昵称

    请登录后查看评论内容