【发布时间】:2019-09-03 17:08:29
【问题描述】:
问题的最短版本:
在 Python 中检查 TensorFlow 版本时,有人可以解释/澄清tf.__version__ 和tf.VERSION 之间的区别吗??
略长的问题:
这似乎有效:
if tf.__version__ < "1.8.0":
print("ERROR: currently running TensorFlow version " + tf.__version__ + ", at least version 1.8.0 is required")
return
# end if
这似乎也有效:
if tf.VERSION < "1.8.0":
print("ERROR: currently running TensorFlow version " + tf.VERSION + ", at least version 1.8.0 is required")
return
# end if
我注意到的一个区别是,PyCharm 编辑器会针对 tf.__version__ 方式显示警告,但不会针对 tf.VERSION 方式显示警告:
在 PyCharm 中解决此问题的方法是在每个 tf.__version__ 使用上方添加 # noinspection PyUnresolvedReferences 注释,这解决了警告:
但是,tf.VERSION 方式不会在没有 # noinspection PyUnresolvedReferences 注释的情况下在 PyCharm 中显示警告:
我在这篇文章中询问了 PyCharm tf.__version__ 警告:
TensorFlow Python warning in PyCharm - Cannot find reference __version__ in __init__.py
唯一的响应者表示tf.__version__ 是动态生成的。特别是在 Python 的上下文中,我真的不明白这是什么意思。
所以此时我有以下问题:
1) 为什么两者都存在?
2) 通常推荐使用其中的一种吗?
3) 为什么 PyCharm 显示一个警告而不显示另一个?
4) 动态生成tf.__version__ 是什么意思?如果换一种方式,tf.VERSION 是如何生成的?
5) 为了避免添加# noinspection PyUnresolvedReferences 评论,我更喜欢使用tf.VERSION,有什么理由不这样做吗?
6) TensorFlow 存储库https://github.com/tensorflow/tensorflow 和相关存储库(例如模型https://github.com/tensorflow/models)中的大多数示例使用tf.__version__ 方式,但有些使用tf.VERSION 方式,这是有原因的吗?
【问题讨论】:
标签: python tensorflow