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

    文章

    7006

    浏览量

    88946
  • pytorch
    +关注

    关注

    2

    文章

    808

    浏览量

    13201
收藏 人收藏

    评论

    相关推荐

    PyTorch 数据加载与处理方法

    PyTorch 是一个流行的开源机器学习库,它提供了强大的工具来构建和训练深度学习模型。在构建模型之前,一个重要的步骤是加载和处理数据。 1. Py
    的头像 发表于 11-05 17:37 388次阅读

    如何使用 PyTorch 进行强化学习

    强化学习(Reinforcement Learning, RL)是一种机器学习方法,它通过与环境的交互来学习如何做出决策,以最大化累积奖励。PyTorch 是一个流行的开源机器
    的头像 发表于 11-05 17:34 281次阅读

    Pytorch深度学习训练的方法

    掌握这 17 种方法,用最省力的方式,加速你的 Pytorch 深度学习训练。
    的头像 发表于 10-28 14:05 197次阅读
    <b class='flag-5'>Pytorch</b><b class='flag-5'>深度</b><b class='flag-5'>学习</b>训练的方法

    pytorch怎么在pycharm中运行

    第一部分:PyTorch和PyCharm的安装 1.1 安装PyTorch PyTorch是一个开源的机器学习库,用于构建和训练神经网络。要在PyCharm中使用
    的头像 发表于 08-01 16:22 1383次阅读

    pytorch环境搭建详细步骤

    PyTorch作为一个广泛使用的深度学习框架,其环境搭建对于从事机器学习深度学习研究及开发的人
    的头像 发表于 08-01 15:38 800次阅读

    pytorch和python的关系是什么

    PyTorch已经成为了一个非常受欢迎的框架。本文将介绍PyTorch和Python之间的关系,以及它们在深度学习领域的应用。 Python简介 Python是一种高级、解释型、通用
    的头像 发表于 08-01 15:27 1894次阅读

    PyTorch深度学习开发环境搭建指南

    PyTorch作为一种流行的深度学习框架,其开发环境的搭建对于深度学习研究者和开发者来说至关重要。在Windows操作系统上搭建
    的头像 发表于 07-16 18:29 1001次阅读

    基于PyTorch的卷积核实例应用

    深度学习和计算机视觉领域,卷积操作是一种至关重要的威廉希尔官方网站 ,尤其在图像处理和特征提取方面发挥着核心作用。PyTorch作为当前最流行的深度学习
    的头像 发表于 07-11 15:19 451次阅读

    pytorch中有神经网络模型吗

    当然,PyTorch是一个广泛使用的深度学习框架,它提供了许多预训练的神经网络模型。 PyTorch中的神经网络模型 1. 引言 深度
    的头像 发表于 07-11 09:59 693次阅读

    PyTorch的介绍与使用案例

    PyTorch是一个基于Python的开源机器学习库,它主要面向深度学习和科学计算领域。PyTorch由Meta Platforms(原Fa
    的头像 发表于 07-10 14:19 393次阅读

    tensorflow和pytorch哪个更简单?

    : TensorFlow和PyTorch都是用于深度学习和机器学习的开源框架。TensorFlow由Google Brain团队开发,而PyTorc
    的头像 发表于 07-05 09:45 847次阅读

    PyTorch如何训练自己的数据集

    PyTorch是一个广泛使用的深度学习框架,它以其灵活性、易用性和强大的动态图特性而闻名。在训练深度学习模型时,数据集是不可或缺的组成部分。
    的头像 发表于 07-02 14:09 1648次阅读

    如何使用PyTorch建立网络模型

    PyTorch是一个基于Python的开源机器学习库,因其易用性、灵活性和强大的动态图特性,在深度学习领域得到了广泛应用。本文将从PyTorch
    的头像 发表于 07-02 14:08 407次阅读

    TensorFlow与PyTorch深度学习框架的比较与选择

    深度学习作为人工智能领域的一个重要分支,在过去十年中取得了显著的进展。在构建和训练深度学习模型的过程中,深度
    的头像 发表于 07-02 14:04 956次阅读

    使用PyTorch构建神经网络

    PyTorch是一个流行的深度学习框架,它以其简洁的API和强大的灵活性在学术界和工业界得到了广泛应用。在本文中,我们将深入探讨如何使用PyTorch构建神经网络,包括从基础概念到高级
    的头像 发表于 07-02 11:31 705次阅读