前天我在公眾號推薦了《Python Deep Learning》這本書。該書是由 Keras 作者寫的,所以全書基本圍繞著 Keras 講深度學習的各種實現,從 CNN,RNN 到 GAN 等,偏入門,但理論和實戰部分都講的還不錯,承載著很多作者對深度學習整體性的思考。目前該書的中英文版包括原始碼見下面的連結:
連結:
https://pan.baidu.com/s/1kTTGpzQo-p5ZfeSI6HlbEA
提取碼:mnz9
我花了幾天時間快速過了這本書,當然少不了跑跑書上的程式碼。程式碼的完整性很高,難易程度作者都分層次介紹得比較清楚。總之,Keras 非常適合大家快速上手深度學習專案。
好了,今天從基礎開始,教大家在 win10 系統中,使用 Anaconda + TensorFlow + Keras,快速搭建一個 Keras 的開發環境(CPU 版本),非常容易。
1. 安裝 Anaconda
開啟 Anaconda 的官方下載地址:
https://www.anaconda.com/download/
就能看到最新的下載版本:
選擇 Python 3.7 version 下載。下載完成後直接執行 Anaconda 的安裝檔案,按照提示一步一步安裝就可以了。
安裝完成後,會在 win10 的開始選單發現 Anaconda 這些元件:
因為我是較早安裝的,所以是 Anaconda3,不必在意。可直接安裝最新版本。另外,其中的 Jupyter Notebook(tensorflow) 是我後面安裝得到的。你們暫時看不到正常。
2. 建立 tensorflow 的虛擬環境
Python 為不同的專案需求建立不同的虛擬環境非常常見。因為在實際專案開發中,我們通常會根據自己的需求去下載各種相應的框架庫,但是可能每個專案使用的框架庫並不一樣,或使用框架的版本不一樣,這樣需要我們根據需求不斷的更新或解除安裝相應的庫,管理起來相當麻煩。所以通過建立虛擬環境,相當於為不同的專案建立一塊獨立的空間,在這個空間裡,你安裝任何庫和框架都是獨立的,不會影響到外部環境。
為了建立我們 keras 的開發環境,首先開啟 Anaconda 元件 Anaconda Prompt,這是一個類似 cmd 的介面,便於我們對 Python 庫的安裝和管理。介面如下:
然後,建立虛擬環境並安裝 Python。在 Anaconda Prompt 介面中輸入:
conda create --name tensorflow python=3.5.2
這裡,虛擬變數的名稱我們取 tensorflow,當然你可以換個名字。Python 版本這裡選擇 3.5。
最後,啟用並進入到虛擬環境 tensorflow 中:
activate tensorflow
進入後,提示符前會顯示 (tensorflow):
3. 安裝 TensorFlow
可能有的同學會問我們不是安裝 Keras 嗎?怎麼安裝起 TensorFlow 了?這裡解釋一下。Keras 是一個模型級(model-level)的庫,為開發深度學習模型提供了高層次的構建模組。 它不處理張量操作、求微分等低層次的運算。相反,它依賴於一個專門的、高度優化的張量庫來完成這些運算,這個張量庫就是 Keras 的後端引擎(backend engine),例如 TensorFlow、Theano、CNTK等都可以無縫嵌入到 Keras 中。如下圖所示:
所以先要安裝 Keras 的後端引擎 TensorFlow,首先需要升級一下你的 pip。同樣是在 Anaconda Prompt 中輸入以下命令:
python -m pip install -U pip
然後直接使用 pip 安裝即可:
pip install tensorflow
如果沒有報錯,表示安裝沒有問題。進一步驗證安裝是否成功,輸入 Python,在 Python 命令列中輸入:import tensorflow as tf。若沒有任何提示,則表明 TensorFlow 安裝成功,如下圖所示:
4. 安裝 Keras
同樣,開啟 Anaconda Prompt,進入 tensorflow 虛擬環境,使用 pip 安裝 Keras:
pip install keras
如果沒有報錯,表示安裝沒有問題。
5. 安裝 MinGW
最後你還可以安裝 MinGW,同樣是在虛擬環境 tensorflow 中,輸入以下命令:
conda install mingw libpython
進一步驗證整個 Keras 安裝是否成功,輸入 Python,在 Python 命令列中輸入:import keras。若出現下面提示,則表明 Keras安裝成功:
6. 啟動 Keras
整個 Keras 安裝成功了。那麼實際應用中我們如何啟動 Keras 呢?因為我習慣了使用 Anaconda 自帶的 Jupyter Nootbook,那麼接下來我就教大家使用 Jupyter Notebook 呼叫 Keras 例項。
因為現在 Anaconda 自帶的 Jupyter Notebook 還是整個外部 Python 環境下的,我們之前建立的虛擬環境 tensorflow 並沒有 Jupyter Notebook。怎們辦?安裝一個就好了。
同樣在 Anaconda Prompt 中,啟用 tensorflow 環境,使用 conda 命令安裝,如下所示:
conda install jupyter
非常簡單,安裝成功之後,就可以在 Anaconda 的工具項裡看到 Jupyter Notebook(tensorflow) 了。
這樣,點選 Jupyter Notebook(tensorflow),就可以直接開啟 Jupyter Notebook,可以直接在 cell 中匯入 Keras 了。
這樣就不用每次使用 activate 啟用 tensorflow 虛擬環境了。
好了,現在 Keras CPU 版本已經安裝成功,可以開始你的深度學習 Keras 實戰之旅了。
7. Keras 例項
下面,使用 Keras 執行這本書上的一個簡單例子,用來對 IMDB 的正負電影評論進行分類。
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 1s
return 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)
最後結果,測試集的分類準確率達到了 88.3%。
8. 結語
本文介紹的 Keras 的 CPU 版本的安裝,本書的作者推薦大家儘可能使用 GPU 版本,提高運算速度。我跑完本書的程式碼發現,CPU 版本下某些模型的訓練時間還是比較長的。例如使用 VGG 預訓練模型,對 Kaggle 貓狗分類問題進行訓練,並微調 VGG 頂層引數,整個訓練時間達到了 5 個小時左右。
如果安裝 GPU 版本,需要額外安裝 CUDA Toolkit + cuDNN。需要特別注意的是 CUDA+cuDNN 的版本。因為每個人的 GPU 顯示卡型號和安裝版本不盡相同,所以本文不再贅述,需要的話,我們下次再專門介紹以下 GPU 版本的安裝。
沒有 GPU,本書的程式碼基本也能跑得通,就是大型模型的訓練速度比較慢。
如果有小夥伴對 GPU 版本的 Keras 安裝有好的方法,歡迎留言!
參考文獻:
https://www.cnblogs.com/zeroingToOne/p/8407059.html