gpt4 book ai didi

neural-network - 如何在torch中编写updateGradInput和accGradParameters?

转载 作者:行者123 更新时间:2023-12-01 14:36:27 25 4
gpt4 key购买 nike

我知道这两个函数是用于torch的反向传播,界面如下
updateGradInput(input, gradOutput)
accGradParameters(input, gradOutput, scale)
我对 gradInput 的内容感到困惑。和 gradOutput真正的意思是在一层。
假设网络的成本是C和一层 L .做gradInputgradOutput层数L意思是 d_C/d_input_Ld_C/d_output_L ?

如果是,如何计算gradInput根据 gradOutput ?

此外,accGradParameters积累的意思d_C/d_Weight_Ld_C/d_bias_L ?如果是这样,如何计算这些值?

最佳答案

Do gradInput and gradOutput of layer L mean d_C/d_input_L and d_C/d_output_L



是的:
  • gradInput = 成本 w.r.t 层输入的导数,
  • gradOutput = 成本 w.r.t 层输出的导数。

  • how to compute gradInput according to gradOutput



    The building blocks of Deep Learning 调整架构( 警告 :在此模式中,成本表示为 L = Loss 和层 f )我们有:

    enter image description here

    有关在 LogSoftMax 层上进行此类计算的具体分步示例,您可以引用 this answer。 .

    does accGradParameters mean to accumulate d_C/d_Weight_L and d_C/d_bias_L



    是的。已命名 gradWeightgradBias在火炬/nn。

    how to compute these values?



    同上。仍然使用上述博客文章中的公式:

    enter image description here

    除了雅可比具有不同的维度(有关更多详细信息,请参阅博客文章)。例如,对于线性层,这转化为:

    enter image description here

    这是层的输入和 gradOutput 之间的外积。 .在火炬 we have :
    self.gradWeight:addr(scale, gradOutput, input)

    和:

    enter image description here

    这是 gradOutput .在火炬 we have :
    self.gradBias:add(scale, gradOutput)

    在这两种情况下 scale是在实践中用作学习率的比例因子。

    关于neural-network - 如何在torch中编写updateGradInput和accGradParameters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36440826/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com