0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于PyTorch的深度学习入门教程之PyTorch简单知识

ss 来源:雁回晴空 作者:雁回晴空 2021-02-16 15:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文参考PyTorch官网的教程,分为五个基本模块来介绍PyTorch。为了避免文章过长,这五个模块分别在五篇博文中介绍。

Part1:PyTorch简单知识

Part2:PyTorch的自动梯度计算

Part3:使用PyTorch构建一个神经网络

Part4:训练一个神经网络分类器

Part5:数据并行化

本文是关于Part1的内容。

Part1:PyTorch简单知识

PyTorch是一个基于Python的科学计算框架,用于进行深度学习相关研究。对于Python语言的入门,可以参考之前的两篇介绍Python&Numpy的博客。分别是Python& Numpy 教程(上) 和Python & Numpy 教程(下)。这里我们就直接介绍PyTorch中的基本操作。

1 Tensors

Tensors与numpy中的ndarray类似,但是Tensors支持GPU运算。首先来做一些简单的例子。

导入基本的package:


		

构建一个5*3的未初始化的矩阵:

x = torch.Tensor(5, 3)
print(x)

构建一个随机初始化矩阵:

x = torch.rand(5, 3)
print(x)

获取矩阵的size:

print(x.size())

注意,torch.Size实际上是一个tuple,所以它支持相同的运算。

2 运算(Operations)

运算可以使用多种语法表示,我们以加法为例子来说明。

加法:语法1

y = torch.rand(5, 3)
print(x + y)

加法:语法2

print(torch.add(x, y))

加法:给定输出的tensor

result = torch.Tensor(5, 3)
torch.add(x, y, out=result)
print(result)

加法:原地进行(in-place)的加法

# adds x to y
y.add_(x)
print(y)

注意,任何原地改变tensor的运算后边会后缀一个“_”,例如:x.copy_(y),x.t_(),会改变x的值。

你可以使用标准的numpy方式的索引

print(x[:, 1])

3 NumpyBridge

将torch的Tensor转换为numpy的array,反之亦然。

torch的Tensor和numpy的array分享底层的内存地址,所以改变其中一个就会改变另一个。

将torch Tensor转换为numpy array

a = torch.ones(5)
print(a)
b = a.numpy()
print(b)

观察numpy array的值怎样改变。

a.add_(1)
print(a)
print(b)

将numpy array 转换为torch Tensor

看一下改变numpy array的值是怎样同时改变torch Tensor的。

import numpy as np
a = np.ones(5)
b = torch.from_numpy(a)
np.add(a, 1, out=a)
print(a)
print(b)

CPU上的所有Tensors(除了CharTensor)支持到Numpy的双向转换。

4 CUDA Tensors

通过使用 .cuda 函数,Tensors可以被移动到GPU。

# let us run this cell only if CUDA is available
if torch.cuda.is_available():
    x = x.cuda()
    y = y.cuda()
    x + y

