PyCharm TensorFlow警告类型“Variable”没有预期的属性“\uuU sub”'

2024-10-01 17:29:27 发布

您现在位置:Python中文网/ 问答频道 /正文

复制时再培训.py从TensorFlow GitHub存储库:

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/image_retraining/retrain.py

然后在PyCharm中打开它,在第794行和第802行PyCharm显示以下警告:

Type 'Variable' doesn't have expected attribute '__sub__'

下面是一个截图,如果有帮助的话:

enter image description here

有人能解释一下1)这是什么意思吗?2)如何解决这一问题或抑制警告?在

很明显,PyCharm认为layer_weights没有属性{},但是这意味着什么,为什么{}属性是必需的?函数variable_summaries()不引用属性__sub__(从第735行开始复制/粘贴):

^{pr2}$

有人能解释一下为什么属性__sub__是必需的吗?在

看完以下帖子:

How can I tell PyCharm what type a parameter is expected to be?

我的印象是,可以添加一条注释来抑制此警告,可能是类似于:

@type whatGoesHere: ??
@attribute __sub__: comment here??    # is this correct?
@param whatGoesHere: ??

这样的事情可行吗?评论应该是什么?在

我不希望禁用PyCharm的警告,因为我发现它们在很多情况下都很有用。有人能提供一些启示,以避免在PyCharm中禁用这个警告吗?在

---编辑----------------

谢谢你的解释。目前,这似乎是在PyCharm中处理此问题的最佳方法,而不会完全禁用检查:

# this comment is necessary to suppress an unnecessary PyCharm warning
# noinspection PyTypeChecker
variable_summaries(layer_weights)

如果最终有人能告诉我更好的选择那就太好了。在


Tags: topylayer警告属性istensorflowtype
1条回答
网友
1楼 · 发布于 2024-10-01 17:29:27

-运算符在variable_summaries内的var上调用:

stddev = tf.sqrt(tf.reduce_mean(tf.square(var - mean)))

{{{cd7}的表达式通常是tf.Variable实例被包装在state_ops.variable_op_v2上,并且没有Python通常期望的__sub__方法。在

因此,这个警告是TensorFlow在TensorFlow对象上大量定制标准Python操作符的固有方式,以便支持我们使用的表达式,同时使用TensorFlow OPs启用GPU/CPU计算。在

我想说你可以安全地忽略任何Tensorflow对象上的警告。不幸的是,我不知道如何在PyCharm中隐藏这个警告。在

相关问题 更多 >

    热门问题