很久前安裝了anaconda,這次選修課需要用TensorFlow就開始嘗試使用一下,沒想到一上來就遇到各種問題
文章目錄
1. 在anaconda navigator上安裝虛擬環境
安裝好後,進入 anaconda prompt,通過如下命令
# (base) C:\Users\yyq>
> conda activate env_name
# (env_name) C:\Users\yyq>
切換到虛擬環境中。常用anaconda命令參考:Anaconda常用的命令
2. 添加清華、中科大鏡像
參考:
添加後不再需要fq,提高網絡連接速度(有時候會因爲“網絡連接”問題而報錯,如連接速度過慢等,這時候就需要鏡像網站)
conda config --add channels https://mirrors.xxxx
conda config --set show_channel_urls yes
之後還需要在 C:\Users\yyq
目錄下的 .condarc
文件中將 “-defaults” 刪掉。
3. 安裝各種包
conda
參考:conda 安裝指定版本的指定包 和 anaconda 安裝指定源的包
- 安裝庫 [指定channel或版本]:conda install [- -channel https://xxx] pkg_name[==0.22]
- 查看庫的版本:conda list pkg_name
- 更新庫的版本 [指定channel]:conda update [- -channel https://xxx] pkg_name
- 更新所有包:conda update --all
- 在鏡像網站中查找庫:conda search pkg_name
- 安裝其他源的包:anaconda search -t conda pkg_name 加 anaconda show pkg_name
這裏需要注意,若出現了 “Found conflicts” 的報錯,可能是各個庫的版本在安裝和調整的過程中產生不匹配。可以採用先 conda update --all
再安裝的方式。
pkg1: sklearn
這裏需要說明: 如果虛擬環境是建立在python3.5上的,則有些pkgs無法安裝最新版本。例如 sklearn
,在python3.5下,直接在anaconda prompt中用 conda 進行安裝
conda install scikit-learn
會顯示只能安裝 0.19版本,而老師的課件需要sklearn版本 >= 0.20。
開始時,我嘗試 指定安裝版本 進行安裝
conda install scikit-learn=0.22
顯示報錯
報錯顯示我的python版本3.5過低。我是直接刪了環境直接重新裝了,因爲當時還沒有安裝什麼包,而且查閱資料後發現更新python版本有點麻煩-_-#。
而在python3.6下,直接 conda 安裝還是隻能0.19版本。查閱資料後,我發現是因爲調用的第一個鏡像網站在此時只能安裝0.19版本,想安裝更多版本需要
- 查找哪些鏡像網站有更新的版本
- 指定從該鏡像網站上下載
查找鏡像網站的命令是
conda search pkg_name
會顯示這個pkg的所有版本及對應的 channel。例如
可以看到,0.19以上的版本在另一個鏡像網站上,於是指定安裝命令
conda install --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ scikit-learn
注意 channel 名稱要寫全!(網址最後的 “/” 可加可不加,有的教程中說不能加,但我加了好像也沒事)
pkg2: jupyter
conda install jupyter
安裝完這個包之後在開始菜單欄裏會生成虛擬環境下的jupyter
傳送門:
這裏需要注意,在虛擬環境下(即不是base),第二篇傳送中提到的terminal is unavailable!!
pkg3: tensorflow
參考:關於TensorFlow舊版本不能直接 import keras 的問題解決
還需要注意tensorflow與keras版本的匹配問題,參考:
低版本的tensorflow調用keras參考:
pkg4: numpy
參考:關於安裝ANACONDA遇到的無法定位動態鏈接庫問題
這裏需要注意,鏈接動態庫的問題也可能是各個版本之間版本不匹配,可以嘗試用 conda update --all
解決!
pkg5: keras
安裝keras比較複雜,需要三步
- 安裝mingw libpython(兩個包)
- 安裝theano
- 安裝keras
pip
一般來說,conda和pip不應該混用。例如,我在之前安裝 sklearn 版本過低時,也嘗試了用pip安裝
pip install scikit-learn
結果安裝的確實是 0.22版本,而且安裝路徑爲 C:\Users\yyq\Anaconda3\envs\tf\Lib\site-packages
。但之後再使用 conda install 進行安裝時就會報錯。當刪除掉這個安裝時
pip uninstall scikit-learn
再進行conda install纔不再報錯。
pkg1: tensorflow2.0
參考:
- 創建anaconda虛擬環境並安裝TensorFlow2.0+keras
- win10 Tensorflow(CPU版) ERROR: Exception: Traceback (most recent call last)
- tensorflow安裝,出現PermissionError: [WinError 5] 拒絕訪問的問題
在第一篇推送中,會出現報錯,在第二篇中可以得到解決,正常安裝。但是第二篇的方法導致了新的報錯。之後又結合了第三篇推送(增加 --user
參數)。最終解決辦法:
pip install --user tensorflow -i https://pypi.douban.com/simple
tf2.0相關後續參考:
- tensorflow2.0 基礎二 創建tensor數據操作
- TensorFlow Keras使用介紹
- tensorflow.keras
- keras學習- No module named ’ tensorflow.keras ’ 報錯,看清 tf.keras與keras
- 【TensorFlow2.0】以後我們再也離不開Keras了?
另注, conda 與 pip 的區別
4. 常見問題小計
4.1 網絡連接問題
解決方法:
- 添加鏡像網站(清華、中科大)
- 關閉fq
4.2 動態庫鏈接問題 or “Found conflicts!” or “frozen. Retrying flexible”
都可能是各個庫版本之間不匹配
- 嘗試更新所有包
conda update --all
4.3 UnsatisfiableError問題
一般是python版本與庫不兼容。可以考慮
- 升級python版本
- 重新搭建適當python版本的虛擬環境
- conda update conda(沒嘗試過)
後記
看到終於沒有報錯的時候,我枯遼!(然而只是各種import成功而已,入門級渣渣)