Pytorch基础入门1

目录

  • [1 :简介](#1 :简介)
  • 2:Tensor的创建
    • [2.1:torch.tensor() && torch.tensor(\[\])](#2.1:torch.tensor() && torch.tensor([]))
    • [2.2:torch.randn && torch.randperm](#2.2:torch.randn && torch.randperm)
    • 2.3:torch.range(begin,end,step)
    • [2.4 通过指定numpy的方式创建Tensor](#2.4 通过指定numpy的方式创建Tensor)
    • [2.5 创建0矩阵,1矩阵和单位矩阵](#2.5 创建0矩阵,1矩阵和单位矩阵)

1 :简介

Pytorch是torch的python版本,是由Facebook开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用。与Tensorflow的静态计算图不同,pytorch的计算图是动态的,可以根据计算需要实时改变计算图。

2:Tensor的创建

Tensor张量是Pytorch里最基本的数据结构。直观上来讲,它是一个多维矩阵,支持GPU加速,其基本数据类型如下:

数据类型 CPU tensor GPU tensor
8位无符号整型 torch.ByteTensor torch.cuda.ByteTensor
8位有符号整型 torch.CharTensor torch.cuda.CharTensor
16位有符号整型 torch.ShortTensor torch.cuda.ShortTensor
32位有符号整型 torch.IntTensor torch.cuda.IntTensor
64位有符号整型 torch.LongTensor torch.cuda.LonfTensor
32位浮点型 torch.FloatTensor torch.cuda.FloatTensor
64位浮点型 torch.DoubleTensor torch.cuda.DoubleTensor
布尔类型 torch.BoolTensor torch.cuda.BoolTensor

2.1:torch.tensor() && torch.tensor(\[\])

二者的主要区别在于创建的对象的size和value不同

python 复制代码
import torch
 
tensor1 = torch.Tensor(2, 3)
tensor2 = torch.Tensor([2, 3])
### 打印数据 
print(tensor1)
print(tensor2)

结果如下:

powershell 复制代码
tensor([[-1.1072e+20,  1.5989e-42,  0.0000e+00], 
        [ 0.0000e+00,  0.0000e+00,  0.0000e+00]])
tensor([2., 3.])

2.2:torch.randn && torch.randperm

生成的数据类型为浮点型,与numpy.randn生成随机数的方法类似,生成的浮点数的取值满足均值为0,方差为1的正态布,torch.randpern(n)为创建一个n个整数,随机排列的Tensor

python 复制代码
import torch 

tensor1 = torch.randn(2,3)
tensor2 = torch.randperm(10)

### 打印数据
print(tensor1)
print(tensor2)

结果如下:

powershell 复制代码
tensor([[-0.0469,  0.4112, -0.5787], 
        [ 1.0721, -0.0457, -0.4078]])
tensor([4, 3, 8, 9, 2, 7, 5, 6, 0, 1])

2.3:torch.range(begin,end,step)

生成一个一维的Tensor,三个参数分别的起始位置,终止位置和步长

python 复制代码
import torch 

tensor01 = torch.range(1,10,2)

### 打印数据
print (tensor01)

结果如下:

powershell 复制代码
tensor([1., 3., 5., 7., 9.])

2.4 通过指定numpy的方式创建Tensor

很多时候我们需要创建指定的Tensor,而numpy就是一个很好的方式

python 复制代码
import torch  # type: ignore
import numpy as np  

tensor01 = torch.tensor(np.arange(15).reshape(3,5))
### 打印数据
print(tensor01)

结果如下

powershell 复制代码
tensor([[ 0,  1,  2,  3,  4],
        [ 5,  6,  7,  8,  9],
        [10, 11, 12, 13, 14]], dtype=torch.int32)

2.5 创建0矩阵,1矩阵和单位矩阵

python 复制代码
import torch 

tensor1 =torch.ones(3,3)
tensor2 =torch.zeros(3,3)
tensor3 =torch.eye(3,3)

print(tensor1)
print(tensor2)
print(tensor3)

结果如下:

powershell 复制代码
tensor([[1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.]])
tensor([[0., 0., 0.],
        [0., 0., 0.],
        [0., 0., 0.]])
tensor([[1., 0., 0.],
        [0., 1., 0.],
        [0., 0., 1.]])
相关推荐
兵慌码乱6 小时前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
luckdewei9 小时前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python
aqi0015 小时前
15天学会AI应用开发(八)使用向量数据库实现RAG功能
人工智能·python·大模型·ai编程·ai应用
Csvn16 小时前
`functools.lru_cache` —— 一行代码搞定缓存加速
后端·python
金銀銅鐵1 天前
[Python] 从《千字文》中随机挑选汉字
后端·python
cup112 天前
[技术复盘] Windows Python 打包实战:Nuitka 环境踩坑总结与 CI 自动化构建全指南
python·ai·环境变量·ci·nuitka·skill
aqi002 天前
15天学会AI应用开发(七)有了大模型为什么还要引入RAG
人工智能·python·大模型·ai编程·ai应用
金銀銅鐵2 天前
用 Python 实现 Take-Away 游戏
python·游戏