Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用protobuf,如何从已解析的对象中删除字段?_Python_Field_Protocol Buffers - Fatal编程技术网

Python 使用protobuf,如何从已解析的对象中删除字段?

Python 使用protobuf,如何从已解析的对象中删除字段?,python,field,protocol-buffers,Python,Field,Protocol Buffers,我已成功将原型缓冲区解析到我的对象中,并可以显示或修改我的字段: print "convolution param = " + str(net.layer[1].convolution_param) net.layer[1].convolution_param.num_output = 0 返回 convolution param = num_output: 64 pad: 1 kernel_size: 3 del net.layer[1].convolution_param TypeErr

我已成功将原型缓冲区解析到我的对象中,并可以显示或修改我的字段:

print "convolution param = " + str(net.layer[1].convolution_param)
net.layer[1].convolution_param.num_output = 0
返回

convolution param = num_output: 64
pad: 1
kernel_size: 3
del net.layer[1].convolution_param
TypeError: Can't set composite field
但是,我试图完全删除卷积参数,但无法:

del net.layer[1].convolution_param
返回

convolution param = num_output: 64
pad: 1
kernel_size: 3
del net.layer[1].convolution_param
TypeError: Can't set composite field
我相信这就是在proto库中触发此错误的原因:

int SetAttr(CMessage* self, PyObject* name, PyObject* value) {
  if (PyDict_Contains(self->composite_fields, name)) {
    PyErr_SetString(PyExc_TypeError, "Can't set composite field");
    return -1;
  }
删除字段的指定方法是什么?我还尝试了以下方面,但没有取得更多成功:

del net.layer[1].convolution_param.num_output
del net.layer[1].convolution_param[:] = []

我在以下方面取得了成功:

del net.layer[1].convolution_param[:]
移除支架将导致上述错误