当前位置: 首页 > java >正文

最全详细解读之什么是Pytorch?

1.Pytorch

PyTorch是一个开源的Python机器学习库,基于Torch库,底层由C++实现,应用于人工智能领域,如计算机视觉和自然语言处理。它最初由Meta Platforms的人工智能研究团队开发,现在属于Linux基金会的一部分。它是在修改后的BSD许可证下发布的自由及开放源代码软件。 尽管Python接口更加完善并且是开发的主要重点,但 PyTorch 也有C++接口。

许多深度学习软件都是基于 PyTorch 构建的,包括特斯拉自动驾驶、Uber的Pyro、Hugging Face的Transformers、 PyTorch Lightning、和Catalyst。
在这里插入图片描述

1.1 概述

PyTorch主要有两大特征:

  • 类似于NumPy的张量计算,能在 GPU 或 MPS 等硬件加速器上加速;
  • 基于带自动微分系统[18][19]的深度神经网络。

PyTorch包括torch.autograd、torch.nn、torch.optim等子模块。

PyTorch包含多种损失函数,包括 MSE(均方误差 = L2 范数)、交叉熵损失和负熵似然损失(对分类器有用)等。
在这里插入图片描述

2.PyTorch张量

PyTorch定义了一个名为张量(torch.Tensor) 的类别来存储和操作同构多维矩形数字数组。 PyTorch张量与NumPy数组类似,但也可以在支持 CUDA 的 英伟达 GPU 上运作。 PyTorch 也一直在开发对其他 GPU 平台的支持,例如 AMD 的 ROCm 和 Apple 的Metal Framework。

张量是 PyTorch 中的核心数据抽象,PyTorch 支持各种张量子类型。通常地,一维张量称为向量(vector),二维张量称为矩阵(matrix)。

张量的数据类型包括:

  • torch.bool
  • torch.int8
  • torch.uint8
  • torch.int16
  • torch.int32
  • torch.int64
  • torch.half
  • torch.float
  • torch.double
  • torch.bfloat

2.1 PyTorch神经网络

神经网络由对数据执行操作的层/模块组成。 torch.nn 命名空间提供了用户需要的所有构建块来构建自己的神经网络。PyTorch 中的每个模块都对应nn.模块。 神经网络本身是由其他模块(层)组成的模块。这种嵌套结构允许用户轻松构建并管理复杂的架构。神经网络中的许多层都是参数化的,即具有相关的权重以及在训练期间优化的偏差。自动子类化跟踪模型对象中定义的所有字段,并生成所有参数可使用模型或方法访问。

import torch                     # for all things PyTorch
import torch.nn as nn            # for torch.nn.Module, the parent object for PyTorch models
import torch.nn.functional as F  # for the activation function

激活函数torch.nn.Module具有封装所有主要内容的对象激活功能,包括 ReLU 及其许多变体、Tanh、 Hardtanh、sigmoid 等。

3. PyTorch模型常见图层类型

线性层

最基本的神经网络层类型是线性或完全连接层。在这个层中,每个输入都会影响每个图层的输出到由图层权重指定的程度。如果 模型有 m 个输入和 n 个输出,权重将是一个 m x n 矩阵。

卷积层

卷积层旨在

http://www.xdnf.cn/news/11555.html

相关文章:

  • Linux介绍、安装、常见命令
  • postman介绍、安装、使用、功能特点、注意事项
  • 实用为王——IDEA精选插件推荐系列1
  • 详解五种Docker容器的网络模式
  • 一分钟上手AI神器——Kimi (附_ 官方提示词)
  • vscode安装+配置+使用+调试【保姆级教程】
  • 03、单线通讯—SIF通讯协议(一线通)案例二
  • SQL中replace函数的用法
  • FTP服务器访问方法
  • CSS+DIV详解
  • 重学 JavaSE 基础
  • 2021年最新C语言教程入门,C语言自学教程(最全整理)
  • sparksql 生产中的总结文档
  • 立体眼镜
  • 控制台 钢铁雄心2_钢铁雄心2游戏秘籍指令/科技/事件代码
  • 友盟分享集成及实现步骤
  • 荔枝派Zero(全志V3S)驱动开发之USB摄像头
  • Python实现一个简单的HTTP代理
  • Eclipse 安装Properties Editor插件
  • Windows CE 6.0
  • linux学习--论坛资源下载
  • java实现文件下载的几种方法
  • powerbuilder 11 C/S转B/S详细资料
  • 怎么在MVC中使用自定义Membership
  • NSS修改CODE详细操作教程(附图)及NSS软件下载—5530参考执行
  • IT知名博客推荐
  • 熬夜整理了免费的数据源网站大全,再也不愁找不到数据练手
  • 【HTML网页设计】 使用HTML做一个简单漂亮的页面(纯html代码)
  • APP 专项测试之兼容性测试_app兼容性测试(1)
  • 聊聊电源自动切换电路(常用自动切换电路总结)