【问题标题】:Torch, how to get a tensor of loss values during batch optimizationTorch,如何在批量优化期间获得损失值的张量
【发布时间】:2017-09-01 22:29:18
【问题描述】:

我正在训练一个对我的训练集进行批量优化的网络,我想获得一个包含我的每个训练示例的损失的损失向量。

更具体地说,我正在使用大小为 64 的批次中的图像(大小为 3x64x64)。因此我的输入是大小为 64x3x64x64 的张量。

在训练时我写作

output = net:forward(input)
loss = criterion:forward(input, target)

loss 是一个数字,但我想获得一个张量(大小为 64),在我的批次中每个图像都有一个条目,对应于这个精确图像的损失值。

有没有办法在我的输入张量的第一个维度上循环

【问题讨论】:

    标签: lua neural-network deep-learning torch loss


    【解决方案1】:

    forward 方法调用另一个方法,updateOutput 方法,它可以被覆盖。 例如,在MSECriterion() 的情况下,您可以通过注释对THNN 库的调用来更改方法,并自行编写您希望标准如何发挥作用,即进行正常的元素减法然后平方(再次元素明智)并除以数据点的总数(再次元素明智);然后将输出作为张量返回。

    在导航到 nn 文件夹后使用luarocks make rocks/[the scm file in the folder] 更改此包后,您还需要重新编译 nn 包。

    【讨论】:

    • 是的,肯定总是可以编写一个新方法,我知道 :) 我只是希望它以前已经完成,但标准函数中似乎没有选项可以做到这一点无需重写它们...
    猜你喜欢
    • 2018-06-27
    • 2019-01-24
    • 2021-06-12
    • 2018-11-08
    • 1970-01-01
    • 2016-07-02
    • 2018-09-09
    • 1970-01-01
    • 2021-11-03
    相关资源
    最近更新 更多