Pytorch-张量

本文详细介绍了如何使用PyTorch库创建张量,包括从标量、numpy数组、列表、特定形状和类型,以及使用torch.arange(),torch.linspace()等函数生成线性张量。还涵盖了随机数种子设置、全0/1张量和全值张量的创建,以及类型转换方法如data.type()和data.double()。
摘要由CSDN通过智能技术生成

目录

一.张量的创建

        1.torch.tensor()  根据指定数据创建张量

      2.torch.Tensor()  根据指定形状创建张量

   3.torch.IntTensor()、torch.FloatTensor()、torch.DoubleTensor() 创建指定类型的张量

4.torch.arange()、torch.linspace() 创建线性张量

5.torch.random.initial_seed()、torch.random.manual_seed() 随机数种子设置,torch.randn() 创建随机张量

6.torch.zeros()、torch.zeros_like() 创建全0张量

7.torch.ones()、torch.ones_like() 创建全0张量

8.torch.full()、torch.full_like() 创建全为指定值张量

二.类型转换 

1、data.type(torch.DoubleTensor)

2.data.double()


一.张量的创建

        1.torch.tensor()  根据指定数据创建张量

                

import torch 
import numpy as np
# 1. 创建张量标量
data = torch.tensor(10)
print(data)
# 2. numpy 数组, 由于 data 为 float64, 下面代码也使用该类型
data = np.random.randn(2, 3)
data = torch.tensor(data)
print(data)
# 3. 列表, 下面代码使用默认元素类型 float32
data = [[10., 20., 30.], [40., 50., 60.]]
data = torch.tensor(data)
print(data)
      2.torch.Tensor()  根据指定形状创建张量

                

# 1. 创建2行3列的张量, 默认 dtype 为 float32
data = torch.Tensor(2, 3)
print(data)
# 2. 注意: 如果传递列表, 则创建包含指定元素的张量
data = torch.Tensor([10])
print(data)
data = torch.Tensor([10, 20])
print(data)
   3.torch.IntTensor()torch.FloatTensor()torch.DoubleTensor() 创建指定类型的张量
# 1. 创建2行3列, dtype 为 int32 的张量
data = torch.IntTensor(2, 3)
print(data)
# 2. 注意: 如果传递的元素类型不正确, 则会进行类型转换
data = torch.IntTensor([2.5, 3.3])
print(data)
# 3. 其他的类型
data = torch.ShortTensor() # int16
data = torch.LongTensor() # int64
data = torch.FloatTensor() # float32
data = torch.DoubleTensor() # float64
4.torch.arange()torch.linspace() 创建线性张量
# 1. 在指定区间按照步长生成元素 [start, end, step)
data = torch.arange(0, 10, 2)
print(data)
# 2. 在指定区间按照元素个数生成 [start, end, steps]
data = torch.linspace(0, 9, 10)
print(data)
5.torch.random.initial_seed()torch.random.manual_seed() 随机数种子设置,torch.randn() 创建随机张量
# 1. 创建随机张量
data = torch.randn(2, 3) # 创建2行3列张量
print(data)
# 查看随机数种子
print('随机数种子:', torch.random.initial_seed())
# 2. 随机数种子设置
torch.random.manual_seed(100)
data = torch.randn(2, 3)
print(data)
print('随机数种子:', torch.random.initial_seed())
6.torch.zeros()torch.zeros_like() 创建全0张量
# 1. 创建指定形状全0张量
data = torch.zeros(2, 3)
print(data)
# 2. 根据张量形状创建全0张量
data = torch.zeros_like(data)
print(data)
7.torch.ones()torch.ones_like() 创建全0张量
# 1. 创建指定形状全1张量
data = torch.ones(2, 3)
print(data)
# 2. 根据张量形状创建全1张量
data = torch.ones_like(data)
print(data)
8.torch.full()torch.full_like() 创建全为指定值张量
# 1. 创建指定形状指定值的张量
data = torch.full([2, 3], 10)
print(data)
# 2. 根据张量形状创建指定值的张量
data = torch.full_like(data, 20)
print(data)

二.类型转换 

1data.type(torch.DoubleTensor)
data = torch.full([2, 3], 10)
print(data.dtype)
# 将 data 元素类型转换为 float64 类型
data = data.type(torch.DoubleTensor)
print(data.dtype)
# 转换为其他类型
# data = data.type(torch.ShortTensor)
# data = data.type(torch.IntTensor)
# data = data.type(torch.LongTensor)
# data = data.type(torch.FloatTensor)
2.data.double()
data = torch.full([2, 3], 10)
print(data.dtype)
# 将 data 元素类型转换为 float64 类型
data = data.double()
print(data.dtype)
# 转换为其他类型
# data = data.short()
# data = data.int()
# data = data.long()
# data = data.float()

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值