如何进行Function函数的分析

技术如何进行Function函数的分析这期内容当中小编将会给大家带来有关如何进行Function函数的分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。原文以及翻译:Function

本期,边肖将为您带来如何执行函数功能的分析。文章内容丰富,从专业角度进行分析和描述。希望你看完这篇文章能有所收获。

和原文翻译:

功能函数

火炬。签名。功能

记录操作历史和定义公式或区分操作。

记录运算历史,定义导数运算公式。

everyoperationperformedontentorscreatesanewfunctionobject,

进行计算,并记录发生的事情。

历史记录保留在表单功能中,

withedges notingdatadependencies(输入-输出)。

然后,当回溯的时候,图形就进入了拓扑排序,

通过调用backward()methodachfunctionobject,

和assingreturnedgradientsontonextfunctions。

对每个张量的操作将创建一个新的函数对象,

这些函数对象执行计算并记录计算的发生。

这些历史以有向无环函数图的形式保存。

指示对非循环图边缘的数据依赖性(输入-输出)。

稍后,当调用反向传播向后时,计算图将按拓扑顺序进行处理和执行。

这个过程是通过调用每个Function对象的backward()方法来完成的,

并将返回的渐变依次传递给下一个函数对象。

通常,通过创建

子类和定义新操作。这是命令

wayofextendingtorch.autograd

一般来说,用户与函数交互的唯一方式是创建一个子类并定义新的操作。

这也是扩展torch.autograd的推荐方式。

每个函数对象只能使用一次(在forwardpass中)。

每个函数对象将只使用一次(在正向传播期间)。示例:示例

类别xp(功能):

@staticmethod

defforward(ctx,i):

结果=i.exp()

ctx.save_for_backward(结果)

n

bsp;        return result
>>>
>>>     @staticmethod
>>>     def backward(ctx, grad_output):
>>>         result, = ctx.saved_tensors
>>>         return grad_output * result

static backward(ctx, *grad_outputs)
	Defines a formula for differentiating the operation.
	定义求导操作的公式.
	This function is to be overridden by all subclasses.
	这个函数将会被所有子类所重写.
	It must accept a context ctx as the first argument, 
	followed by as many outputs did forward() return, 
	and it should return as many tensors, as there were inputs to forward(). 
	Each argument is the gradient w.r.t the given output, 
	and each returned value should be the gradient w.r.t. the corresponding input.
	它必须接收一个上下文ctx作为第一个参数,
	然后接收forward()函数返回的所有参数,
	而且它必须返回forward()函数接收的所有张量tensor.
	每个参数是相对于给定输出的梯度.
	并且每个返回的值都应该是相应输入的梯度.
	The context can be used to retrieve tensors saved during the forward pass. 
	It also has an attribute ctx.needs_input_grad as a tuple of booleans 
	representing whether each input needs gradient. E.g., 
	backward() will have ctx.needs_input_grad[0] = True if the first 
	input to forward() needs gradient computated w.r.t. the output.
	我们可以使用上下文context来获取在前向传递过程中保存的张量.
	它同时具有属性ctx.needs_input_grad,他是一个元素为布尔类型的元组,
	布尔值表示每个输入数据是否需要梯度.举个例子,
	如果forward()函数的第一个输入数据需要根据输出计算梯度,
	那么backward()中的属性ctx.needs_input_grad[0] = True.
	
static forward(ctx, *args, **kwargs)
	Performs the operation.
	执行操作.
	This function is to be overridden by all subclasses.
	该函数将会被所有子类所重写.
	It must accept a context ctx as the first argument, 
	followed by any number of arguments (tensors or other types).
	它必需接收一个上下文ctx作为第一个参数,
	然后可以接着接收任意数量的参数(张量或者其他类型)
	The context can be used to store tensors that can be then retrieved during the backward pass.
	上下文可以被用来保存张量,这样就可以在后向传递的过程中获取这些张量.

上述就是小编为大家分享的如何进行Function函数的分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/112502.html

(0)

相关推荐

  • 计算机组成原理--存储器与寄存器

    技术计算机组成原理--存储器与寄存器 计算机组成原理--存储器与寄存器现代计算机硬件由五大部件组成,分别是:运算器、控制器、存储器、输入设备和输出设备。
    存储器:
    而存储器的存在对于计算机来说起着不可或

    礼包 2021年11月20日
  • 【原创】C语言类型限定符-关键字

    技术【原创】C语言类型限定符-关键字 【原创】C语言类型限定符-关键字volatile 限定符告诉计算机,代理(而不是变量所在的程序)可以改变该变量的值。通常,它被用于硬件地址以及在其他程序或同时运行的

    礼包 2021年11月1日
  • 新中国成立后,宪法序言新中国成立后的基本情况

    技术新中国成立后,宪法序言新中国成立后的基本情况1、我国社会逐步实现了由新民主主义到社会主义的过渡新中国成立后。生产资料私有制的社会主义改造已经完成,人剥削人的制度已经消灭,社会主义制度已经确立。2、工人阶级领导的、以工

    生活 2021年10月30日
  • 哈利波特一共几部,哈利.波特小说一共有几部

    技术哈利波特一共几部,哈利.波特小说一共有几部一共就七部咯哈利波特一共几部,都写完咯, 介绍一下七部, 第一部《哈利·波特与魔法石》中的哈利在平常人的世界中并不那么出色,到了魔法世界中,却备受曙目。在霍格沃茨,哈利感受到

    生活 2021年10月20日
  • 怎么解决内存泄漏问题

    技术怎么解决内存泄漏问题本篇内容介绍了“怎么解决内存泄漏问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题排查首先确

    攻略 2021年10月26日
  • 如何解决nginx"504网关超时"错误

    技术如何解决nginx“504 Gateway Time-out”错误这篇文章主要介绍“如何解决nginx“504 Gateway Time-out”错误”,在日常操作中,相信很多人在如何解决nginx“504 Gate

    攻略 2021年12月21日