上次寫了TensorFlow和PyTorch的快速入門資料,受到很多好評,讀者強烈建議我再出一個keras的快速入門路線,經過翻譯和搜索網上資源,我推薦4份入門資料,希望對大家有所幫助。
備註:另外兩個入門資料
TensorFlow的快速入門資料
PyTorch的快速入門資料
很負責任地說:看完這些資料,Keras基本入門了,接下來碰到問題能自己查資料解決了!(本文作者:黃海廣)
推薦資料
1.《python深度學習》及中文注釋的代碼
TensorFlow團隊的Josh Gordon推薦這本書,TF2.0基於Keras。如果你是一個深度學習新手,最好從這本書入手。當然這本書裡的代碼需要改一下,但非常簡單:
import keras -> from tensorflow import keras
《python深度學習》由Keras之父、現任Google人工智慧研究員的弗朗索瓦•肖萊(François Chollet)執筆,詳盡介紹了用Python和Keras進行深度學習的探索實踐,包括計算機視覺、自然語言處理、產生式模型等應用。書中包含30多個代碼示例,步驟講解詳細透徹。
作者在github公布了代碼,代碼幾乎囊括了本書所有知識點。在學習完本書後,讀者將具備搭建自己的深度學習環境、建立圖像識別模型、生成圖像和文字等能力。但是有一個小小的遺憾:代碼的解釋和注釋是全英文的,即使英文水平較好的朋友看起來也很吃力。
本站認為,這本書和代碼是初學者入門深度學習及Keras最好的工具。
黃海廣對全部代碼做了中文解釋和注釋,並下載了代碼所需要的一些數據集(尤其是「貓狗大戰」數據集),並對其中一些圖像進行了本地化,代碼全部測試通過。(請按照文件順序運行,代碼前後有部分關聯)。
以下代碼包含了全書80%左右的知識點,代碼目錄:
2.1: A first look at a neural network( 初識神經網絡)
3.5: Classifying movie reviews(電影評論分類:二分類問題)
3.6: Classifying newswires(新聞分類:多分類問題 )
3.7: Predicting house prices(預測房價:回歸問題)
4.4: Underfitting and overfitting( 過擬合與欠擬合)
5.1: Introduction to convnets(卷積神經網絡簡介)
5.2: Using convnets with small datasets(在小型數據集上從頭開始訓練一個卷積
5.3: Using a pre-trained convnet(使用預訓練的卷積神經網絡)
5.4: Visualizing what convnets learn(卷積神經網絡的可視化)
6.1: One-hot encoding of words or characters(單詞和字符的 one-hot 編碼)
6.1: Using word embeddings(使用詞嵌入)
6.2: Understanding RNNs(理解循環神經網絡)
6.3: Advanced usage of RNNs(循環神經網絡的高級用法)
6.4: Sequence processing with convnets(用卷積神經網絡處理序列)
8.1: Text generation with LSTM(使用 LSTM 生成文本)
8.2: Deep dream(DeepDream)
8.3: Neural style transfer( 神經風格遷移)
8.4: Generating images with VAEs(用變分自編碼器生成圖像)
8.5: Introduction to GANs(生成式對抗網絡簡介)
中文注釋與解釋如圖:
圖:代碼的中文注釋與解釋
作者的github:
https://github.com/fchollet/deep-learning-with-python-notebooks
中文注釋代碼:
https://github.com/fengdu78/machine_learning_beginner/tree/master/deep-learning-with-python-notebooks
2.keras的樣例代碼
資源地址:
https://github.com/erhwenkuo/deep-learning-with-keras-notebooks
資源介紹:
這個github的repository主要是ErhWen Kuo在學習Keras的一些記錄及練習。希望在學習過程中發現到一些好的信息與示例也可以對想要學習使用Keras來解決問題的同學帶來幫助。這些notebooks主要是使用Python 3.6與Keras 2.1.1版本跑在一臺配置Nivida 1080Ti的Windows 10的機臺所產生的結果,但有些部份會參雜一些Tensorflow與其它的函式庫的介紹。
配置環境:
python 3.6以上,Keras 2.1.1
資源目錄:
0.圖象數據集/工具介紹
0.0: COCO API解說與簡單示例
0.1:土炮自製撲克牌圖象數據集
0.2:使用Pillow來進行圖像處理
1.Keras API示例
1.0:使用圖像增強來進行深度學習
1.1:如何使用Keras函數式API進行深度學習
1.2:從零開始構建VGG網絡來學習Keras
1.3:使用預訓練的模型來分類照片中的物體
1.4:使用圖像增強來訓練小數據集
1.5:使用預先訓練的卷積網絡模型
1.6:卷積網絡模型學習到什麼的可視化
1.7:構建自動編碼器(Autoencoder)
1.8:序列到序列(Seq-to-Seq)學習介紹
1.9: One-hot編碼工具程序介紹
1.10:循環神經網絡(RNN)介紹
1.11: LSTM的返回序列和返回狀態之間的區別
1.12:用LSTM來學習英文字母表順序
2.圖像分類(Image Classification)
3.目標檢測(Object Recognition)
3.0: YOLO目標檢測算法概念與介紹
3.1: YOLOv2目標檢測示例
3.2:浣熊(Racoon)檢測-YOLOv2模型訓練與調整
3.3:浣熊(Racoon)檢測-YOLOv2模型的使用
3.4:袋鼠(Kangaroo)檢測-YOLOv2模型訓練與調整
3.5:雙手(Hands)檢測-YOLOv2模型訓練與調整
3.6:辛普森卡通圖象角色(Simpson)檢測-YOLOv2模型訓練與調整
3.7: MS COCO圖象檢測-YOLOv2模型訓練與調整
4.物體分割(Object Segmentation)
5.關鍵點檢測(Keypoint Detection)
6.圖象標題(Image Caption)
7.人臉檢測識別(Face Detection/Recognition)
7.0:人臉檢測- OpenCV(Haar特徵分類器)
7.1:人臉檢測- MTCNN(Multi-task Cascaded Convolutional Networks)
7.2:人臉識別-臉部檢測、對齊&裁剪
7.3:人臉識別-人臉部特徵提取&人臉分類器
7.4:人臉識別-轉換、對齊、裁剪、特徵提取與比對
7.5:臉部關鍵點檢測(dlib)
7.6:頭部姿態(Head pose)估計(dlib)
8.自然語言處理(Natural Language Processing)
8.0:詞嵌入(word embeddings)介紹
8.1:使用結巴(jieba)進行中文分詞
8.2: Word2vec詞嵌入(word embeddings)的基本概念
8.3:使用結巴(jieba)進行歌詞分析
8.4:使用gensim訓練中文詞向量(word2vec)
3.keras的官方樣例
資源地址:
https://github.com/keras-team/keras/tree/master/examples
資源介紹:
這個github是Keras的官方例子,包含了CV、NLP、生成模型以及一些通用的函數代碼,可以說是教科書式的,拿過來改下輸入輸出就能用,非常方便。
4.keras的預訓練模型
資源地址:
https://github.com/fchollet/deep-learning-models
這個倉庫是keras的作者建立的,包含的預訓練的 Keras 模型:
VGG16
VGG19
ResNet50
Inception v3
CRNN for music tagging
樣例說明:
圖像分類代碼
from resnet50 import ResNet50
from keras.preprocessing import image
from imagenet_utils import preprocess_input, decode_predictions
model = ResNet50(weights='imagenet')
img_path = 'elephant.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
preds = model.predict(x)
print('Predicted:', decode_predictions(preds))
總結
看完這些資料,Keras基本入門了,接下來碰到問題能自己查資料解決了!
關於本站
「機器學習初學者」公眾號由是黃海廣博士創建,黃博個人知乎粉絲22000+,github排名全球前110名(32000+)。本公眾號致力於人工智慧方向的科普性文章,為初學者提供學習路線和基礎資料。原創作品有:吳恩達機器學習個人筆記、吳恩達深度學習筆記等。
往期精彩回顧
備註:加入本站微信群或者qq群,請回復「加群」加入知識星球(4300+用戶,ID:92416895),請回復「知識星球」