Theano / Pytorch / Tensorflow 可以自动计算以下梯度吗?

Posted

技术标签:

【中文标题】Theano / Pytorch / Tensorflow 可以自动计算以下梯度吗?【英文标题】:Can Theano / Pytorch / Tensorflow compute the following gradient automatically? 【发布时间】:2019-05-01 16:19:33 【问题描述】:

我正在尝试运行一个循环神经网络,其中每个神经元的状态更新函数如下

z = g*y

鉴于

g = (x<x_max & x>x_max-e) | (x>-x_max & x<-x_max+e)

请注意,这里的所有变量都只是标量。

变量 x 的定义方式是它始终会不断更新,因此 g 将始终是一个脉冲,如 this picture 所示。也就是说,g 不会在一次更新中为 1,但在多次连续更新中为 1。

在给定这个传递函数的情况下,这些包中的任何一个都可以实现自动梯度计算吗?

【问题讨论】:

【参考方案1】:

无法计算梯度。

g 如您所示,是一个二进制变量。所以它的梯度无法计算。即使是您绘制的波形,除了两个点(其无穷大,函数不连续)外,其他任何地方的梯度都为 0

【讨论】:

以上是关于Theano / Pytorch / Tensorflow 可以自动计算以下梯度吗?的主要内容,如果未能解决你的问题,请参考以下文章

ModuleNotFoundError:没有名为“theano.tensor.shared_randomstreams”的模块

求教,theano.tensor中的max和argmax有啥区别

ubuntu 中用pip安装了theano后怎么找不到theano,tensor,signal,downsample

机器学习框架之争将走向何方?

Theano / Pytorch / Tensorflow 可以自动计算以下梯度吗?

pytorch Tensor和Variable