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

    文章

    7347

    浏览量

    95004
  • pytorch
    +关注

    关注

    2

    文章

    813

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    PyTorch 中RuntimeError分析

    ? 错误原因 这个 RuntimeError 是因为在 PyTorch 中,upsample_nearest2d_out_frame(最近邻2D上采样)操作尚未对 BFloat16 数据类型提供
    发表于 03-06 06:02

    Pytorch 与 Visionfive2 兼容吗?

    Pytorch 与 Visionfive2 兼容吗? $ pip3 install torch torchvision torchaudio --index-url https
    发表于 02-06 08:28

    机器学习深度学习中需避免的 7 个常见错误与局限性

    无论你是刚入门还是已经从事人工智能模型相关工作一段时间,机器学习深度学习中都存在一些我们需要时刻关注并铭记的常见错误。如果对这些错误置之不理,日后可能会引发诸多麻烦!只要我们密切关注
    的头像 发表于 01-07 15:37 336次阅读
    机器<b class='flag-5'>学习</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>中需避免的 7 个常见错误与局限性

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战课(11大系列课程,共5000+分钟)

    大系列课程,形成\"传统视觉算法→深度学习建模→工业级部署\"的完整技术链,不论是新手、老手都适合学习。 1. 新手入门 课程通过三层保障体系降低
    发表于 12-04 09:28

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战课程(11大系列课程,共5000+分钟)

    大系列课程,形成\"传统视觉算法→深度学习建模→工业级部署\"的完整技术链,不论是新手、老手都适合学习。 1. 新手入门 课程通过三层保障体系降低
    发表于 12-03 13:50

    学习物联网怎么入门?

    景等。同时,学习物联网的基本技术,如传感器技术、通信技术、云计算等,也是非常重要的。 其次,选择适合自己的学习方式也是入门学习物联网的重要一步。
    发表于 10-14 10:34

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

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

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

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

    ARM入门学习方法分享

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

    任正非说 AI已经确定是第四次工业革命 那么如何从容地加入进来呢?

    ,TensorFlow、PyTorch用于构建和训练神经网络。以Python为例,通过编写简单的程序来处理数据,如读取数据集、进行数据清洗和预处理,这是进入AI领域的基本技能。 学习机器学习
    发表于 07-08 17:44

    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 1851次阅读

    海思SS626开发板

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

    FOC入门教程

    前言:为什么要学习FOC?1.电机控制是自动化控制领域重要一环。2.目前直流无刷电机应用越来越广泛,如无人机、机械臂、云台、仿生机器人等等。3.电机控制工程师薪水较高。需要什么基础?1.C语言,指针
    的头像 发表于 04-22 19:33 2481次阅读
    FOC<b class='flag-5'>入门教程</b>