责任编辑:xj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7315

    浏览量

    93990
  • pytorch
    +关注

    关注

    2

    文章

    813

    浏览量

    14706
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    摩尔线程发布Torch-MUSA v2.1.1版本

    近日,摩尔线程发布其面向PyTorch深度学习框架的MUSA扩展库——Torch-MUSA v2.1.1。该版本在v2.1.0的基础上,进一步扩展了对大规模深度
    的头像 发表于 09-10 11:02 735次阅读

    Arm方案 基于Arm架构的边缘侧设备(树莓派或 NVIDIA Jetson Nano)上部署PyTorch模型

    本文将为你展示如何在树莓派或 NVIDIA Jetson Nano 等基于 Arm 架构的边缘侧设备上部署 PyTorch 模型。
    的头像 发表于 07-28 11:50 2506次阅读

    ARM入门学习方法分享

    的关键。一旦你掌握了ARM的基本概念和汇编语言,你可以开始进行一些简单的ARM项目。你可以尝试编写一些简单的程序,如LED闪烁、按键输入等,以加强你的实践能力。 五、学习硬件知识:要
    发表于 07-23 10:21

    Nordic收购 Neuton.AI 关于产品技术的分析

    Nordic Semiconductor 于 2025 年收购了 Neuton.AI,这是一家专注于超小型机器学习(TinyML)解决方案的公司。 Neuton 开发了一种独特的神经网络框架,能够
    发表于 06-28 14:18

    跟老齐学Python:从入门到精通

    本帖最后由 yuu_cool 于 2025-6-3 16:52 编辑 本资料是面向编程零基础读者的Python 入门教程,内容涵盖了Python 的基础知识和初步应用。以比较轻快的风格,向零基
    发表于 06-03 16:10

    摩尔线程发布Torch-MUSA v2.0.0版本 支持原生FP8和PyTorch 2.5.0

    近日,摩尔线程正式发布Torch-MUSA v2.0.0版本,这是其面向PyTorch深度学习框架的MUSA扩展库的重要升级。新版本基于MUSA Compute Capability 3.1计算架构
    的头像 发表于 05-11 16:41 1277次阅读

    海思SS626开发板

    识别/运动跟踪等)。 主板集成常用视频硬件接口,所有外设接口电路均通过严格的抗干扰测试,使产品在 EMC 及稳定性方面 具有良好表现;使用通过稳定性测试及深度优化的系统软件(Linux 系统),支持业界主流深度学习框架(如 Ca
    发表于 04-24 10:04

    使用OpenVINO™ 2021.4将经过训练的自定义PyTorch模型加载为IR格式时遇到错误怎么解决?

    使用 OpenVINO™ 2021.4 将经过训练的自定义 PyTorch 模型加载为 IR 格式时遇到错误: RuntimeError: [ GENERAL_ERROR ] Failed
    发表于 03-05 08:40

    如何在Arm Ethos-U85上使用ExecuTorch

    在快速发展的机器学习领域,PyTorch 凭借其灵活性和全面的生态系统,已成为模型开发的热门框架。Arm 与 Meta 合作在 ExecuTorch 中引入了对 Arm 平台的支持,进一步简化了模型算法开发过程,实现无缝在边缘侧设备上部署
    的头像 发表于 02-14 14:23 1026次阅读
    如何在Arm Ethos-U85上使用ExecuTorch

    操作指南:pytorch云服务器怎么设置?

    设置PyTorch云服务器需选择云平台,创建合适的GPU实例,安装操作系统、Python及Anaconda,创建虚拟环境,根据CUDA版本安装PyTorch,配置环境变量,最后验证安装。过程中需考虑
    的头像 发表于 02-08 10:33 608次阅读

    深度学习入门简单神经网络的构建与实现

    深度学习中,神经网络是核心模型。今天我们用 Python 和 NumPy 构建一个简单的神经网络。 神经网络由多个神经元组成,神经元之间通过权重连接。我们构建一个包含输入层、隐藏层和输出层的
    的头像 发表于 01-23 13:52 848次阅读

    【「具身智能机器人系统」阅读体验】+两本互为支持的书

    如何使用PyTorch进行数字图像处理,它借助摄像头来获取视频的图像信息,然后通过已有的图像识别框架模型经深度学习和优化以达到更精准的识别结果,从而为进一步的执行处理提供数据支持和依据。而《具身智能机器人系统
    发表于 01-01 15:50

    Triton编译器在机器学习中的应用

    多种深度学习框架,如TensorFlow、PyTorch、ONNX等,使得开发者能够轻松地将不同框架下训练的模型部署到GPU上。 2. Triton编译器的工作原理 Triton编译器通过以下几个步骤
    的头像 发表于 12-24 18:13 1634次阅读

    利用Arm Kleidi技术实现PyTorch优化

    PyTorch 是一个广泛应用的开源机器学习 (ML) 库。近年来,Arm 与合作伙伴通力协作,持续改进 PyTorch 的推理性能。本文将详细介绍如何利用 Arm Kleidi 技术提升 Arm
    的头像 发表于 12-23 09:19 1627次阅读
    利用Arm Kleidi技术实现<b class='flag-5'>PyTorch</b>优化

    vLLM项目加入PyTorch生态系统,引领LLM推理新纪元

    近日,vLLM项目宣布正式成为PyTorch生态系统的一部分,标志着该项目与PyTorch的合作进入了一个全新的阶段。本文将从以下几个方面进行介绍,特别提醒:安装方案在第四个部分,可选择性阅读
    的头像 发表于 12-18 17:06 1585次阅读
    vLLM项目加入<b class='flag-5'>PyTorch</b>生态系统,引领LLM推理新纪元