PyTorch深度学习(二):1. tensor与数据生成


本文主要讲PyTorch对数据的基本操作,为实战入门打基础。奥利给!

1. 基础数据类型tensor

1.1 载入pytorch:

import torch

1.2 定义基础变量:

1、定义整型变量a

# 定义一个tensor数据,赋初始值[1,2,3]。此tensor中数值是1,2,3;数据类型是int。
a = torch.tensor([1,2,3],dtype=int)
print(a)

输出:
tensor([1, 2, 3])

2、定义浮点变量b

# 定义一个tensor数据,赋初始值[4,5,6]。此tensor中数值是4,5,6;数据类型是float。
b = torch.tensor([456],dtype=float)

输出:(即64位的浮点型)
tensor([4., 5., 6.], dtype=torch.float64)

3、定义二维数据

# 定义一个两行三类的tensor数据。
tensor = torch.tensor([[1,2,3],
                       [4,5,6]])

1.3 查看数据类型、维度、形状:

1、查看数据类型

# 定义一个tensor数据,赋初始值[1,2,3]。此tensor中数值是1,2,3;数据类型是int。
a = torch.tensor([1,2,3],dtype=int)
print(a)

输出:
tensor([1, 2, 3])

2、查看数据维度

tensor.ndim

输出:
2

3、查看数据形状

#代码中:tensor = torch.tensor([[1,2,3],
#                              [4,5,6]])
#实例化了一个对象tensor,可用shape属性查看数据形状;或者用size()方法查看数据形状,如下两种方法:

方法一:

tensor.shape
#代码中:tensor = torch.tensor([[1,2,3],
#                              [4,5,6]])
#实例化了一个对象tensor,

输出:
torch.Size([2, 3])

方法二:

tensor.size()
#

输出:
torch.Size([2, 3])

2. 生成数据

2.1 开始

import torch

2.2 定义各类数据(矩阵):

2.2.1 生成全为1的矩阵:

torch.ones(2,3)
#显示输出
tensor([[1., 1., 1.],
        [1., 1., 1.]])

2.2.2 生成全为0的矩阵:

torch.ones(2,3)
#显示输出
tensor([[0., 0., 0.],
        [0., 0., 0.],
        [0., 0., 0.]])

2.2.3 生成0-1之间的随机数矩阵:

#生成随机数,范围在0到1之间
torch.rand(3,4)
#显示输出
tensor([[0.9578, 0.3568, 0.4111, 0.9871],
        [0.1998, 0.1693, 0.4083, 0.6179],
        [0.1027, 0.2046, 0.8901, 0.9205]])

2.2.4 生成整数类型的随机数矩阵:

#生成整数随机数
#先定义整数类型范围,如0-10之间,生成两行三列,格式如下:
torch.randint(0,10,(2,3))
#显示输出
tensor([[1, 9, 1],
        [7, 8, 9]])

2.2.5 生成符合正态分布的随机数矩阵:

#符合标准正态分布的随机数
#函数为.randn,操作如生成三行四列的正态分布随机数:
torch.randn(3,4)
#显示输出
tensor([[ 0.2474, -0.4280,  0.1613, -0.4447],
        [ 0.2419,  0.4091,  0.4896, -0.4094],
        [ 1.9428,  0.0663, -2.9087,  0.0970]])

2.3 tensor数据转换:

2.3.1 基于tensor数据a生成b

a = torch.tensor([[1,2],
                  [3,4],
                  [5,6]])
b = torch.rand_like(a, dtype=float)
b
#显示输出
tensor([[0.0018, 0.4092],
        [0.3440, 0.1695],
        [0.9655, 0.5256]], dtype=torch.float64)

查看数据类型
print(b.shape)
print(b.size())
输出:
torch.Size([3, 2])
torch.Size([3, 2])

2.3.2 view和reshape修改数据形状/改变数据维度:

1、使用view:

c = b.view(6)
c
#显示输出
tensor([0.0018, 0.4092, 0.3440, 0.1695, 0.9655, 0.5256], dtype=torch.float64)

显示类型
c.shape
输出:
torch.Size([6])

2、使用reshape、view:

d = b.view(2,3)
d
#显示输出
tensor([[0.0018, 0.4092, 0.3440],
        [0.1695, 0.9655, 0.5256]], dtype=torch.float64)
d = d.reshape(6)
d
#显示输出
tensor([0.0018, 0.4092, 0.3440, 0.1695, 0.9655, 0.5256], dtype=torch.float64)

2.4 tensor数据与python(tensor与numpy中的array):

2.4.1 把tensor数据变为python中标准的数值

#把tensor数据变为python中标准的数值
d[1].item()#item只能把其中的一个值更改类型
#显示输出
0.4092139638019908

2.4.2 把tensor数据转化为numpy.array类型

import numpy as np

e = np.array(d)
e
#显示输出
array([0.00175931, 0.40921396, 0.34398641, 0.16950897, 0.96550976,
       0.52556472])

2.4.3 把numpy中的array数据转化为torch.tensor类型

1、定义一个numpy.array

array = np.array([1,2,3])
array
array([1, 2, 3])

2、numpy.array转化

tensor = torch.tensor(array)
tensor
tensor([1, 2, 3], dtype=torch.int32)
发布了27 篇原创文章 · 获赞 6 · 访问量 538

猜你喜欢

转载自blog.csdn.net/qq_43246110/article/details/104185985
今日推荐