我使用 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'
]
>>>
uj5u.com熱心網友回復:
這繼續我們在評論中的討論。
當您 importsys和 thenprint(sys.path)時,您可以看到解釋器按順序查找包的所有路徑。您在環境tf1p37中安裝的軟體包位于'C:\\Users\\name\\anaconda3\\envs\\tf1p37\\lib\\site-packages'. 這也是安裝 tensorflow 1.15 的地方。
但是,在串列中還安裝了一個 tensorflow(即 2.5 版)'C:\\Users\\name\\AppData\\Roaming\\Python\\Python37\\site-packages' 。發生的情況是你的 python 解釋器搜索它找到的第一個 tensorflow,這是這個全域安裝的版本。之后,它不再尋找其他安裝。通過從 sys.path 中洗掉此項,第一次出現(也可能是唯一一次)是 tensorflow 1.15。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/437204.html
