Python 深度学习,你的 Keras 准备好了吗?
點(diǎn)擊上方“AI有道”,選擇“置頂”公眾號(hào)
重磅干貨,第一時(shí)間送達(dá)
前天我在公眾號(hào)推薦了《Python Deep Learning》這本書(shū)。該書(shū)是由?Keras 作者寫(xiě)的,所以全書(shū)基本圍繞著 Keras 講深度學(xué)習(xí)的各種實(shí)現(xiàn),從 CNN,RNN 到 GAN 等,偏入門(mén),但理論和實(shí)戰(zhàn)部分都講的還不錯(cuò),承載著很多作者對(duì)深度學(xué)習(xí)整體性的思考。目前該書(shū)的中英文版包括源碼見(jiàn)下面的鏈接:
鏈接:
https://pan.baidu.com/s/1kTTGpzQo-p5ZfeSI6HlbEA?
提取碼:mnz9?
我花了幾天時(shí)間快速過(guò)了這本書(shū),當(dāng)然少不了跑跑書(shū)上的代碼。代碼的完整性很高,難易程度作者都分層次介紹得比較清楚。總之,Keras 非常適合大家快速上手深度學(xué)習(xí)項(xiàng)目。
好了,今天從基礎(chǔ)開(kāi)始,教大家在 win10 系統(tǒng)中,使用 Anaconda + TensorFlow + Keras,快速搭建一個(gè) Keras 的開(kāi)發(fā)環(huán)境(CPU 版本),非常容易。
1. 安裝 Anaconda
打開(kāi) Anaconda 的官方下載地址:
https://www.anaconda.com/download/
就能看到最新的下載版本:
選擇 Python 3.7 version 下載。下載完成后直接運(yùn)行 Anaconda 的安裝文件,按照提示一步一步安裝就可以了。
安裝完成后,會(huì)在 win10 的開(kāi)始菜單發(fā)現(xiàn) Anaconda 這些組件:
因?yàn)槲沂禽^早安裝的,所以是 Anaconda3,不必在意。可直接安裝最新版本。另外,其中的 Jupyter Notebook(tensorflow) 是我后面安裝得到的。你們暫時(shí)看不到正常。
2. 創(chuàng)建 tensorflow 的虛擬環(huán)境
Python 為不同的項(xiàng)目需求創(chuàng)建不同的虛擬環(huán)境非常常見(jiàn)。因?yàn)樵趯?shí)際項(xiàng)目開(kāi)發(fā)中,我們通常會(huì)根據(jù)自己的需求去下載各種相應(yīng)的框架庫(kù),但是可能每個(gè)項(xiàng)目使用的框架庫(kù)并不一樣,或使用框架的版本不一樣,這樣需要我們根據(jù)需求不斷的更新或卸載相應(yīng)的庫(kù),管理起來(lái)相當(dāng)麻煩。所以通過(guò)創(chuàng)建虛擬環(huán)境,相當(dāng)于為不同的項(xiàng)目創(chuàng)建一塊獨(dú)立的空間,在這個(gè)空間里,你安裝任何庫(kù)和框架都是獨(dú)立的,不會(huì)影響到外部環(huán)境。
為了創(chuàng)建我們 keras 的開(kāi)發(fā)環(huán)境,首先打開(kāi) Anaconda 組件 Anaconda Prompt,這是一個(gè)類(lèi)似 cmd 的界面,便于我們對(duì) Python 庫(kù)的安裝和管理。界面如下:
然后,創(chuàng)建虛擬環(huán)境并安裝 Python。在?Anaconda Prompt 界面中輸入:
conda create --name tensorflow python=3.5.2這里,虛擬變量的名稱(chēng)我們?nèi)?tensorflow,當(dāng)然你可以換個(gè)名字。Python 版本這里選擇 3.5。
最后,激活并進(jìn)入到虛擬環(huán)境 tensorflow 中:
activate tensorflow進(jìn)入后,提示符前會(huì)顯示 (tensorflow):
3. 安裝 TensorFlow
可能有的同學(xué)會(huì)問(wèn)我們不是安裝 Keras 嗎?怎么安裝起 TensorFlow 了?這里解釋一下。Keras 是一個(gè)模型級(jí)(model-level)的庫(kù),為開(kāi)發(fā)深度學(xué)習(xí)模型提供了高層次的構(gòu)建模塊。 它不處理張量操作、求微分等低層次的運(yùn)算。相反,它依賴(lài)于一個(gè)專(zhuān)門(mén)的、高度優(yōu)化的張量庫(kù)來(lái)完成這些運(yùn)算,這個(gè)張量庫(kù)就是 Keras 的后端引擎(backend engine),例如 TensorFlow、Theano、CNTK等都可以無(wú)縫嵌入到 Keras 中。如下圖所示:
所以先要安裝 Keras 的后端引擎 TensorFlow,首先需要升級(jí)一下你的 pip。同樣是在?Anaconda Prompt 中輸入以下命令:
python -m pip install -U pip然后直接使用 pip 安裝即可:
pip install tensorflow如果沒(méi)有報(bào)錯(cuò),表示安裝沒(méi)有問(wèn)題。進(jìn)一步驗(yàn)證安裝是否成功,輸入 Python,在 Python 命令行中輸入:import tensorflow as tf。若沒(méi)有任何提示,則表明 TensorFlow 安裝成功,如下圖所示:
4. 安裝 Keras
同樣,打開(kāi)?Anaconda Prompt,進(jìn)入 tensorflow 虛擬環(huán)境,使用 pip 安裝 Keras:
pip install keras如果沒(méi)有報(bào)錯(cuò),表示安裝沒(méi)有問(wèn)題。
5. 安裝?MinGW
最后你還可以安裝?MinGW,同樣是在虛擬環(huán)境 tensorflow 中,輸入以下命令:
conda install mingw libpython進(jìn)一步驗(yàn)證整個(gè) Keras 安裝是否成功,輸入 Python,在 Python 命令行中輸入:import keras。若出現(xiàn)下面提示,則表明 Keras安裝成功:
6. 啟動(dòng) Keras
整個(gè) Keras 安裝成功了。那么實(shí)際應(yīng)用中我們?nèi)绾螁?dòng) Keras 呢?因?yàn)槲伊?xí)慣了使用 Anaconda 自帶的 Jupyter Nootbook,那么接下來(lái)我就教大家使用 Jupyter Notebook 調(diào)用 Keras 實(shí)例。
因?yàn)楝F(xiàn)在 Anaconda 自帶的 Jupyter Notebook 還是整個(gè)外部 Python 環(huán)境下的,我們之前創(chuàng)建的虛擬環(huán)境 tensorflow 并沒(méi)有 Jupyter Notebook。怎們辦?安裝一個(gè)就好了。
同樣在?Anaconda Prompt 中,激活 tensorflow 環(huán)境,使用 conda 命令安裝,如下所示:
conda install jupyter非常簡(jiǎn)單,安裝成功之后,就可以在 Anaconda 的工具項(xiàng)里看到 Jupyter Notebook(tensorflow) 了。
這樣,點(diǎn)擊?Jupyter Notebook(tensorflow),就可以直接打開(kāi) Jupyter Notebook,可以直接在 cell 中導(dǎo)入 Keras 了。
這樣就不用每次使用 activate 激活 tensorflow 虛擬環(huán)境了。
好了,現(xiàn)在 Keras CPU 版本已經(jīng)安裝成功,可以開(kāi)始你的深度學(xué)習(xí) Keras 實(shí)戰(zhàn)之旅了。
7. Keras 實(shí)例
下面,使用 Keras 運(yùn)行這本書(shū)上的一個(gè)簡(jiǎn)單例子,用來(lái)對(duì) IMDB 的正負(fù)電影評(píng)論進(jìn)行分類(lèi)。
import keras from keras import models from keras import layers from keras.datasets import imdb import numpy as np(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)def vectorize_sequences(sequences, dimension=10000):# Create an all-zero matrix of shape (len(sequences), dimension)results = np.zeros((len(sequences), dimension))for i, sequence in enumerate(sequences):results[i, sequence] = 1. ?# set specific indices of results[i] to 1sreturn results# Our vectorized training data x_train = vectorize_sequences(train_data) # Our vectorized test data x_test = vectorize_sequences(test_data) # Our vectorized labels y_train = np.asarray(train_labels).astype('float32') y_test = np.asarray(test_labels).astype('float32')model = models.Sequential() model.add(layers.Dense(16, activation='relu', input_shape=(10000,))) model.add(layers.Dense(16, activation='relu')) model.add(layers.Dense(1, activation='sigmoid'))model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['acc'])model.fit(x_train, y_train, epochs=4, batch_size=512) result = model.evaluate(x_test, y_test) print(result)最后結(jié)果,測(cè)試集的分類(lèi)準(zhǔn)確率達(dá)到了 88.3%。
8. 結(jié)語(yǔ)
本文介紹的 Keras 的 CPU 版本的安裝,本書(shū)的作者推薦大家盡可能使用 GPU 版本,提高運(yùn)算速度。我跑完本書(shū)的代碼發(fā)現(xiàn),CPU 版本下某些模型的訓(xùn)練時(shí)間還是比較長(zhǎng)的。例如使用 VGG 預(yù)訓(xùn)練模型,對(duì) Kaggle 貓狗分類(lèi)問(wèn)題進(jìn)行訓(xùn)練,并微調(diào) VGG 頂層參數(shù),整個(gè)訓(xùn)練時(shí)間達(dá)到了 5 個(gè)小時(shí)左右。
如果安裝 GPU 版本,需要額外安裝?CUDA Toolkit + cuDNN。需要特別注意的是?CUDA+cuDNN 的版本。因?yàn)槊總€(gè)人的 GPU 顯卡型號(hào)和安裝版本不盡相同,所以本文不再贅述,需要的話,我們下次再專(zhuān)門(mén)介紹以下 GPU 版本的安裝。
沒(méi)有 GPU,本書(shū)的代碼基本也能跑得通,就是大型模型的訓(xùn)練速度比較慢。
如果有小伙伴對(duì) GPU 版本的 Keras 安裝有好的方法,歡迎留言!
參考文獻(xiàn):
https://www.cnblogs.com/zeroingToOne/p/8407059.html
【推薦閱讀】
干貨 | 公眾號(hào)歷史文章精選(附資源)
我的深度學(xué)習(xí)入門(mén)路線
我的機(jī)器學(xué)習(xí)入門(mén)路線圖
喜歡請(qǐng)點(diǎn)贊!總結(jié)
以上是生活随笔為你收集整理的Python 深度学习,你的 Keras 准备好了吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 程序员从幼稚到成熟会经历哪些变化?你都知
- 下一篇: 优秀的程序员应该掌握多少门编程语言?