Python 为什么;CopyFrom";在创建常数张量时使用?

Python 为什么;CopyFrom";在创建常数张量时使用?,python,tensorflow,protocol-buffers,Python,Tensorflow,Protocol Buffers,在常数张量的创建过程中,存在以下情况: CopyFrom创建新创建的张量原型的副本。然而,这看起来像是在浪费资源,因为根据文档,make_tensor_proto创建了一个新对象。仅仅做下一步是否更充分: tensor_value.tensor = tensor_util.make_tensor_proto(value, dtype=dtype, shape=shape) 这不应该创建一个新对象,而且它也是protobuf字段之一的有效用法 您不能将proto分配给proto的

在常数张量的创建过程中,存在以下情况:

CopyFrom
创建新创建的张量原型的副本。然而,这看起来像是在浪费资源,因为根据文档,make_tensor_proto创建了一个新对象。仅仅做下一步是否更充分:

  tensor_value.tensor =
      tensor_util.make_tensor_proto(value, dtype=dtype, shape=shape)

这不应该创建一个新对象,而且它也是protobuf字段之一的有效用法

您不能将proto分配给proto的字段,如本文档所述:

不能为嵌入的消息字段赋值。相反,为子消息中的任何字段赋值意味着在父消息中设置消息字段

如果从中删除CopyFrom,将出现以下错误:

AttributeError: Assignment not allowed to field "tensor" in protocol message object.

您不能将proto分配给proto的字段,如本文档所述:

不能为嵌入的消息字段赋值。相反,为子消息中的任何字段赋值意味着在父消息中设置消息字段

如果从中删除CopyFrom,将出现以下错误:

AttributeError: Assignment not allowed to field "tensor" in protocol message object.

很好,我正在从中删除副本并执行测试。很好,我正在从中删除副本并执行测试。