Pytorch 入门与实践

参考:
《深度学习框架Pytorch:入门与实践》(陈云)
《深度学习入门之PyTorch》(廖星宇)
《深度学习之PyTorch实战计算机视觉 (2)》
PyTorch官方教程

import torch as t

Tensor

  • Tensor是PyTorch 中里要的数据结构,可认为是一个高维数组。
  • 它可以是一个数(标量)、一维数组(向量)、 二维数组(矩阵)或更离维的数组。
  • Tenso 和 numpy的 ndarrays类似,但Tensor可以使用GPU加速。
  • Tensor的使用和 numpy及MATLAB的接口十分相似。
  • Tensor和numpy对象共享内存,转换很快几乎不需要消耗资源,其中一个变了,另外一个也随之改变
  • torch.Size是tuple对象的子类,因 此它支持tuple的所有操作
  • 函数名后面带下画线的函数会修改Tensor本身
 x=t.Tensor(m,n)        #创建一个m×n的矩阵,分配空间,未初始化
 x=t.rand(m,n)          #使用[0,1]随机初始化二维数组
 print(x.size())        #查看x的形状
 
 x.size()[1]       
 x.size(1) #同上
x[:,1]   #取一列

#-----------------------------加法--------------------------------
x+y
t.add(x,y)

result=t.Tensor(n,m)    #预先分配
t.add(x,y,out=result)

y.add(x)          #y没有改变
y.add_(x)         #inplace加法,y变了

#-----------------------------转换------------------------------
a=t.ones(n)       #新建了一列n行全是1的Tensor
b=a.numpy()    #Tensor->Numpy
a=np.ones(5)
b=t.from_numpy(a) #Numpy->Tensor
if t.cuda.is_available():
       x=x.cuda()     #Tensor可通过.cuda方法转化为GPU的Tensor,从而享受加速运算

Autograd

深度学习算法本质上是通过反向传播求导数。
Autograd可以为Tensor上的操作自动微分,核心类是autograd.Variable,简单封装了Tensor, 并支持几乎所有Tensor的操作。
Tensor在被封装为Variable之后,可以调用它的 . backward实现反向传播,自动计算所有梯度。
Variable主要包含三个属性:

  1. data:保存Variable所包含的Tensor
  2. grad:保存data对应的梯度, grad也是个Variable, 而不是Tensor, 它和data的形状—样。
  3. grad_fn : 指向一个Functio n对象,这个Function用来反向传播计算输入的梯度
 x=Variable(t.ones(2,2), requires_grad=True)
 y=x.sum()   #4

未完待续

### 回答1: 深度学习框架PyTorch是一种基于Python的开源机器学习库,它提供了高度灵活的工具,使得开发者可以轻松地构建和训练深度学习模型。本书《深度学习框架PyTorch入门实践》详细介绍了PyTorch的基础知识和实践技巧,包括张量操作、自动求导、神经网络、卷积神经网络、循环神经网络、生成对抗网络等内容。通过本书的学习,读者可以掌握PyTorch的基本操作和常用技巧,进而构建和训练自己的深度学习模型。 ### 回答2: 作为一个新兴的深度学习框架,pytorch依托于Python语言的简洁易用以及其丰富的科学计算库,被越来越多的研究者和开发者所青睐。本文将从pytorch的基础入门、数据处理、模型训练、模型部署等方面,为大家介绍pytorch的应用。 一、pytorch基础入门 首先,我们要知道,pytorch最大的特点就是可以像numpy一样对tensor进行计算,并且在GPU加速下运算更为迅速。在使用pytorch时,我们首先要学会创建tensor和进行基本操作。tensor可以被认为是一种高维数组,可以包含数字、字符串等不同类型的数据。在pytorch中,我们可以使用torch.Tensor()或者torch.tensor()来创建一个tensor。注意,在这个过程中,tensor的类型需要和数据类型一致。 二、数据处理 在深度学习中,数据处理一直是一个非常重要的环节。pytorch提供了很多工具来帮我们处理数据。在数据处理之前,我们需要准备好原始数据以及标签,然后将它们转换为tensor。当我们需要进行数据增强时,pytorch的torchvision.transforms提供了许多方便的图像变换方法。 三、模型训练 模型训练是pytorch中最重要的一部分,它可以帮助我们实现各种神经网络模型的训练和调试。在使用pytorch进行模型训练的过程中,我们首先需要构建模型。在构建模型时,我们可以使用nn.Module来定义一个新的类。然后,在训练之前,我们需要定义损失函数和优化器。通过损失函数,我们可以衡量模型训练的效果。而通过优化器,我们可以在训练过程中,不断地调整模型参数,最终实现模型收敛和表现更好的效果。最后,我们需要将数据传入训练模型进行模型训练。 四、模型部署 完成模型训练后,我们需要将所训练的模型进行部署。在pytorch中,我们可以使用torch.jit包将模型转换为脚本模式,这样可以更加方便地对模型进行序列化和导出。当然,我们可以根据自己的具体需求,选择其他的部署方式或者框架。 总的来说,pytorch的使用非常简单,对于初学者来说,可以先从一个小型的模型入手,依次掌握整个搭建模型的过程,并不断调整和修改,直到最终实现满足自己的需求。同时,pytorch社区也非常活跃,有许多优秀的教程和示例代码,可以帮助我们更快更好地学习和应用pytorch框架。 ### 回答3: PyTorch 是一种基于 Python 的深度学习框架,拥有动态图的特性。PyTorch的主要功能被组织成了以下模块:torch.autograd、torch.nn、torch.optim等。 在深度学习领域中,PyTorch已经成为最受欢迎和广泛使用的工具之一。它的动态计算图能够为用户提供清晰的代码编写方式并且支持即时调试。同时,PyTorch还提供了广泛的预训练模型供用户使用,例如在图像、自然语言处理和语音识别等领域的常用模型。 PyTorch提供了广泛的API供用户使用,其中包括多种数据类型、矩阵、向量操作等底层接口。同时,卷积神经网络、循环神经网络与长短时记忆等网络模型也都在PyTorch中得到了支持。用户可以使用PyTorch自带的函数和层构建自己的深度学习网络,并且使用PyTorch提供的自动微分功能进行模型训练和优化。 值得一提的是,PyTorch还能与TensorFlow、Caffe等深度学习框架灵活地配合使用。此外,它还提供了强大的可视化工具,可帮助用户更好地理解深度学习模型的运作。 总之,深度学习框架PyTorch具有易用、高效、灵活等优点,拥有着广泛的应用场景,对于新手来说也很容易入门。通过PyTorch,用户可以更加便捷地实现自己的深度学习任务,快速进行模型迭代及优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值