提交 d30f18dd authored 作者: affanv14's avatar affanv14

test default optimizers in meta-optimizer

上级 b998dc61
...@@ -811,28 +811,53 @@ class Conv_opt_test(unittest.TestCase): ...@@ -811,28 +811,53 @@ class Conv_opt_test(unittest.TestCase):
for imshp, kshp, tshp in zip(imshp2d, kshp2d, tshp2d): for imshp, kshp, tshp in zip(imshp2d, kshp2d, tshp2d):
# forward passes # forward passes
self.optimizer_2d([imshp, kshp, tshp], 0,
'',
'conv_dnn:alternative',
blas.GpuCorrMM,
subsample=(2, 2))
self.optimizer_2d([imshp, kshp, tshp], 0, self.optimizer_2d([imshp, kshp, tshp], 0,
'alternative', 'alternative',
'conv_dnn:default', 'conv_dnn:default',
blas.GpuCorrMM_gradWeights) blas.GpuCorrMM_gradWeights)
self.optimizer_2d([imshp, kshp, tshp], 0,
'',
'conv_gemm:alternative',
dnn.GpuDnnConv)
self.optimizer_2d([imshp, kshp, tshp], 0, self.optimizer_2d([imshp, kshp, tshp], 0,
'alternative', 'alternative',
'conv_gemm:default', 'conv_gemm:default',
dnn.GpuDnnConvGradW) dnn.GpuDnnConvGradW)
# backwards wrt weights # backwards wrt weights
self.optimizer_2d([imshp, tshp, kshp], 1,
'',
'conv_dnn:alternative',
blas.GpuCorrMM_gradWeights)
self.optimizer_2d([imshp, tshp, kshp], 1, self.optimizer_2d([imshp, tshp, kshp], 1,
'alternative', 'alternative',
'conv_dnn:default', 'conv_dnn:default',
blas.GpuCorrMM) blas.GpuCorrMM)
self.optimizer_2d([imshp, tshp, kshp], 1,
'',
'conv_gemm:alternative',
dnn.GpuDnnConvGradW)
self.optimizer_2d([imshp, tshp, kshp], 1, self.optimizer_2d([imshp, tshp, kshp], 1,
'alternative', 'alternative',
'conv_gemm:default', 'conv_gemm:default',
dnn.GpuDnnConv) dnn.GpuDnnConv)
# backwards wrt to inputs # backwards wrt to inputs
self.optimizer_2d([tshp, kshp, imshp], 2,
'',
'conv_dnn:alternative',
blas.GpuCorrMM_gradInputs)
self.optimizer_2d([tshp, kshp, imshp], 2, self.optimizer_2d([tshp, kshp, imshp], 2,
'alternative', 'alternative',
'conv_dnn:default', 'conv_dnn:default',
blas.GpuCorrMM) blas.GpuCorrMM)
self.optimizer_2d([tshp, kshp, imshp], 2,
'',
'conv_gemm:alternative',
dnn.GpuDnnConvGradI)
self.optimizer_2d([tshp, kshp, imshp], 2, self.optimizer_2d([tshp, kshp, imshp], 2,
'alternative', 'alternative',
'conv_gemm:default', 'conv_gemm:default',
...@@ -848,6 +873,11 @@ class Conv_opt_test(unittest.TestCase): ...@@ -848,6 +873,11 @@ class Conv_opt_test(unittest.TestCase):
for imshp, kshp, tshp in zip(imshp3d, kshp3d, tshp3d): for imshp, kshp, tshp in zip(imshp3d, kshp3d, tshp3d):
# forwards passes # forwards passes
self.optimizer_3d([imshp, kshp, tshp], 0,
'',
'conv_dnn:alternative:conv3d2d',
blas.GpuCorr3dMM,
subsample=(2, 2, 2))
self.optimizer_3d([imshp, kshp, tshp], 0, self.optimizer_3d([imshp, kshp, tshp], 0,
'alternative', 'alternative',
'conv_dnn:default:conv3d2d', 'conv_dnn:default:conv3d2d',
...@@ -860,7 +890,15 @@ class Conv_opt_test(unittest.TestCase): ...@@ -860,7 +890,15 @@ class Conv_opt_test(unittest.TestCase):
'alternative', 'alternative',
'conv_gemm:default:conv3d2d', 'conv_gemm:default:conv3d2d',
dnn.GpuDnnConvGradW) dnn.GpuDnnConvGradW)
self.optimizer_3d([imshp, kshp, tshp], 0,
'',
'conv_gemm:alternative:conv3d2d',
dnn.GpuDnnConv)
# backward pass wrt weight # backward pass wrt weight
self.optimizer_3d([imshp, tshp, kshp], 1,
'',
'conv_dnn:alternative',
blas.GpuCorr3dMM_gradWeights)
self.optimizer_3d([imshp, tshp, kshp], 1, self.optimizer_3d([imshp, tshp, kshp], 1,
'alternative', 'alternative',
'conv_dnn:default', 'conv_dnn:default',
...@@ -869,8 +907,16 @@ class Conv_opt_test(unittest.TestCase): ...@@ -869,8 +907,16 @@ class Conv_opt_test(unittest.TestCase):
'alternative', 'alternative',
'conv_gemm:default', 'conv_gemm:default',
dnn.GpuDnnConv) dnn.GpuDnnConv)
self.optimizer_3d([imshp, tshp, kshp], 1,
'',
'conv_gemm:alternative',
dnn.GpuDnnConvGradW)
# backward pass wrt inputs # backward pass wrt inputs
self.optimizer_3d([tshp, kshp, imshp], 2,
'',
'conv_dnn:alternative',
blas.GpuCorr3dMM_gradInputs)
self.optimizer_3d([tshp, kshp, imshp], 2, self.optimizer_3d([tshp, kshp, imshp], 2,
'alternative', 'alternative',
'conv_dnn:default', 'conv_dnn:default',
...@@ -879,6 +925,10 @@ class Conv_opt_test(unittest.TestCase): ...@@ -879,6 +925,10 @@ class Conv_opt_test(unittest.TestCase):
'alternative', 'alternative',
'conv_gemm:default', 'conv_gemm:default',
dnn.GpuDnnConv) dnn.GpuDnnConv)
self.optimizer_3d([tshp, kshp, imshp], 2,
'',
'conv_gemm:alternative',
dnn.GpuDnnConvGradI)
def test_optimizers_non_default(self): def test_optimizers_non_default(self):
if theano.config.cxx == "": if theano.config.cxx == "":
...@@ -888,13 +938,25 @@ class Conv_opt_test(unittest.TestCase): ...@@ -888,13 +938,25 @@ class Conv_opt_test(unittest.TestCase):
kshp2d = [(4, 3, 3, 3), (3, 2, 3, 3)] kshp2d = [(4, 3, 3, 3), (3, 2, 3, 3)]
filter_dilation = [(1, 1), (2, 2)] filter_dilation = [(1, 1), (2, 2)]
for imshp, kshp, fdil in zip(imshp2d, kshp2d, filter_dilation): for imshp, kshp, fdil in zip(imshp2d, kshp2d, filter_dilation):
self.optimizer_2d([imshp, kshp], 0,
'',
'conv_dnn:alternative',
blas.GpuCorrMM,
border_mode='full',
subsample=(2, 2),
filter_dilation=fdil)
self.optimizer_2d([imshp, kshp], 0, self.optimizer_2d([imshp, kshp], 0,
'alternative', 'alternative',
'conv_dnn:default', 'conv_dnn:default',
blas.GpuCorrMM_gradInputs, blas.GpuCorrMM_gradInputs,
border_mode='full', border_mode='full',
filter_dilation=fdil) filter_dilation=fdil)
# works only for cudnn > 6.0 self.optimizer_2d([imshp, kshp], 0,
'',
'conv_gemm:alternative',
dnn.GpuDnnConv,
border_mode='full',
filter_dilation=fdil)
self.optimizer_2d([imshp, kshp], 0, self.optimizer_2d([imshp, kshp], 0,
'alternative', 'alternative',
'conv_gemm:default', 'conv_gemm:default',
...@@ -906,13 +968,25 @@ class Conv_opt_test(unittest.TestCase): ...@@ -906,13 +968,25 @@ class Conv_opt_test(unittest.TestCase):
kshp3d = [(4, 3, 3, 3, 3), (3, 2, 3, 3, 3)] kshp3d = [(4, 3, 3, 3, 3), (3, 2, 3, 3, 3)]
filter_dilation = [(1, 1, 1), (2, 2, 2)] filter_dilation = [(1, 1, 1), (2, 2, 2)]
for imshp, kshp, fdil in zip(imshp3d, kshp3d, filter_dilation): for imshp, kshp, fdil in zip(imshp3d, kshp3d, filter_dilation):
self.optimizer_3d([imshp, kshp], 0,
'',
'conv_dnn:alternative:conv3d2d',
blas.GpuCorr3dMM,
border_mode='full',
subsample=(2, 2, 2),
filter_dilation=fdil)
self.optimizer_3d([imshp, kshp], 0, self.optimizer_3d([imshp, kshp], 0,
'alternative', 'alternative',
'conv_dnn:default:conv3d2d', 'conv_dnn:default:conv3d2d',
blas.GpuCorr3dMM_gradInputs, blas.GpuCorr3dMM_gradInputs,
border_mode='full', border_mode='full',
filter_dilation=fdil) filter_dilation=fdil)
# works only for cudnn > 6.0 self.optimizer_3d([imshp, kshp], 0,
'',
'conv_gemm:alternative:conv3d2d',
dnn.GpuDnnConv,
border_mode='full',
filter_dilation=fdil)
self.optimizer_3d([imshp, kshp], 0, self.optimizer_3d([imshp, kshp], 0,
'alternative', 'alternative',
'conv_gemm:default:conv3d2d', 'conv_gemm:default:conv3d2d',
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论