Tensorflow 版本不匹配
Tensorflow version mismatch
我使用 Windows 10 和 Anaconda 来管理我的所有环境,我有几个不同的环境可以使用 Tensorflow。
我有一个运行 1.14
版本的环境。我有另一个具有工作 2.5
版本的环境。我刚刚创建了另一个安装 1.15
版本的环境。
# Name Version Build Channel
tensorflow 1.15.0 gpu_py37hc3743a6_0
tensorflow-base 1.15.0 gpu_py37h1afeea4_0
tensorflow-estimator 2.6.0 pyh7b7c402_0
tensorflow-gpu 1.15.0 h0d30ee6_0
然而当我运行python时,它仍然加载tensorflow 2.5
(tf1p37) C:\Users\mazat>conda list tensorflow
# packages in environment at C:\Users\name\anaconda3\envs\tf1p37:
#
# Name Version Build Channel
tensorflow 1.15.0 gpu_py37hc3743a6_0
tensorflow-base 1.15.0 gpu_py37h1afeea4_0
tensorflow-estimator 2.6.0 pyh7b7c402_0
tensorflow-gpu 1.15.0 h0d30ee6_0
(tf1p37) C:\Users\name>python
Python 3.7.11 (default, Jul 27 2021, 09:42:29) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
2022-03-02 11:29:51.314557: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cudart64_110.dll
>>> tf.__version__
'2.5.0'
>>>
所以看起来即使我在这个环境中安装了正确的版本,它仍然从不同的环境加载版本。可能是什么原因造成的? Keras 版本也发生了完全相同的事情。
更新1:
这是 sys.path
的输出
>>> import sys
>>> sys.path
['',
'C:\Users\name\anaconda3\envs\tf1p37\python37.zip',
'C:\Users\name\anaconda3\envs\tf1p37\DLLs',
'C:\Users\name\anaconda3\envs\tf1p37\lib',
'C:\Users\name\anaconda3\envs\tf1p37',
'C:\Users\name\AppData\Roaming\Python\Python37\site-packages',
'C:\Users\name\anaconda3\envs\tf1p37\lib\site-packages',
'C:\Users\name\anaconda3\envs\tf1p37\lib\site-packages\locket-0.2.1-py3.7.egg',
'C:\Users\name\anaconda3\envs\tf1p37\lib\site-packages\win32',
'C:\Users\name\anaconda3\envs\tf1p37\lib\site-packages\win32\lib',
'C:\Users\name\anaconda3\envs\tf1p37\lib\site-packages\Pythonwin'
]
>>>
这将继续我们在评论中的讨论。
当您导入 sys
然后 print(sys.path)
时,您可以按顺序看到您的解释器将在其中查找包的所有路径。您在环境 tf1p37
中安装的软件包位于 'C:\Users\name\anaconda3\envs\tf1p37\lib\site-packages'
中。这也是安装tensorflow 1.15的地方。
然而,在'C:\Users\name\AppData\Roaming\Python\Python37\site-packages'
中也安装了tensorflow(即2.5版),它在列表的前面。发生的事情是您的 python 解释器搜索它找到的第一个 tensorflow,即这个 global-installed 版本。之后,它不再寻找其他安装。通过从 sys.path 中删除此项,第一次出现(也可能是唯一一次出现)是 tensorflow 1.15.
我使用 Windows 10 和 Anaconda 来管理我的所有环境,我有几个不同的环境可以使用 Tensorflow。
我有一个运行 1.14
版本的环境。我有另一个具有工作 2.5
版本的环境。我刚刚创建了另一个安装 1.15
版本的环境。
# Name Version Build Channel
tensorflow 1.15.0 gpu_py37hc3743a6_0
tensorflow-base 1.15.0 gpu_py37h1afeea4_0
tensorflow-estimator 2.6.0 pyh7b7c402_0
tensorflow-gpu 1.15.0 h0d30ee6_0
然而当我运行python时,它仍然加载tensorflow 2.5
(tf1p37) C:\Users\mazat>conda list tensorflow
# packages in environment at C:\Users\name\anaconda3\envs\tf1p37:
#
# Name Version Build Channel
tensorflow 1.15.0 gpu_py37hc3743a6_0
tensorflow-base 1.15.0 gpu_py37h1afeea4_0
tensorflow-estimator 2.6.0 pyh7b7c402_0
tensorflow-gpu 1.15.0 h0d30ee6_0
(tf1p37) C:\Users\name>python
Python 3.7.11 (default, Jul 27 2021, 09:42:29) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
2022-03-02 11:29:51.314557: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cudart64_110.dll
>>> tf.__version__
'2.5.0'
>>>
所以看起来即使我在这个环境中安装了正确的版本,它仍然从不同的环境加载版本。可能是什么原因造成的? Keras 版本也发生了完全相同的事情。
更新1:
这是 sys.path
>>> import sys
>>> sys.path
['',
'C:\Users\name\anaconda3\envs\tf1p37\python37.zip',
'C:\Users\name\anaconda3\envs\tf1p37\DLLs',
'C:\Users\name\anaconda3\envs\tf1p37\lib',
'C:\Users\name\anaconda3\envs\tf1p37',
'C:\Users\name\AppData\Roaming\Python\Python37\site-packages',
'C:\Users\name\anaconda3\envs\tf1p37\lib\site-packages',
'C:\Users\name\anaconda3\envs\tf1p37\lib\site-packages\locket-0.2.1-py3.7.egg',
'C:\Users\name\anaconda3\envs\tf1p37\lib\site-packages\win32',
'C:\Users\name\anaconda3\envs\tf1p37\lib\site-packages\win32\lib',
'C:\Users\name\anaconda3\envs\tf1p37\lib\site-packages\Pythonwin'
]
>>>
这将继续我们在评论中的讨论。
当您导入 sys
然后 print(sys.path)
时,您可以按顺序看到您的解释器将在其中查找包的所有路径。您在环境 tf1p37
中安装的软件包位于 'C:\Users\name\anaconda3\envs\tf1p37\lib\site-packages'
中。这也是安装tensorflow 1.15的地方。
然而,在'C:\Users\name\AppData\Roaming\Python\Python37\site-packages'
中也安装了tensorflow(即2.5版),它在列表的前面。发生的事情是您的 python 解释器搜索它找到的第一个 tensorflow,即这个 global-installed 版本。之后,它不再寻找其他安装。通过从 sys.path 中删除此项,第一次出现(也可能是唯一一次出现)是 tensorflow 1.15.