问题标签 [chainer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
chainer - 在chainer中,如何使用chainer.GradientMethod以及如何自定义定义参数更新规则
我在https://docs.chainer.org/en/stable/reference/core/generated/chainer.GradientMethod.html?highlight=gradient找到了一个类,它有一个名为的函数 create_update_rule()
,我需要定义一个向后的函数渐变,假设我想编写以下代码:
其中W是我的函数/层的参数,但我不知道chainer默认优化器如何更新参数?是吗+=
?-=
chainer - 在chainer中,如何使用chainer.training.Trainer提前停止迭代?
我正在使用chainer框架(深度学习),假设一旦两次迭代的目标函数值的差距很小,我就必须停止迭代: f - old_f < eps
. 但是chainer.training.Trainer 的stop_trigger 是(args.epoch, 'epoch') 元组。如何触发提前停止?
chainer - chainer的后向函数中的参数“grad_outputs”是什么
3个问题:
chainer 中的 grad_outputs 是什么?
chainer 的函数 F.transpose 中的一个例子,如何解释这个后向代码?
def向后(自我,输入,grad_outputs):gy = grad_outputs [0] inv_axes = self.axes if self.axes:轴=元组(ax % len(self.axes)for ax in self.axes)inv_axes = tuple(numpy .argsort(axes)) gx = gy.transpose(inv_axes) 返回 gx,
假设我想实现自定义函数,但是我的输入[0] 和输入[1] 具有不同的形状,为了使用差分链式规则进行反向传播,我必须在中编写以下代码
backward
:a, b = inputs gy = grad_outputs[0] return a * gy, b * gy 但是,a和b的形状不一样,
a * gy
而且b * gy
可能报错?形状不匹配乘?
chainer - chainer.Variable 在chainer中获取项目的切片或索引是否具有向后能力?
以下代码chainer.Variable是否仍然有能力保持图形并且可以在切片(a [0,1]或索引(a [0])之后向后(梯度流):
chainer - chainer.reporter.report 的 key 命名规则是什么?
chainer 的文档很好,但是我发现文档的每一页,都没有找到chainer 报表的命名规则是什么,应该如何控制报表名称,并记录下来?例如,下面的代码:
注意main/loss
and validation/main/all
,为什么在/loss之前有一个main,我应该如何控制挂失?还要注意.same 问题。validation/main/all
chainer - 我们是否需要在后向函数(chainer)中导出差分/梯度 wrt 输入数据?
我在我的研究中实现了一个非常复杂的函数,它在这一层使用了信念传播。我已经导出了该层的梯度wrt W(参数),但是由于它的复杂性,我没有导出梯度wrt input_data(数据来自前一层)。
我对反向传播的细节非常困惑。我搜索了很多关于 BP 算法的内容,一些注释说只对 W(参数)进行微分并使用残差来获得梯度就可以了吗?您的示例似乎我们还需要计算梯度 wrt 输入数据(前层输出)。我很困惑?非常典型的例子是,如何在卷积层中导出输入图像的梯度?
我的网络有两层,我需要在最后一层手动输入 X 来推导梯度吗?(向后需要返回 gx 以让 BP 工作以梯度流到前一层)?
chainer - 如何在chainer中设置单个链接/功能的学习率?
咖啡可以做到这一点。因为神经网络的某些层需要大的学习率,而卷积层需要小的 lr。如何控制chainer中不同层有不同的lr,以便优化器根据对应的lr进行更新?
chainer - 在 Chainer 中组合函数
我希望通过组合多个现有函数在 Chainer 中创建一个新的 Function 对象。我无法在文档中找到任何方法来执行此操作。我可以直接实现复合函数,这可能在计算上更有效。或者我可以使用现有函数的现有前进和后退方法。
推荐的方法是什么?
chainer - 如何实施提前停止作为扩展
作为这个线程,我们可以通过将函数 (f:trainer -> bool) 设置为 Trainer 的 stop_triger 来停止迭代循环。但是这样一来,我认为我们不能使用其他扩展,例如使用 stop_trigger=((args.epoch, '10')) 的 LogReport。
所以,我的问题是如何实现作为扩展的提前停止以及如何发送信号以停止训练器从扩展中的迭代。
谢谢。
neural-network - 如何将现有的 word2vector 实现到 EmbedID 中?
我知道EmbedID
随机初始化的方法。但现在我想加载现有的w2v
,比如Glove
,并随着训练过程不断更新它。我怎样才能做到这一点?
谢谢你的帮助。