首页 > 电脑常识 > 人工智能

0608-nn和autograd的区别

admin 人工智能 2021-04-26 16:44:05  
后台-系统设置-扩展变量-手机广告位-内容正文底部

0608-nn和autograd的区别

目录
  • 一、nn 和 autograd 的区别
  • 二、Function 和 Module 在实际中使用的情况

pytorch完整教程目录:https://www.cnblogs.com/nickchen121/p/14662511.html

一、nn 和 autograd 的区别

Module 利用的是 autograd 的技术,主要是为了实现前向传播。在 forward 函数中,Module 对输入的 Variable 进行的各种操作基本都使用到了 autograd 的技术。

因此在这里主要对比 autograd.Functionnn.Module 两者之间的区别。

  • autograd.Function 利用 Tensor 对 autograd 技术的扩展,为 autograd 实现了新的运算操作符,不仅要实现前向传播还要手动实现反向传播
  • nn.Module 利用了 autograd 技术,对 nn 的功能进行扩展,实现了深度学习中的大部分层,并且只需要实现前向传播,autograd 就会自动实现反向传播
  • nn.functional 是一些 autograd 操作的集合,是经过封装的函数,如果使用它来构建深度神经网络,需要自己编写前向传播和反向传播函数

二、Function 和 Module 在实际中使用的情况

Funciton 和 Module 作为扩充 torch 的两种接口,在实际中

  1. 如果某一个操作在 autograd 中尚未支持,则可以利用 Function 手动实现对应的前向传播和反向传播
  2. 如果某些时候利用 autograd 接口比较复杂,也可以利用 Function 将多个操作聚合,实现优化,如第 3 章 扩展 autograd 那一节实现的 Sigimoid 一样,此时将会比直接利用 autograd 低级别的操作要快
  3. 如果只是想在深度学习中增加某一层,使用 Module 进行封装则会更加简单

文章来源:https://www.cnblogs.com/nickchen121/p/14703440.html

后台-系统设置-扩展变量-手机广告位-内容正文底部
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
本文地址:https://jcdi.cn/diannaochangshi/rengongzhineng/838.html

留言与评论(共有 0 条评论)
   
验证码:
后台-系统设置-扩展变量-手机广告位-评论底部广告位

教程弟

https://www.jcdi.cn/

统计代码 | 京ICP1234567-2号

Powered By 教程弟 教程弟

使用手机软件扫描微信二维码