diff --git a/MyParallelCriterion.lua b/MyParallelCriterion.lua index 2333235..fa12ffa 100644 --- a/MyParallelCriterion.lua +++ b/MyParallelCriterion.lua @@ -12,8 +12,9 @@ end function RepeatedCriterion:updateOutput(input, target) self.output = 0 + if self.weights == nil then self.weights = torch.ones(#input):div(#input) end for i = 1,#input do - self.output = self.output + self.weights[i]*criterion:updateOutput(input[i],target) + self.output = self.output + self.weights[i]*self.criterion:updateOutput(input[i],target) end return self.output end @@ -22,7 +23,7 @@ function RepeatedCriterion:updateGradInput(input, target) self.gradInput = nn.utils.recursiveResizeAs(self.gradInput, input) nn.utils.recursiveFill(self.gradInput, 0) for i = 1,#input do - nn.utils.recursiveAdd(self.gradInput[i], self.weights[i], criterion:updateGradInput(input[i], target)) + nn.utils.recursiveAdd(self.gradInput[i], self.weights[i], self.criterion:updateGradInput(input[i], target)) end return self.gradInput end