Invoke operator conv2d_grad error
Created by: ResearchingDexter
- 版本、环境信息: 1)PaddlePaddle版本:1.5.2 2)CPU/GPU:CUDA10.0和cuDNN7.4 3)系统环境:centos 6.3 4)Python3.6 5)显存信息 12G 运行下面代码,正向没问题,反向会报错
def _norm_initial(loc=0.0,scale=1.0,seed=0):
return ParamAttr(initializer=Normal(loc,scale,seed))
class FeatureAdaption(object):
def __init__(self,
out_channels:int,
kernel_size=3,
deformable_groups:int=4
):
self.out_channels=out_channels
self.kernel_size=kernel_size
self.deformable_groups=deformable_groups
self.offset_attr=_norm_initial(scale=0.1)
self.adaption_attr=_norm_initial(scale=0.01)
def __call__(self, x,shape):
offset_channels=self.kernel_size*self.kernel_size*2
offset=fluid.layers.conv2d(shape,
offset_channels*self.deformable_groups,
filter_size=1,
param_attr=self.offset_attr,
bias_attr=False)
# only DCNv2 is supported in the paddlepaddle,so initialize the mask by constant 0.
_,c,h,w=offset.shape
#mask=fluid.layers.fill_constant([b,c//2,h,w],dtype='float32',value=1.)
mask=fluid.layers.fill_constant_batch_size_like(offset,[-1,c//2,h,w],dtype='float32',value=1.)
out=fluid.layers.deformable_conv(x,offset,mask,
self.out_channels,
filter_size=self.kernel_size,
stride=1,
padding=(self.kernel_size-1)//2,
deformable_groups=self.deformable_groups,
param_attr=self.adaption_attr)
out=fluid.layers.relu(out)
return out
if __name__=='__main__':
feature=FeatureAdaption(256,3,4)
main_program = fluid.Program()
start_program = fluid.Program()
with fluid.program_guard(main_program, start_program):
x=fluid.layers.data('x',[256,50,50])
shape=fluid.layers.data('shape',[2,50,50])
out=feature(x,shape)
out=fluid.layers.reduce_mean(out)
optimizer = fluid.optimizer.SGD(0.1)
optimizer.minimize(out)
exe=fluid.Executor(fluid.CUDAPlace(0))
x_np=np.ones((1,256,50,50),'float32')
shape_np=np.ones((1,2,50,50),'float32')
exe.run(start_program)
out=exe.run(main_program,feed={'x':x_np,'shape':shape_np},fetch_list=[out.name])
print(out)
报错信息
Traceback (most recent call last):
File "head_test.py", line 172, in <module>
out=exe.run(main_program,feed={'x':x_np,'shape':shape_np},fetch_list=[out.name])
File "/home/work/.conda/envs/paddle_10/lib/python3.6/site-packages/paddle/fluid/executor.py", line 657, in run
use_program_cache=use_program_cache)
File "/home/work/.conda/envs/paddle_10/lib/python3.6/site-packages/paddle/fluid/executor.py", line 755, in _run
exe.run(program.desc, scope, 0, True, True, fetch_var_name)
paddle.fluid.core_avx.EnforceNotMet: Invoke operator conv2d_grad error.
Python Call stacks:
File "/home/work/.conda/envs/paddle_10/lib/python3.6/site-packages/paddle/fluid/framework.py", line 1778, in append_op
attrs=kwargs.get("attrs", None))
File "/home/work/.conda/envs/paddle_10/lib/python3.6/site-packages/paddle/fluid/layer_helper.py", line 43, in append_op
return self.main_program.current_block().append_op(*args, **kwargs)
File "/home/work/.conda/envs/paddle_10/lib/python3.6/site-packages/paddle/fluid/layers/nn.py", line 2181, in conv2d
'fuse_relu_before_depthwise_conv': False
File "head_test.py", line 143, in __call__
bias_attr=False)
File "head_test.py", line 164, in <module>
out=feature(x,shape)
C++ Call stacks:
holder_ should not be null
Tensor holds no memory. Call Tensor::mutable_data first. at [/paddle/paddle/fluid/framework/tensor.cc:23]
PaddlePaddle Call Stacks:
0 0x7fb17c22e278p void paddle::platform::EnforceNotMet::Init<std::string>(std::string, char const*, int) + 360
1 0x7fb17c22e5c7p paddle::platform::EnforceNotMet::EnforceNotMet(std::string const&, char const*, int) + 87
2 0x7fb17e32e589p paddle::framework::Tensor::check_memory_size() const + 185
3 0x7fb17c234ed9p float const* paddle::framework::Tensor::data<float>() const + 25
4 0x7fb17c68142dp paddle::operators::CUDNNConvGradOpKernel<float>::Compute(paddle::framework::ExecutionContext const&) const + 525
5 0x7fb17c682743p std::_Function_handler<void (paddle::framework::ExecutionContext const&), paddle::framework::OpKernelRegistrarFunctor<paddle::platform::CUDAPlace, false, 0ul, paddle::operators::CUDNNConvGradOpKernel<float>, paddle::operators::CUDNNConvGradOpKernel<double>, paddle::operators::CUDNNConvGradOpKernel<paddle::platform::float16> >::operator()(char const*, char const*, int) const::{lambda(paddle::framework::ExecutionContext const&)#1}>::_M_invoke(std::_Any_data const&, paddle::framework::ExecutionContext const&) + 35
6 0x7fb17e2d18f7p paddle::framework::OperatorWithKernel::RunImpl(paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&, paddle::framework::RuntimeContext*) const + 375
7 0x7fb17e2d1cd1p paddle::framework::OperatorWithKernel::RunImpl(paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&) const + 529
8 0x7fb17e2cc863p paddle::framework::OperatorBase::Run(paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&) + 307
9 0x7fb17c3b8dfep paddle::framework::Executor::RunPreparedContext(paddle::framework::ExecutorPrepareContext*, paddle::framework::Scope*, bool, bool, bool) + 398
10 0x7fb17c3bbe9fp paddle::framework::Executor::Run(paddle::framework::ProgramDesc const&, paddle::framework::Scope*, int, bool, bool, std::vector<std::string, std::allocator<std::string> > const&, bool) + 143
11 0x7fb17c21f1fdp
12 0x7fb17c260d56p
13 0x7fb1acd8ac54p _PyCFunction_FastCallDict + 340
14 0x7fb1ace12c0ep
15 0x7fb1ace3575ap _PyEval_EvalFrameDefault + 778
16 0x7fb1ace0be66p
17 0x7fb1ace0ced6p
18 0x7fb1ace12b95p
19 0x7fb1ace3651cp _PyEval_EvalFrameDefault + 4300
20 0x7fb1ace0be66p
21 0x7fb1ace0ced6p
22 0x7fb1ace12b95p
23 0x7fb1ace3651cp _PyEval_EvalFrameDefault + 4300
24 0x7fb1ace0d9b9p PyEval_EvalCodeEx + 809
25 0x7fb1ace0e75cp PyEval_EvalCode + 28
26 0x7fb1ace8e744p
27 0x7fb1ace8eb41p PyRun_FileExFlags + 161
28 0x7fb1ace8ed43p PyRun_SimpleFileExFlags + 451
29 0x7fb1ace92833p Py_Main + 1555
30 0x7fb1acd5c88ep main + 238
31 0x7fb1ac4c6cddp __libc_start_main + 253
32 0x7fb1ace3c160p