import torch
import numpy as np
'''
张量(Tensor)
tensor是一个多维数组,他是标量、向量、矩阵的高维拓展,
其中,标量是0维张量,向量是1维张量,矩阵是2维张量,RGB图像是3维张量.
tensor共有三类创建方式:直接式、基于数值式、基于概率式
'''
# 1、直接式
array = np.zeros((3, 3))
tensor1 = torch.tensor(array) # array作为导入数据创建tensor,不共享id
tensor2 = torch.from_numpy(array) # 基于array创建tensor。共享id
# 2、基于数值式
tensor3 = torch.zeros((3, 3)) # 不读取数据,直接创建0tensor
tensor4 = torch.zeros_like(tensor3) # 不读取数据,直接创建与tensor3等size的0tensor
tensor5 = torch.ones((3, 3)) # 同上
tensor6 = torch.ones_like(tensor5) # 同上
tensor7 = torch.full((3, 3), fill_value=4) # 同上
tensor8 = torch.full_like(tensor7, fill_value=5) # 同上
tensor9 = torch.linspace(start=1, end=10, steps=2) # 建均分的1维张量(start,end,Steps=)
tensor10 = torch.logspace(start=1, end=10, steps=3, base=2) # 建对数均分的1维张量(start,end,Steps=数列长度,base=对数函数的底,默认10)
tensor11 = torch.eye(n=3, m=4) # 创建二维单位对角矩阵
# 基于概率式
tensor12 = torch.randn((3, 3)) # 生成标准正态分布(size=张量的形状)
tensor13 = torch.randn_like(tensor12)
tensor14 = torch.rand((3, 3)) # 生成在[0,1)的均匀分布
tensor15 = torch.rand_like(tensor14)
tensor16 = torch.randint(low=1, high=10, size=(3, 3)) # 生成在[low,high)的整数均匀分布(size=张量的形状)
tensor17 = torch.randint_like(tensor16, low=1, high=10)
tensor18 = torch.randperm(n=10) # 生成0到n-1的随机排列(n=张量长度)
tensor19 = torch.bernoulli(tensor1) # 以input为概率,生成伯努利分布(0-1分布,input表示概率值)
torch学习笔记(1)——tensor常见19种创建方式
最新推荐文章于 2024-02-29 20:43:09 发布