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

    文章

    6512

    浏览量

    87601
  • pytorch
    +关注

    关注

    2

    文章

    762

    浏览量

    12835
收藏 人收藏

    评论

    相关推荐

    Fedora 40发布,全方位升级并新增PyTorch支持

    在人工智能领域,Fedora 40首次引入了PyTorch软件包。尽管PyTorch是一款广受欢迎的深度学习框架,但其驱动程序及库的正确安装往往较为困难。
    的头像 发表于 04-24 10:45 320次阅读

    如何往星光2板子里装pytorch

    如题,想先gpu版本的pytorch只安装cpu版本的pytorch,pytorch官网提供了基于conda和pip两种安装方式。因为咱是risc架构没对应的conda,而使用pip安装提示也没有
    发表于 09-12 06:30

    pytorch用来干嘛的

    pytorch用来干嘛的 PyTorch是一个开源的Python机器学习库,它主要用于创建神经网络。它提供了几乎所有深度学习工具,包括用于自
    的头像 发表于 08-21 16:41 5225次阅读

    深度学习框架pytorch介绍

    深度学习框架pytorch介绍 PyTorch是由Facebook创建的开源机器学习框架,其中TensorFlow是完全基于数据流图的。它是
    的头像 发表于 08-17 16:10 1142次阅读

    深度学习框架pytorch入门与实践

    深度学习框架pytorch入门与实践 深度学习是机器学习
    的头像 发表于 08-17 16:03 1201次阅读

    PyTorch教程5.5之深度学习中的泛化

    电子发烧友网站提供《PyTorch教程5.5之深度学习中的泛化.pdf》资料免费下载
    发表于 06-05 15:31 1次下载
    <b class='flag-5'>PyTorch</b>教程5.5之<b class='flag-5'>深度</b><b class='flag-5'>学习</b>中的泛化

    PyTorch教程10.3之深度递归神经网络

    电子发烧友网站提供《PyTorch教程10.3之深度递归神经网络.pdf》资料免费下载
    发表于 06-05 15:12 0次下载
    <b class='flag-5'>PyTorch</b>教程10.3之<b class='flag-5'>深度</b>递归神经网络

    PyTorch教程12.1之优化和深度学习

    电子发烧友网站提供《PyTorch教程12.1之优化和深度学习.pdf》资料免费下载
    发表于 06-05 15:08 0次下载
    <b class='flag-5'>PyTorch</b>教程12.1之优化和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>

    PyTorch教程12.11之学习率调度

    电子发烧友网站提供《PyTorch教程12.11之学习率调度.pdf》资料免费下载
    发表于 06-05 14:44 0次下载
    <b class='flag-5'>PyTorch</b>教程12.11之<b class='flag-5'>学习</b>率调度

    PyTorch程之15.2近似训练

    电子发烧友网站提供《PyTorch程之15.2近似训练.pdf》资料免费下载
    发表于 06-05 11:07 1次下载
    <b class='flag-5'>PyTorch</b>教<b class='flag-5'>程之</b>15.2近似训练

    PyTorch程之从零开始的递归神经网络实现

    电子发烧友网站提供《PyTorch程之从零开始的递归神经网络实现.pdf》资料免费下载
    发表于 06-05 09:55 0次下载
    <b class='flag-5'>PyTorch</b>教<b class='flag-5'>程之</b>从零开始的递归神经网络实现

    PyTorch程之循环神经网络

    电子发烧友网站提供《PyTorch程之循环神经网络.pdf》资料免费下载
    发表于 06-05 09:52 0次下载
    <b class='flag-5'>PyTorch</b>教<b class='flag-5'>程之</b>循环神经网络

    PyTorch程之长短期记忆(LSTM)

    电子发烧友网站提供《PyTorch程之长短期记忆(LSTM).pdf》资料免费下载
    发表于 06-05 09:51 0次下载
    <b class='flag-5'>PyTorch</b>教<b class='flag-5'>程之</b>长短期记忆(LSTM)

    PyTorch程之时间反向传播

    电子发烧友网站提供《PyTorch程之时间反向传播.pdf》资料免费下载
    发表于 06-05 09:49 0次下载
    <b class='flag-5'>PyTorch</b>教<b class='flag-5'>程之</b>时间反向传播

    PyTorch程之数据预处理

    电子发烧友网站提供《PyTorch程之数据预处理.pdf》资料免费下载
    发表于 06-02 14:11 0次下载
    <b class='flag-5'>PyTorch</b>教<b class='flag-5'>程之</b>数据预处理