提交 e563c53c authored 作者: Pascal Lamblin's avatar Pascal Lamblin

Merge pull request #4172 from f0k/patch-1

More hints for failed AbstractConv2d optimization
...@@ -388,21 +388,16 @@ conv_groupopt.register('local_conv2d_gradinputs_cpu', ...@@ -388,21 +388,16 @@ conv_groupopt.register('local_conv2d_gradinputs_cpu',
AbstractConv2d_gradWeights, AbstractConv2d_gradWeights,
AbstractConv2d_gradInputs]) AbstractConv2d_gradInputs])
def local_abstractconv_check(node): def local_abstractconv_check(node):
if isinstance(node.op, AbstractConv2d): if isinstance(node.op, (AbstractConv2d,
AbstractConv2d_gradWeights,
AbstractConv2d_gradInputs)):
raise AssertionError( raise AssertionError(
'AbstractConv2d theano optimization failed. ' '%s Theano optimization failed: there is no implementation '
'Did you exclude both "conv_dnn" and "conv_gemm" from ' 'available supporting the requested options. Did you exclude '
'the optimizer? Is cudnn available and does the GPU support it?') 'both "conv_dnn" and "conv_gemm" from the optimizer? If on GPU, '
elif isinstance(node.op, AbstractConv2d_gradWeights): 'is cuDNN available and does the GPU support it? If on CPU, '
raise AssertionError( 'do you have a BLAS library installed Theano can link against?' %
'AbstractConv2d_gradWeights theano optimization failed. ' node.op.__class__.__name__)
'Did you exclude both "conv_dnn" and "conv_gemm" from '
'the optimizer? Is cudnn available and does the GPU support it?')
elif isinstance(node.op, AbstractConv2d_gradInputs):
raise AssertionError(
'AbstractConv2d_gradInputs theano optimization failed. '
'Did you exclude both "conv_dnn" and "conv_gemm" from '
'the optimizer? Is cudnn available and does the GPU support it?')
optdb.register('AbstracConvCheck', optdb.register('AbstracConvCheck',
opt.in2out(local_abstractconv_check, opt.in2out(local_abstractconv_check,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论