GitHub萬星:適用於初學者的TensorFlow代碼資源集

 2017-09-04

選自GitHub

參與:路雪

這套資源可以通過示例讓你輕鬆學習 TensorFlow。至於可讀性,它可以作為包括筆記本和註釋的源代碼教程,適合想尋找清晰準確的 TensorFlow 示例的初學者。除了傳統的「原始」TensorFlow 實現之外,你還可以找到最新的 TensorFlow API 實踐(如層、估計器、數據集等)。

鏈接:https://github.com/aymericdamien/TensorFlow-Examples

最近一次更新(2017.08.27):本教程推薦使用 TensorFlow v1.3。本次更新增加了很多新的示例(k 均值、隨機森林、多 gpu 訓練、層 api、估計器 api、數據集 api 等)。

如果你使用舊的 TensorFlow 版本(0.11 及以下),請點擊此處查看相關示例:https://github.com/aymericdamien/TensorFlow-Examples/tree/0.11。

教程目錄

0. 前提

機器學習簡介:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/0_Prerequisite/ml_introduction.ipynb

MNIST 數據集簡介:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/0_Prerequisite/mnist_dataset_intro.ipynb

1. 簡介

Hello World

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/1_Introduction/helloworld.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/1_Introduction/helloworld.py

以上內容是非常簡單的示例,教你使用 TensorFlow 輸出「hello world」。

基礎操作

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/1_Introduction/basic_operations.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/1_Introduction/basic_operations.py

一個簡單的示例覆蓋 TensorFlow 基礎操作。

2. 基礎模型

線性回歸

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/2_BasicModels/linear_regression.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/2_BasicModels/linear_regression.py

使用 TensorFlow 實現線性回歸模型。

Logistic 回歸

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/2_BasicModels/logistic_regression.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/2_BasicModels/logistic_regression.py

使用 TensorFlow 實現 Logistic 回歸模型。

最近鄰

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/2_BasicModels/nearest_neighbor.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/2_BasicModels/nearest_neighbor.py

使用 TensorFlow 實現最近鄰算法。

K 均值

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/2_BasicModels/kmeans.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/2_BasicModels/kmeans.py

使用 TensorFlow 構建 K 均值分類器。

隨機森林

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/2_BasicModels/random_forest.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/2_BasicModels/random_forest.py

使用 TensorFlow 構建隨機森林分類器。

3. 神經網絡

監督

簡單的神經網絡

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/neural_network_raw.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/neural_network_raw.py

構建一個簡單的神經網絡(又叫作多層感知器)對 MNIST 數據集進行分類。屬於原始的 TensorFlow 實現。

簡單的神經網絡 tf.layers/estimator api

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/neural_network.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/neural_network.py

使用 TensorFlow「層」和「估計器」API,構建簡單的神經網絡(又叫作多層感知器)來對 MNIST 數據集進行分類。

卷積神經網絡

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/convolutional_network_raw.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/convolutional_network_raw.py

構建卷積神經網絡對 MNIST 數據集進行分類。屬於原始的 TensorFlow 實現。

卷積神經網絡 tf.layers/estimator api

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/convolutional_network.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/convolutional_network.py

使用 TensorFlow「層」和「估計器」API,構建卷積神經網絡,來對 MNIST 數據集進行分類。

循環神經網絡(LSTM)

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/recurrent_network.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/recurrent_network.py

構建循環神經網絡(LSTM)對 MNIST 數據集進行分類。

雙向循環神經網絡(LSTM)

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/bidirectional_rnn.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/bidirectional_rnn.py

構建一個雙向循環神經網絡(LSTM)對 MNIST 數據集進行分類。

動態循環神經網絡(LSTM)

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/dynamic_rnn.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/dynamic_rnn.py

構建一個動態循環神經網絡(LSTM)來執行動態計算,來對不同長度的序列進行分類。

非監督

自編碼器

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/autoencoder.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/autoencoder.py

構建一個自編碼器對圖像進行編碼,使之降維,然後重建該圖像。

變分自編碼器

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/Variational_autoencoder.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/Variational_autoencoder.py

構建一個變分自編碼器(VAE)對圖像進行編碼,利用噪聲生成圖像。

生成對抗網絡(GAN)

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/gan.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/gan.py

構建一個生成對抗網絡,利用噪聲生成圖像。

深度卷積生成對抗網絡(DCGAN)

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/dcgan.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/dcgan.py

構建一個深度卷積生成對抗網絡,利用噪聲生成圖像。

4. 工具

保存和存儲模型

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/4_Utils/save_restore_model.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/4_Utils/save_restore_model.py

使用 TensorFlow 保存和存儲模型。

Tensorboard——圖和損失可視化

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/4_Utils/tensorboard_basic.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/4_Utils/tensorboard_basic.py

使用 Tensorboard 使計算圖和損失可視化。

Tensorboard——高級可視化

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/4_Utils/tensorboard_advanced.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/4_Utils/tensorboard_advanced.py

深入了解 Tensorboard;使變量、梯度等可視化。

5. 數據管理

構建圖像數據集

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/5_DataManagement/build_an_image_dataset.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/5_DataManagement/build_an_image_dataset.py

使用 TensorFlow 數據隊列從圖像文件夾或數據集文件構建自己的圖像數據集。

TensorFlow 數據集 API

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/5_DataManagement/tensorflow_dataset_api.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/5_DataManagement/tensorflow_dataset_api.py

引入 TensorFlow 數據集 API,優化輸入數據管道。

6. 多 GPU

在多 GPU 上進行的基礎操作

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/6_MultiGPU/multigpu_basics.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/5_MultiGPU/multigpu_basics.py

一個簡單的在 TensorFlow 中引入多 GPU 的示例。

在多 GPU 上訓練神經網絡

筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/6_MultiGPU/multigpu_cnn.ipynb

代碼:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/5_MultiGPU/multigpu_cnn.py

一個清晰簡單的 TensorFlow 實現,在多個 GPU 上訓練卷積神經網絡。

數據集

一些示例要求使用 MNIST 數據集進行訓練和測試。不要擔心,示例運行時,該數據集可以自動下載。 MNIST 是一個手寫數字數據庫,想了解該數據集的簡介,請查看筆記本:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/0_Prerequisite/mnist_dataset_intro.ipynb

官方網址:http://yann.lecun.com/exdb/mnist/

安裝

下載所有示例,只需複制該 repository:

git clone https://github.com/aymericdamien/TensorFlow-Examples

要想運行示例,你還需要 TensorFlow 的最新版本。使用下列方式安裝:

pip install tensorflow

或下列方式(如果你想獲取 GPU 支持):

pip install tensorflow_gpu

關於 TensorFlow 安裝的更多細節,請查看 TensorFlow 安裝指南:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md

更多示例

下列示例來自 TFLearn,一個提供 TensorFlow 簡化接口的庫,其中有很多內容可供參考,包括很多示例:https://github.com/tflearn/tflearn/tree/master/examples

和預置操作和層:http://tflearn.org/doc_index/#api

教程

TFLearn 快速入門:https://github.com/tflearn/tflearn/blob/master/tutorials/intro/quickstart.md

通過具體的機器學習任務學習 TFLearn 基礎。構建和訓練一個深度神經網絡分類器。

示例

TFLearn 示例:https://github.com/tflearn/tflearn/blob/master/examples

使用 TFLearn 的示例的大型集合。

文章來源:機器之心