利用Anaconda安裝TensorFlow全過(guò)程
相關(guān)概念
1、人工智能:作為計(jì)算機(jī)的一個(gè)分支,目的在于利用機(jī)器模仿人類智能去完成一定的任務(wù),從上世紀(jì)五十年代開(kāi)始發(fā)展,經(jīng)過(guò)多次起落,直到最近又一次掀起了人工智能的熱潮。
2、機(jī)器學(xué)習(xí):作為實(shí)現(xiàn)人工智能的一種方法,在上世紀(jì)八十年代出現(xiàn)。研究計(jì)算機(jī)怎樣模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,以獲取新的知識(shí)或技能,進(jìn)而重新組織已有的知識(shí)結(jié)構(gòu)使之不斷改善自身的性能。與人類的學(xué)習(xí)過(guò)程類似,通過(guò)對(duì)機(jī)器模型輸入大量的相關(guān)數(shù)據(jù)進(jìn)行訓(xùn)練,使得機(jī)器可以自己對(duì)新的輸入做出正確反應(yīng)。
3、深度學(xué)習(xí):是機(jī)器學(xué)習(xí)的一種方法,通過(guò)建立具有階層結(jié)構(gòu)的人工神經(jīng)網(wǎng)絡(luò),在計(jì)算系統(tǒng)中實(shí)現(xiàn)人工智能。從2010年以后開(kāi)始變得火熱。
4、機(jī)器學(xué)習(xí)的分類:
- 有監(jiān)督的學(xué)習(xí):事先需要準(zhǔn)備好輸入和正確的輸入相配套的訓(xùn)練數(shù)據(jù),讓機(jī)器進(jìn)行學(xué)習(xí)。例如,回歸問(wèn)題是預(yù)測(cè)連續(xù)的輸入數(shù)據(jù)對(duì)應(yīng)的輸出值。分類問(wèn)題的輸出結(jié)果為離散的種類。
- 無(wú)監(jiān)督的學(xué)習(xí):輸入數(shù)據(jù)只有特征沒(méi)有標(biāo)記,讓機(jī)器自己抽取數(shù)據(jù)包含的模式與規(guī)則。對(duì)于給定的無(wú)標(biāo)簽數(shù)據(jù)集,無(wú)監(jiān)督的聚類算法可以根據(jù)數(shù)據(jù)內(nèi)部的聯(lián)系自動(dòng)將數(shù)據(jù)分成不同的聚類。例如聚類算法可以通過(guò)大量的
- 用戶數(shù)據(jù)將用戶自動(dòng)化分為不同的細(xì)分市場(chǎng),在這之前我們并不知道要?jiǎng)澐殖赡男╊悇e。
- 半監(jiān)督的學(xué)習(xí):輸入數(shù)據(jù)大部分沒(méi)有標(biāo)記,通過(guò)對(duì)小部分有標(biāo)記的數(shù)據(jù)規(guī)律總結(jié),推廣應(yīng)用到其他數(shù)據(jù)
- 強(qiáng)化學(xué)習(xí):無(wú)需初始數(shù)據(jù),而是由機(jī)器根據(jù)激勵(lì)函數(shù)通過(guò)接收環(huán)境對(duì)動(dòng)作的獎(jiǎng)勵(lì)(反饋)獲得學(xué)習(xí)信息并更新模型參數(shù),錯(cuò)誤懲罰或正確進(jìn)行獎(jiǎng)勵(lì),以取得最大化的預(yù)期利益。
5、人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks)
生物體的神經(jīng)元通過(guò)樹(shù)突感受外界刺激,產(chǎn)生信號(hào)經(jīng)過(guò)軸突的判斷與處理傳遞到下一個(gè)神經(jīng)元,直到最后對(duì)外界刺激做出相應(yīng)的反應(yīng)。受此啟發(fā)產(chǎn)生了神經(jīng)元模型,通過(guò)對(duì)輸入的自變量經(jīng)權(quán)重參數(shù)的處理加權(quán)求和,再通過(guò)激活函數(shù)判斷,產(chǎn)生輸出。
神經(jīng)網(wǎng)絡(luò)由多個(gè)神經(jīng)元組成,在輸入層接受輸入數(shù)據(jù)后經(jīng)過(guò)處理傳遞到下一層神經(jīng)元,經(jīng)過(guò)多個(gè)隱含層神經(jīng)元處理后傳遞到輸出層。
激活函數(shù):神經(jīng)元在處理數(shù)據(jù)后需要判斷是否達(dá)到輸出的閾值,滿足則輸出。常見(jiàn)的激活函數(shù)有S型、修正線性單元激活函數(shù)
配置Anaconda環(huán)境
1、Anaconda的安裝:Anaconda是一個(gè)開(kāi)源的包、環(huán)境管理器,其包含了conda、Python等180多個(gè)科學(xué)包及其依賴項(xiàng),而且還包括Jupyter、Spyder等多個(gè)python開(kāi)發(fā)所需工具。
由于實(shí)際中需要使用不同的python環(huán)境,可以通過(guò)anaconda創(chuàng)建與管理不同的環(huán)境來(lái)運(yùn)行項(xiàng)目。
在anaconda官網(wǎng)下載Windows版本的安裝包,根據(jù)提示點(diǎn)擊下一步完成安裝。
2、添加清華的anaconda鏡像源,通過(guò)國(guó)內(nèi)鏡像源下載更快
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
通過(guò)如下命令查看conda已經(jīng)添加的鏡像源
conda config --get channels
3、創(chuàng)建與啟動(dòng)名為tensorflow的python環(huán)境。
anaconda默認(rèn)一個(gè)名為base的python環(huán)境。
conda create -n tensorflow python=3.7 conda activate tensorflow
4、安裝TensorFlow
查看tensorflow包信息
anaconda show anaconda/tensorflow
根據(jù)包信息最后的提示進(jìn)行安裝:
conda install –channel https://conda.anaconda.org/anaconda tensorflow
5、測(cè)試
打開(kāi)Jupyter Notebook,在右上角new新建一個(gè)python3文件,輸入如下代碼,按下Ctrl+Enter,運(yùn)行顯示TensorFLow版本
import tensorflow as tf tf.__version__
6、修改pip源
python的包管理工具是pip,通過(guò)pip可以對(duì)包依賴進(jìn)行管理與下載,可以修改pip源地址使得下載速度更快,例如使用清華的鏡像下載sklearn包:
pip install sklearn -i https://pypi.tuna.tsinghua.edu.cn/simple
也可以修改pip設(shè)置一勞永逸地設(shè)置鏡像源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
安裝Tensor FLow的GPU版本
1、安裝tensorflow-gpu
使用TensorFlow時(shí),通過(guò)GPU進(jìn)行運(yùn)算與CPU相比在速度上具有明顯的提升,因此可以安裝另一個(gè)GPU版本的TensorFLow用于比較復(fù)雜的機(jī)器學(xué)習(xí)訓(xùn)練。
首先通過(guò)Anaconda創(chuàng)建并激活一個(gè)新的環(huán)境,之后命令行切換到新的環(huán)境下(tensorflow-gpu) C:\Users\Super>:
conda create -n tensorflow-gpu python=3.7 conda activate tensorflow-gpu
通過(guò)conda info --env可以看到已經(jīng)創(chuàng)建的環(huán)境,其中帶*的為當(dāng)前使用的環(huán)境:
通過(guò)pip包管理工具安裝tensorflow-gpu版本:
pip install --ignore-installed --upgrade tensorflow-gpu
2、安裝CUDA驅(qū)動(dòng)
此時(shí)以及安裝完成tensorflow-gpu版本,但是這時(shí)import tensorflow會(huì)報(bào)錯(cuò),提示需要安裝CUDA驅(qū)動(dòng)。CUDA是英偉達(dá)顯卡公司推出的通用并行計(jì)算架構(gòu),該架構(gòu)使GPU能夠解決復(fù)雜的計(jì)算問(wèn)題。不同的Tensor Flow版本需要不同的CUDA版本,其要求可以在Tensor FLow的官網(wǎng)介紹查到:https://www.tensorflow.org/install/gpu#software_requirements
我的tensorflow是1.14版本,選擇CUDA10.0,在CUDA官網(wǎng):https://developer.nvidia.com/cuda-toolkit-archive選擇對(duì)應(yīng)的版本下載安裝包并按照指示一步一步操作完成安裝。
接著需要安裝cuDNN,NVIDIA cuDNN是用于深度神經(jīng)網(wǎng)絡(luò)的GPU加速庫(kù),它強(qiáng)調(diào)性能、易用性和低內(nèi)存開(kāi)銷,cuDNN可以集成到更高級(jí)別的機(jī)器學(xué)習(xí)框架中。
在官網(wǎng)https://developer.nvidia.com/rdp/cudnn-archive選擇CUDA對(duì)應(yīng)的版本(如左下圖),下載到本地后解壓,產(chǎn)生如下右圖文件夾
將每個(gè)文件夾下的內(nèi)容復(fù)制到CUDA對(duì)應(yīng)的安裝目錄下。
例如將其中bin下的文件對(duì)應(yīng)復(fù)制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin目錄下。
安裝完成后重啟電腦。
通過(guò)如下命令查看設(shè)備情況:
from tensorflow.python.client import device_lib device_lib.list_local_devices()
輸出內(nèi)容如下:
name: "/device:CPU:0" device_type: "CPU" memory_limit: 268435456 locality { } incarnation: 17000744802228690105, name: "/device:GPU:0" device_type: "GPU" memory_limit: 3146829004 locality { bus_id: 1 links { } } incarnation: 13189553194108047445 physical_device_desc: "device: 0, name: GeForce GTX 1050 Ti, pci bus id: 0000:01:00.0, compute capability: 6.1"]
3、配置jupyter notebook
現(xiàn)在我們有兩個(gè)anaconda環(huán)境,一個(gè)是系統(tǒng)自帶的base,另一個(gè)是我們創(chuàng)建的tensorflow-gpu,base中自帶安裝了jupyter notebook而新環(huán)境中沒(méi)有。
如果我們希望通過(guò)jupyter notebook使用新環(huán)境有兩種方法--在新環(huán)境中再安裝一個(gè)notebook或者在base環(huán)境中調(diào)用新環(huán)境。
這里選擇第二種,為此我們需要為新環(huán)境tensorflow-gpu安裝ipykernel:
conda activate tensorflow-gpu # 啟動(dòng)對(duì)應(yīng)的tensorflow-gpu環(huán)境 conda install ipykernel # 在環(huán)境中安裝ipykernel
在base環(huán)境中的jupyter notebook中注入tensorflow-gpu的內(nèi)核:
conda activate base # 切換回base環(huán)境python -m ipykernel install --user --name tensorflow-gpu --display-name "TF-GPU"
查看jupyter中的kernel
jupyter kernelspec list
刪除指定kernel:
jupyter kernelspec remove kernelname
修改jupyter notebook默認(rèn)工作目錄
首先輸入如下命令,生成設(shè)置文件 C:\Users\Super\.jupyter\jupyter_notebook_config.py:
jupyter notebook --generate-config
找到該配置文件,將如下語(yǔ)句修改為默認(rèn)工作目錄位置:
c.NotebookApp.notebook_dir = 'D:\\Python\\jupyter'
最后修改桌面快捷方式的啟動(dòng)位置,右鍵jupyter notebook快捷方式,選擇屬性彈出如下界面,將目標(biāo)最后的%USERFILE%刪去,保存后點(diǎn)擊快捷方式啟動(dòng),工作目錄就是設(shè)置的D:\\Python\\jupyter
啟動(dòng)jupyter notebook并打開(kāi)項(xiàng)目,可見(jiàn)其中的kernel可以進(jìn)行切換
通過(guò)GPU版本的Tensor FLow運(yùn)行卷積神經(jīng)網(wǎng)絡(luò),速度明顯加快,而且可以看到GPU參與運(yùn)算,并且cpu的負(fù)載減少
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python編程itertools模塊處理可迭代集合相關(guān)函數(shù)
本篇博客將為你介紹Python函數(shù)式編程itertools模塊中處理可迭代集合的相關(guān)函數(shù),有需要的朋友可以借鑒參考下,希望可以有所幫助2021-09-09pycharm中dgl安裝報(bào)錯(cuò)FileNotFoundError:Could not find&nb
這篇文章主要介紹了pycharm中dgl安裝報(bào)錯(cuò)FileNotFoundError:Could not find module ‘E:\XXXX\XXXX\lib\site-packages\dgl\dgl.dl問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02給Python中的MySQLdb模塊添加超時(shí)功能的教程
這篇文章主要介紹了給Python中的MySQLdb模塊添加超時(shí)功能的教程,timeout功能在服務(wù)器的運(yùn)維當(dāng)中非常有用,需要的朋友可以參考下2015-05-05使用gunicorn部署django項(xiàng)目的問(wèn)題
這篇文章主要介紹了使用gunicorn部署django項(xiàng)目,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12在Pycharm的Project Files下建立多個(gè)項(xiàng)目的操作
這篇文章主要介紹了在Pycharm的Project Files下建立多個(gè)項(xiàng)目的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05