Operator "deformable_conv" has not been registered. PaddlePaddle 1.5.0
Created by: brodra
为什么paddle提供的operator会未注册,是版本或安装问题还是有些op确实要手动注册?
训练阶段,更准确地说就是执行了fluid.layers.deformable_conv
函数时报错。
进去追踪到helper.append_op(type='deformable_conv')
抛出如上错误。
paddle的包是按官网教程安装的
python3 -m pip install paddlepaddle==1.5.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
系统环境Ubuntu14.04,anaconda 1.6.5, python 3.6.3, pip 9.0.1, 无显卡
复现代码如下(官方文档实例):
from paddle import fluid
data = fluid.layers.data(name='data', shape=[3, 32, 32], dtype='float32')
offset = fluid.layers.data(name='offset', shape=[18, 32, 32], dtype='float32')
mask = fluid.layers.data(name='mask', shape=[9, 32, 32], dtype='float32')
out = fluid.layers.deformable_conv(input=data, offset=offset, mask=mask, num_filters=2, filter_size=3, padding=1)
pass
结果是
Traceback (most recent call last):
File "deconv.py", line 6, in <module>
out = fluid.layers.deformable_conv(input=data, offset=offset, mask=mask, num_filters=2, filter_size=3, padding=1)
File "/home/brodra/python/anaconda3/lib/python3.6/site-packages/paddle/fluid/layers/nn.py", line 12095, in deformable_conv
'im2col_step': im2col_step,
File "/home/brodra/python/anaconda3/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/brodra/python/anaconda3/lib/python3.6/site-packages/paddle/fluid/framework.py", line 1748, in append_op
attrs=kwargs.get("attrs", None))
File "/home/brodra/python/anaconda3/lib/python3.6/site-packages/paddle/fluid/framework.py", line 1061, in __init__
proto = OpProtoHolder.instance().get_op_proto(type)
File "/home/brodra/python/anaconda3/lib/python3.6/site-packages/paddle/fluid/framework.py", line 950, in get_op_proto
raise ValueError("Operator \"%s\" has not been registered." % type)
ValueError: Operator "deformable_conv" has not been registered.