gpt4 book ai didi

python - PyCharm TensorFlow 警告 - 类型 'Variable' 没有预期的属性 '__sub__'

转载 作者:太空宇宙 更新时间:2023-11-04 02:32:36 40 4
gpt4 key购买 nike

TensorFlow GitHub repository 复制 retrain.py 后

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

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

如果有帮助,这里是截图:

enter image description here

谁能解释一下:

  1. 这是什么意思?

  2. 如何解决这个问题或抑制警告?

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

def variable_summaries(var):
"""Attach a lot of summaries to a Tensor (for TensorBoard visualization)."""
with tf.name_scope('summaries'):
mean = tf.reduce_mean(var)
tf.summary.scalar('mean', mean)
with tf.name_scope('stddev'):
stddev = tf.sqrt(tf.reduce_mean(tf.square(var - mean)))
tf.summary.scalar('stddev', stddev)
tf.summary.scalar('max', tf.reduce_max(var))
tf.summary.scalar('min', tf.reduce_min(var))
tf.summary.histogram('histogram', var)
# end of function

有人可以解释为什么属性 __sub__ 是必需的吗?

看完this帖子,我的印象是可以添加一条评论来抑制这个警告,可能是这样的:

@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)

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

最佳答案

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

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

通常 Python 会在计算表达式 var - mean 时寻找 var__sub__ 方法。但是,tf.Variable 实例包裹在 state_ops.variable_op_v2 中以支持 GPU/CPU 上的 Ops,并且没有 __sub__ 方法Python 通常会期望的。

因此,此警告是 TensorFlow 在 Tensorflow 对象上大量自定义标准 Python 运算符的方式所固有的,以便在使用 Tensorflow OP 启用 GPU/CPU 计算时支持我们习惯的表达式。

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

关于python - PyCharm TensorFlow 警告 - 类型 'Variable' 没有预期的属性 '__sub__',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48824351/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com