diff options
author | Soumith Chintala <soumith@gmail.com> | 2014-05-11 00:08:26 +0400 |
---|---|---|
committer | Soumith Chintala <soumith@gmail.com> | 2014-05-11 00:08:26 +0400 |
commit | 618d29602ec01d2d6e238440bfa158326e787da6 (patch) | |
tree | f3fe069d85357a7afa91b16d325f3e16c3efcfd4 /test | |
parent | 183259941205c0e024cbef69931614f12d63c8d3 (diff) | |
parent | f466855539126b161c3fe6d0e8d929248d46a241 (diff) |
Merge pull request #8 from nicholas-leonard/master
Batch TemporalConvolution
Diffstat (limited to 'test')
-rw-r--r-- | test/test.lua | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/test/test.lua b/test/test.lua index b342c36..10867fe 100644 --- a/test/test.lua +++ b/test/test.lua @@ -1283,6 +1283,7 @@ function nntest.Tanh() end function nntest.TemporalConvolution() + -- 1D local from = math.random(1,10) local to = math.random(1,10) local ki = math.random(1,10) @@ -1317,9 +1318,51 @@ function nntest.TemporalConvolution() 'error on bias [%s]', t)) end + -- 2D + local nBatchFrame = 8 + local input = torch.Tensor(nBatchFrame, ini, from):zero() + + local err = jac.testJacobian(module, input) + mytester:assertlt(err, precision, 'error on state ') + + local err = jac.testJacobianParameters(module, input, module.weight, module.gradWeight) + mytester:assertlt(err , precision, 'error on weight ') + + local err = jac.testJacobianParameters(module, input, module.bias, module.gradBias) + mytester:assertlt(err , precision, 'error on bias ') + + local err = jac.testJacobianUpdateParameters(module, input, module.weight) + mytester:assertlt(err , precision, 'error on weight [direct update]') + + local err = jac.testJacobianUpdateParameters(module, input, module.bias) + mytester:assertlt(err , precision, 'error on bias [direct update]') + + for t,err in pairs(jac.testAllUpdate(module, input, 'weight', 'gradWeight')) do + mytester:assertlt(err, precision, string.format( + 'error on weight [%s]', t)) + end + + for t,err in pairs(jac.testAllUpdate(module, input, 'bias', 'gradBias')) do + mytester:assertlt(err, precision, string.format( + 'error on bias [%s]', t)) + end + local ferr, berr = jac.testIO(module, input) mytester:asserteq(0, ferr, torch.typename(module) .. ' - i/o forward err ') mytester:asserteq(0, berr, torch.typename(module) .. ' - i/o backward err ') + + -- 2D matches 1D + local output = module:forward(input) + local outputGrad = torch.randn(output:size()) + local inputGrad = module:backward(input, outputGrad) + + local input1D = input:select(1, 1) + local output1D = module:forward(input1D) + local outputGrad1D = outputGrad:select(1, 1) + local inputGrad1D = module:backward(input1D, outputGrad1D) + + mytester:assertTensorEq(output:select(1,1) output1D, 0.000001, 'error on 2D vs 1D forward)') + mytester:assertTensorEq(inputGrad:select(1,1) inputGrad1D, 0.000001, 'error on 2D vs 1D backward)') end function nntest.TemporalSubSampling() |