【问题标题】:How to get the momentum term in a neural network in optim如何在优化中获得神经网络中的动量项
【发布时间】:2017-11-14 01:50:36
【问题描述】:

|我在torch7中有一个神经网络,想检查神经网络的动量是如何发展的,这是因为我想修改/减少它,因为我想对这些值进行一些额外的处理并且需要速度任期为了做到这一点。 所以我有类似下面的代码:

for t = 1, params.num_iterations do
  local x, losses = optim.adam(feval, img, optim_state)
        img=postProccess(img,content_imageprep,params)
        print(velocity) -- how?
end

并且想看看速度在做什么。有人知道怎么做吗?

打印optim_state 给我以下输出

  v : CudaTensor - size: 1327104
  m : CudaTensor - size: 1327104
  learningRate : 10
  denom : CudaTensor - size: 1327104
  t : 4

但我现在确定如果是的话,什么术语代表速度,有人知道吗?

【问题讨论】:

  • 什么是神经网络中的速度?我以前从未听说过这个词……你能解释一下吗?
  • @ThomasW 当一个权重在同一方向重复更新时,更新可以越来越大以便更快收敛,另一方面,如果权重在增加和减少之间不断切换,那么可以减小更新的大小以更接近正确的值
  • 编辑:我刚刚注意到速度 = 动量

标签: machine-learning lua neural-network torch torchnet


【解决方案1】:

您不会在 state 参数中找到动量值,而是在 config 参数中找到动量值(在您的函数调用中不存在,那么动量值将等于其默认值,即 0.9 beta1beta2 为 0.999。

看看源码https://github.com/torch/optim/blob/master/adam.lua#L24

【讨论】:

  • 听起来不错,但我感兴趣的是每个权重的实际动量值(看看它们是什么,以及它们是否确实像我怀疑的那样移动到无穷大)。你知道怎么做吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-24
  • 1970-01-01
  • 2018-11-18
  • 2017-09-11
  • 2012-12-29
  • 2015-07-10
  • 2020-08-23
相关资源
最近更新 更多