# 九、視頻分類
在本章中,我們將看到如何訓練視頻數據的深度學習模型。 我們將開始按幀對視頻進行分類。 然后,我們將使用時間信息以獲得更好的準確率。 稍后,我們將圖像的應用擴展到視頻,包括姿勢估計,字幕和生成視頻。
在本章中,我們將涵蓋的以下主題:
* 視頻分類的數據集和算法
* 將視頻分成幀并分類
* 在單個框架級別上訓練視覺特征模型
* 了解 3D 卷積及其在視頻中的使用
* 在視頻上合并運動向量
* 將時間信息用于目標跟蹤
* 人體姿勢估計和視頻字幕等應用
# 了解視頻和分類
視頻不過是一系列圖像。 視頻沿時間方向為圖像帶來了新的維度。 圖像的空間特征和視頻的時間特征可以放在一起,比僅圖像提供更好的結果。 額外的維度還導致大量空間,因此增加了訓練和推理的復雜性。 用于處理視頻的計算需求非常高。 視頻還改變了深度學習模型的架構,因為我們必須考慮時間特征。
視頻分類是用類別標記視頻的任務。 類別可以在幀級別,也可以在整個視頻中。 視頻中可能有執行的動作或任務。 因此,視頻分類可以標記視頻中存在的對象或標記視頻中發生的動作。 在下一部分中,我們將看到用于視頻分類任務的可用數據集。
# 探索視頻分類數據集
視頻分類是視頻數據研究的主要問題。 拍攝了幾個視頻,并標記了與數據相關的各種對象或動作。 數據集根據大小,質量和標簽類型而有所不同。 有些甚至包括多個視頻標簽。 這些視頻通常很短。 長視頻可能會執行各種操作,因此可以在分別對剪切的視頻片段或摘要進行分類之前在時間上進行分割。 接下來,我們將考慮一些特定數據集的細節。
# UCF101
**佛羅里達中部大學**(**UCF101**)是用于動作識別的數據集。 這些視頻是在 YouTube 上收集的,由逼真的動作組成。 此數據集中有 101 個操作類別。 還有另一個名為 **UCF50** 的數據集,它具有 50 個類別。 整個動作中該數據集中有 13,320 個視頻。 這些視頻具有背景,比例,姿勢,遮擋和照明條件的多種變化。 動作類別分為 25 個,它們具有相似的變化,例如背景,姿勢,比例,視點,照明等。
動作和每個動作的視頻數顯示如下:

[來源](http://crcv.ucf.edu/data/UCF101/Number%20of%20Videos%202.jpg)
所有 101 個動作都分為五種類型的動作,如下所示:人與對象的交互,身體動作,人與人的交互,演奏樂器和運動。 數據集和標注可從[這里](http://crcv.ucf.edu/data/UCF101.php)下載。
接下來,我們將了解 YouTube-8M 數據集。
# YouTube-8M
**YouTube-8M** 數據集用于視頻分類問題。 數據集包含帶有標簽和視覺特征的視頻 URL。 以下是有關數據集的一些統計信息:
* **視頻 URL 的數量**:700 萬
* **影片剪輯的時長**:450,000
* **類標簽的數量**:4,716
* **每個視頻的平均標簽數**:3.4
以下是各種類型的數據集摘要:

[來源](https://research.google.com/youtube8m/vertical-videos.png)
前面的圖像可以讓您一眼看出數據集中可用的標簽類型。 視頻數據很大,因此視覺特征被計算并隨數據集一起提供。 [可以通過以下鏈接訪問數據集](https://research.google.com/youtube8m/)。
# 其他數據集
還有更多的數據集可用于視頻分類問題。 以下是更多數據集的詳細信息:
* **Sports-1M**:擁有 1,133,158 個具有 487 個類別的視頻。 標注是自動完成的。 [數據集可以從以下位置下載](http://cs.stanford.edu/people/karpathy/deepvideo/)。
* **UCF-11**(**佛羅里達大學-11**):擁有 1,600 部視頻,包含 11 動作。 視頻的速度為 29.97 fps(每秒幀數)。 數據集可以與`UCF101`一起下載。
* **HMDB-51**(**人體運動數據庫-51**):包含 5,100 個具有 51 個動作的視頻。 [數據集在這里](http://serre-lab.clps.brown.edu/resource/hmdb-a-large-human-motion-database)。
* **Hollywood2**:擁有 12 個動作的 1,707 個視頻。 [數據集在這里](http://www.di.ens.fr/~laptev/actions/hollywood2)。
我們已經看到了可用于視頻分類任務的數據集,以及描述和訪問鏈接。 接下來,我們將看到如何加載視頻并將其拆分為幀以進行進一步處理。
# 將視頻分成幀
視頻可以轉換為幀并保存在目錄中以備將來使用。 分成幀可以通過在訓練過程之前對視頻進行解壓縮來幫助我們節省時間。 首先,讓我們看一下將視頻轉換為幀的代碼片段:
```py
import cv2
video_handle = cv2.VideoCapture(video_path)
frame_no = 0 while True:
eof, frame = video_handle.read()
if not eof:
break
cv2.imwrite("frame%d.jpg" % frame_no, frame)
frame_no += 1
```
使用此代碼段,所有前面的數據集都可以轉換為幀。 請注意,這將需要大量的硬盤空間。
# 視頻分類方法
視頻必須針對幾種應用進行分類。 由于視頻中包含大量數據,因此還必須考慮訓練和推理計算。 所有視頻分類方法均受圖像分類算法啟發。 VGG,Inception 等標準架構用于幀級別的特征計算,然后進行進一步處理。 諸如 **CNN**,**注意**,先前章節中學習的和 **LSTM** 之類的概念將在此處有用。 直觀地,以下方法可用于視頻分類:
* 提取幀并使用在第 2 章,“圖像分類”中學習的模型,以幀為基礎進行分類。
* 提取在第 3 章,“圖像檢索”中學習的圖像特征,并且可以按照第 7 章,“圖像標題”中的描述,使用這些特征訓練 RNN。
* 在整個視頻上訓練 **3D 卷積**網絡。 3D 卷積是 2D 卷積的擴展; 我們將在以下各節中詳細了解 3D 卷積的工作原理。
* 使用視頻的**光流**可以進一步提高精度。 光流是對象運動的模式,我們將在接下來的部分中詳細介紹。
我們將看到幾種算法,它們在各種計算復雜性上都具有良好的準確率。 可以通過將數據集轉換為幀并將其子采樣為相同的長度來準備它。 一些預處理會有所幫助,例如減去 Imagenet 的均值。
# 為視頻分類融合并行 CNN
就幀而言,由于圖像的下采樣,視頻的預測可能不會產生良好的結果,從而丟失了精細的細節。 使用高分辨率的 CNN 將增加推理時間。 因此,[Karpathy 等人](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/42455.pdf)建議融合兩個流,它們并行運行視頻分類。 進行逐幀預測有兩個問題,即:
* 由于較大的 CNN 架構,預測可能需要很長時間
* 獨立的預測會沿時間維度丟失信息
使用更少的參數和兩個并行運行的較小編碼器可以簡化架構。 視頻同時通過兩個 CNN 編碼器傳遞。 一個編碼器需要較低的分辨率并要處理高分辨率。 編碼器具有交替的卷積,規范化和合并層。 兩個編碼器的最后一層通過全連接層連接。 另一個編碼器具有相同的大小,但僅進行中心裁剪,如下所示:

轉載自 Karpathy 等人
幀的并行處理通過對視頻進行下采樣來加快運行時間。 CNN 架構的參數減半,同時保持相同的精度。 這兩個流稱為**中央凹**和**上下文**。 以下代碼段顯示了流:
```py
high_resolution_input = tf.placeholder(tf.float32, shape=[None, input_size])
low_resolution_input = tf.placeholder(tf.float32, shape=[None, input_size])
y_input = tf.placeholder(tf.float32, shape=[None, no_classes])
high_resolution_cnn = get_model(high_resolution_input)
low_resolution_cnn = get_model(low_resolution_input)
dense_layer_1 = tf.concat([high_resolution_cnn, low_resolution_cnn], 1)
dense_layer_bottleneck = dense_layer(dense_layer_1, 1024)
logits = dense_layer(dense_layer_bottleneck, no_classes)
```
下圖顯示了跨時間維度進行處理的幀:

轉自 Karpathy 等人
可以在不同的時間觀看視頻,而不是通過固定大小的剪輯。 在前面的圖像中介紹了連接時間信息的三種方式。 后期融合需要更長的時間框架,而早期融合則需要幾個幀。 慢速融合將后期融合和早期融合結合在一起,可獲得良好效果。 該模型在`Sports1M`數據集上進行了訓練,該數據集具有 487 個類別,并達到了 50% 的準確率。 將同一模型應用于`UCF101`時,可達到 60% 的精度。
# 長時間視頻的分類
融合方法適用于短視頻片段。 分類較長的視頻很困難,因為必須計算和記住很多幀。 [Ng 等人](https://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Ng_Beyond_Short_Snippets_2015_CVPR_paper.pdf)提出了兩種對較長視頻進行分類的方法:
* 第一種方法是在時間上合并卷積特征。 最大池用作函數`aggregation`方法。
* 第二種方法是使用 LSTM 連接處理各種可變長度視頻的卷積特征。
下圖顯示了這兩種方法:

摘自 Ng 等人
可以提取 CNN 特征并將其饋送到小型 LSTM 網絡,如以下代碼所示:
```py
net = tf.keras.models.Sequential()
net.add(tf.keras.layers.LSTM(2048,
return_sequences=False,
input_shape=input_shape,
dropout=0.5))
net.add(tf.keras.layers.Dense(512, activation='relu'))
net.add(tf.keras.layers.Dropout(0.5))
net.add(tf.keras.layers.Dense(no_classes, activation='softmax'))
```
添加 LSTM 進行特征池化可提供更好的表現。 特征以各種方式合并,如下圖所示:

摘自 Ng 等人
如圖所示,卷積特征可以幾種不同的方式聚合。 池在全連接層之前完成。 該方法在`Sports1M`數據集和`UCF101`數據集中的準確率分別為 73.1% 和 88.6%。 下圖顯示了 LSTM 方法:

摘自 Ng 等人
該模型的計算量很高,因為使用了多個 LSTM。
# 為動作識別流式連接兩個 CNN
視頻中對象的運動具有有關視頻中執行的動作的非常好的信息。 對象的運動可以通過光流來量化。 [Simonyan 和 Zisserman](http://papers.nips.cc/paper/5353-two-stream-convolutional-networks-for-action-recognition-in-videos.pdf) 提出了一種用于動作識別的方法,該方法使用來自圖像和光流的兩個流。
光流通過量化觀察者與場景之間的相對運動來測量運動。 可以在[這里](https://www.youtube.com/watch?v=5VyLAH8BhF8)找到有關光流的詳細講座。 通過運行以下命令可以獲得光流:
```py
p1, st, err = cv2.calcOpticalFlowPyrLK(old_gray, frame_gray, p0, None, **lk_params)
```
一個流采用單個幀并使用常規 CNN 預測動作。 另一個流獲取多個幀并計算光流。 光流通過 CNN 進行預測。 下圖顯示了這兩個預測:

轉載自 Simonyan 和 Zisserman
兩種預測都可以與最終預測結合。
# 使用 3D 卷積的時間學習
可以使用 3D 卷積對視頻進行分類。 3D 卷積運算將體積作為輸入并輸出,而 2D 卷積可以將 2D 或體積輸出并輸出 2D 圖像。 區別如下所示:

復制自 Tran 等人
前兩個圖像屬于 2D 卷積。 輸出始終是圖像。 同時,3D 卷積輸出一個體積。 區別在于內核在 3 個方向上進行卷積運算。 [Tran 等人](https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/Tran_Learning_Spatiotemporal_Features_ICCV_2015_paper.pdf)將 3D 卷積用于視頻分類。 3D 卷積模型如下所示:

復制自 Tran 等人
以下是使用 3D 卷積的模型代碼片段:
```py
net = tf.keras.models.Sequential()
net.add(tf.keras.layers.Conv3D(32,
kernel_size=(3, 3, 3),
input_shape=(input_shape)))
net.add(tf.keras.layers.Activation('relu'))
net.add(tf.keras.layers.Conv3D(32, (3, 3, 3)))
net.add(tf.keras.layers.Activation('softmax'))
net.add(tf.keras.layers.MaxPooling3D())
net.add(tf.keras.layers.Dropout(0.25))
net.add(tf.keras.layers.Conv3D(64, (3, 3, 3)))
net.add(tf.keras.layers.Activation('relu'))
net.add(tf.keras.layers.Conv3D(64, (3, 3, 3)))
net.add(tf.keras.layers.Activation('softmax'))
net.add(tf.keras.layers.MaxPool3D())
net.add(tf.keras.layers.Dropout(0.25))
net.add(tf.keras.layers.Flatten())
net.add(tf.keras.layers.Dense(512, activation='sigmoid'))
net.add(tf.keras.layers.Dropout(0.5))
net.add(tf.keras.layers.Dense(no_classes, activation='softmax'))
net.compile(loss=tf.keras.losses.categorical_crossentropy,
optimizer=tf.keras.optimizers.Adam(), metrics=['accuracy'])
```
3D 卷積需要大量的計算能力。 3D 卷積在`Sports1M`數據集上達到 90.2% 的精度。
# 使用軌跡的分類
[Wang 等人](https://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Wang_Action_Recognition_With_2015_CVPR_paper.pdf)使用身體各部分的軌跡對所執行的動作進行分類。 這項工作結合了手工制作和深度學習的特征,可以進行最終預測。 以下是分類的表示形式:

轉載自 Wang 等人
手工制作的特征是 **Fisher 向量**,這些特征來自 CNN。 下圖演示了軌跡和特征圖的提取:

轉載自 Wang 等人
軌跡和特征圖都在時間上組合在一起,以形成關于時間片段的最終預測。
# 多模態融合
[楊等人](http://research.nvidia.com/sites/default/files/pubs/2016-10_Multilayer-and-Multimodal/MM16.pdf)提出了一種具有 4 個模型的多模態融合視頻分類方法。 這四個模型分別是 3D 卷積特征,2D 光流,3D 光流和 2D 卷積特征。
該方法的數據流如下所示:

轉載自 Yang 等人
現在,讓我們了解 Convlet 。 Convlet 是來自單個內核的小卷積輸出。 下圖顯示了 convlet 對卷積層中空間權重的學習:

轉載自 Yang 等人
空間權重指示卷積層中局部空間區域的區分度或重要性。 下圖是在多層卷積層和全連接層上完成的多層表示融合的圖示:

轉載自 Yang 等人
增強機制用于組合預測。 **提升**是一種可以將多個模型預測組合為最終預測的機制。
# 用于分類的注意力區域
注意力機制可以用于分類。 注意力機制復制了人類專注于識別活動區域的行為。 注意力機制賦予某些區域比其他區域更多的權重。 訓練時從數據中學習權重方法。 注意力機制主要有兩種,即:
* **柔和注意力**:性質確定,因此可以通過反向傳播來學習。
* **硬注意力**:性質隨機,這需要復雜的學習機制。 由于需要采樣數據,因此也很昂貴。
以下是軟關注的可視化:

轉載自 Sharma 等人
根據注意,計算并加權 **CNN** 特征。 對某些區域的關注或權重可以用于可視化。 [Sharma 等人](https://arxiv.org/pdf/1511.04119.pdf)使用此想法對視頻進行分類。 **LSTM** 被用作卷積特征。 **LSTM** 通過注意以下幀來預測區域,如下圖所示:

轉自 Sharma 等人。
每個 **LSTM** 棧都會預測位置和標簽。 每個棧具有三個 **LSTM** 。 **LSTM** 棧的輸入是卷積特征立方體和位置。 位置概率是注意權重。 注意的使用提高了準確率以及可視化預測的方法。
我們已經看到了各種視頻分類方法。 接下來,我們將學習視頻中的其他應用。
# 將基于圖像的方法擴展到視頻
圖像可用于姿勢估計,樣式轉換,圖像生成,分割,字幕等等。 同樣,這些應用也在視頻中找到位置。 使用時間信息可以改善來自圖像的預測,反之亦然。 在本節中,我們將看到如何將這些應用擴展到視頻。
# 人體姿勢回歸
人體姿勢估計是視頻數據的重要應用,可以改善其他任務,例如動作識別。 首先,讓我們看一下可用于姿勢估計的數據集的描述:
* **PosesInTheWild** 數據集:包含 30 個帶有人體姿勢標注的視頻。 [數據集在這里](https://lear.inrialpes.fr/research/posesinthewild/)。 該數據集帶有人類上半身關節的標注。
* **電影院中標記的幀**(**FLIC**):從 30 部電影中獲得的人體姿勢數據集,[可在以下位置找到](https://bensapp.github.io/flic-dataset.html)。
[Pfister 等人](https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/Pfister_Flowing_ConvNets_for_ICCV_2015_paper.pdf)提出了一種預測視頻中人體姿勢的方法。 以下是回歸人體姿勢的流水線:

復制自 Pfister 等人
視頻中的幀被獲取并通過卷積網絡。 融合層,并獲得姿勢熱圖。 姿勢熱圖與光流結合以獲得扭曲的熱圖。 合并時間范圍內的扭曲熱圖,以生成合并的熱圖,得到最終姿勢。
# 跟蹤人臉標志
視頻中的人臉分析需要人臉檢測,界標檢測,姿勢估計,驗證等。 計算地標對于捕獲人臉動畫,人機交互和人類活動識別尤其重要。 除了在幀上進行計算外,還可以在視頻上進行計算。 [Gu 等人](http://research.nvidia.com/sites/default/files/pubs/2017-07_Dynamic-Facial-Analysis/rnnface.pdf)提出了一種使用視頻中的人臉標志的檢測和跟蹤的聯合估計的 RNN 方法。 結果優于逐幀預測和其他先前模型。 地標由 CNN 計算,時間方面在 RNN 中編碼。 綜合數據用于訓練。
# 分割視頻
使用時間信息時,可以更好地分割視頻。 [加德(Gadde)等人](https://ps.is.tuebingen.mpg.de/uploads_file/attachment/attachment/386/gadde2017videocnns.pdf)提出了一種通過扭曲來組合時間信息的方法。 下圖演示了該解決方案,該方法將兩個幀分段并且結合了變形:

轉載自 Gadde 等人
下圖顯示了翹曲網:

轉載自 Gadde 等人
在兩個幀之間計算光流,將它們與變形結合在一起。 變形模塊獲取光流,對其進行轉換,然后將其與變形的表示相結合。
# 生成視頻字幕
第 7 章,“圖像字幕生成”說明了幾種組合文本和圖像的方法。 同樣,可以為視頻生成字幕,以描述上下文。 讓我們看一下可用于字幕視頻的數據集列表:
* **微軟研究 - 視頻轉文本**(**MSR-VTT**)具有 200,000 個視頻剪輯和句子對。 [可以從以下網站獲取更多詳細信息](https://www.microsoft.com/en-us/research/publication/msr-vtt-a-large-video-description-dataset-for-bridging-video-and-language/)。
* **MPII 電影描述語料庫**(**MPII-MD**)[可以從以下網站獲取](https://www.mpi-inf.mpg.de/departments/computer-vision-and-multimodal-computing/research/vision-and-language/mpii-movie-description-dataset)。 它有 68,000 個句子和 94 部電影。
* **蒙特利爾視頻標注數據集**(**M-VAD**)[可從以下網站獲得](https://mila.quebec/en/publications/public-datasets/m-vad/)。它有 49,000 個剪輯。
* **YouTube2Text** 包含 1,970 個視頻,包含 80,000 個描述。
[姚等人](https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/Yao_Describing_Videos_by_ICCV_2015_paper.pdf)提出了一種為視頻添加字幕的方法。 經過訓練以進行動作識別的 3D 卷積網絡用于提取局部時間特征。 然后在特征上使用注意力機制以使用 RNN 生成文本。 該過程如下所示:

轉載自 Yao 等人
[Donahue 等人](https://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Donahue_Long-Term_Recurrent_Convolutional_2015_CVPR_paper.pdf)提出了另一種視頻字幕或描述方法,該方法將 **LSTM** 與卷積特征組合。
這類似于前面的方法,除了我們在此處使用 2D 卷積特征,如下圖所示:

摘自 Donahue 等人
我們有幾種將文本與圖像結合起來的方法,例如活動識別,圖像描述和視頻描述技術。 下圖說明了這些技術:

摘自 Donahue 等人
[Venugopalan 等人](https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/Venugopalan_Sequence_to_Sequence_ICCV_2015_paper.pdf)提出了一種使用編碼器-解碼器方法進行視頻字幕的方法。 以下是他提出的技術的可視化:

復制自 Venugopalan 等人
對于此方法,可以在圖像的幀或光流上計算 **CNN**。
# 生成視頻
可以使用生成模型以無監督的方式生成視頻。 可以使用當前幀預測未來的幀。 [Ranzato 等人](https://arxiv.org/pdf/1412.6604.pdf)提出了一種受語言模型啟發的視頻生成方法。 RNN 模型用于拍攝圖像補丁并預測下一個補丁。
# 總結
在本章中,我們涵蓋了與視頻分類有關的各種主題。 我們看到了如何將視頻拆分為幀,以及如何將圖像中的深度學習模型用于各種任務。 我們介紹了一些特定于視頻的算法,例如跟蹤對象。 我們看到了如何將基于視頻的解決方案應用于各種場景,例如動作識別,手勢識別,安全應用和入侵檢測。
在下一章中,我們將學習如何將上一章中訓練有素的模型部署到各種云和移動平臺上的生產環境中。 我們將看到不同的硬件如何影響延遲和吞吐量方面的性能。
- TensorFlow 1.x 深度學習秘籍
- 零、前言
- 一、TensorFlow 簡介
- 二、回歸
- 三、神經網絡:感知器
- 四、卷積神經網絡
- 五、高級卷積神經網絡
- 六、循環神經網絡
- 七、無監督學習
- 八、自編碼器
- 九、強化學習
- 十、移動計算
- 十一、生成模型和 CapsNet
- 十二、分布式 TensorFlow 和云深度學習
- 十三、AutoML 和學習如何學習(元學習)
- 十四、TensorFlow 處理單元
- 使用 TensorFlow 構建機器學習項目中文版
- 一、探索和轉換數據
- 二、聚類
- 三、線性回歸
- 四、邏輯回歸
- 五、簡單的前饋神經網絡
- 六、卷積神經網絡
- 七、循環神經網絡和 LSTM
- 八、深度神經網絡
- 九、大規模運行模型 -- GPU 和服務
- 十、庫安裝和其他提示
- TensorFlow 深度學習中文第二版
- 一、人工神經網絡
- 二、TensorFlow v1.6 的新功能是什么?
- 三、實現前饋神經網絡
- 四、CNN 實戰
- 五、使用 TensorFlow 實現自編碼器
- 六、RNN 和梯度消失或爆炸問題
- 七、TensorFlow GPU 配置
- 八、TFLearn
- 九、使用協同過濾的電影推薦
- 十、OpenAI Gym
- TensorFlow 深度學習實戰指南中文版
- 一、入門
- 二、深度神經網絡
- 三、卷積神經網絡
- 四、循環神經網絡介紹
- 五、總結
- 精通 TensorFlow 1.x
- 一、TensorFlow 101
- 二、TensorFlow 的高級庫
- 三、Keras 101
- 四、TensorFlow 中的經典機器學習
- 五、TensorFlow 和 Keras 中的神經網絡和 MLP
- 六、TensorFlow 和 Keras 中的 RNN
- 七、TensorFlow 和 Keras 中的用于時間序列數據的 RNN
- 八、TensorFlow 和 Keras 中的用于文本數據的 RNN
- 九、TensorFlow 和 Keras 中的 CNN
- 十、TensorFlow 和 Keras 中的自編碼器
- 十一、TF 服務:生產中的 TensorFlow 模型
- 十二、遷移學習和預訓練模型
- 十三、深度強化學習
- 十四、生成對抗網絡
- 十五、TensorFlow 集群的分布式模型
- 十六、移動和嵌入式平臺上的 TensorFlow 模型
- 十七、R 中的 TensorFlow 和 Keras
- 十八、調試 TensorFlow 模型
- 十九、張量處理單元
- TensorFlow 機器學習秘籍中文第二版
- 一、TensorFlow 入門
- 二、TensorFlow 的方式
- 三、線性回歸
- 四、支持向量機
- 五、最近鄰方法
- 六、神經網絡
- 七、自然語言處理
- 八、卷積神經網絡
- 九、循環神經網絡
- 十、將 TensorFlow 投入生產
- 十一、更多 TensorFlow
- 與 TensorFlow 的初次接觸
- 前言
- 1.?TensorFlow 基礎知識
- 2. TensorFlow 中的線性回歸
- 3. TensorFlow 中的聚類
- 4. TensorFlow 中的單層神經網絡
- 5. TensorFlow 中的多層神經網絡
- 6. 并行
- 后記
- TensorFlow 學習指南
- 一、基礎
- 二、線性模型
- 三、學習
- 四、分布式
- TensorFlow Rager 教程
- 一、如何使用 TensorFlow Eager 構建簡單的神經網絡
- 二、在 Eager 模式中使用指標
- 三、如何保存和恢復訓練模型
- 四、文本序列到 TFRecords
- 五、如何將原始圖片數據轉換為 TFRecords
- 六、如何使用 TensorFlow Eager 從 TFRecords 批量讀取數據
- 七、使用 TensorFlow Eager 構建用于情感識別的卷積神經網絡(CNN)
- 八、用于 TensorFlow Eager 序列分類的動態循壞神經網絡
- 九、用于 TensorFlow Eager 時間序列回歸的遞歸神經網絡
- TensorFlow 高效編程
- 圖嵌入綜述:問題,技術與應用
- 一、引言
- 三、圖嵌入的問題設定
- 四、圖嵌入技術
- 基于邊重構的優化問題
- 應用
- 基于深度學習的推薦系統:綜述和新視角
- 引言
- 基于深度學習的推薦:最先進的技術
- 基于卷積神經網絡的推薦
- 關于卷積神經網絡我們理解了什么
- 第1章概論
- 第2章多層網絡
- 2.1.4生成對抗網絡
- 2.2.1最近ConvNets演變中的關鍵架構
- 2.2.2走向ConvNet不變性
- 2.3時空卷積網絡
- 第3章了解ConvNets構建塊
- 3.2整改
- 3.3規范化
- 3.4匯集
- 第四章現狀
- 4.2打開問題
- 參考
- 機器學習超級復習筆記
- Python 遷移學習實用指南
- 零、前言
- 一、機器學習基礎
- 二、深度學習基礎
- 三、了解深度學習架構
- 四、遷移學習基礎
- 五、釋放遷移學習的力量
- 六、圖像識別與分類
- 七、文本文件分類
- 八、音頻事件識別與分類
- 九、DeepDream
- 十、自動圖像字幕生成器
- 十一、圖像著色
- 面向計算機視覺的深度學習
- 零、前言
- 一、入門
- 二、圖像分類
- 三、圖像檢索
- 四、對象檢測
- 五、語義分割
- 六、相似性學習
- 七、圖像字幕
- 八、生成模型
- 九、視頻分類
- 十、部署
- 深度學習快速參考
- 零、前言
- 一、深度學習的基礎
- 二、使用深度學習解決回歸問題
- 三、使用 TensorBoard 監控網絡訓練
- 四、使用深度學習解決二分類問題
- 五、使用 Keras 解決多分類問題
- 六、超參數優化
- 七、從頭開始訓練 CNN
- 八、將預訓練的 CNN 用于遷移學習
- 九、從頭開始訓練 RNN
- 十、使用詞嵌入從頭開始訓練 LSTM
- 十一、訓練 Seq2Seq 模型
- 十二、深度強化學習
- 十三、生成對抗網絡
- TensorFlow 2.0 快速入門指南
- 零、前言
- 第 1 部分:TensorFlow 2.00 Alpha 簡介
- 一、TensorFlow 2 簡介
- 二、Keras:TensorFlow 2 的高級 API
- 三、TensorFlow 2 和 ANN 技術
- 第 2 部分:TensorFlow 2.00 Alpha 中的監督和無監督學習
- 四、TensorFlow 2 和監督機器學習
- 五、TensorFlow 2 和無監督學習
- 第 3 部分:TensorFlow 2.00 Alpha 的神經網絡應用
- 六、使用 TensorFlow 2 識別圖像
- 七、TensorFlow 2 和神經風格遷移
- 八、TensorFlow 2 和循環神經網絡
- 九、TensorFlow 估計器和 TensorFlow HUB
- 十、從 tf1.12 轉換為 tf2
- TensorFlow 入門
- 零、前言
- 一、TensorFlow 基本概念
- 二、TensorFlow 數學運算
- 三、機器學習入門
- 四、神經網絡簡介
- 五、深度學習
- 六、TensorFlow GPU 編程和服務
- TensorFlow 卷積神經網絡實用指南
- 零、前言
- 一、TensorFlow 的設置和介紹
- 二、深度學習和卷積神經網絡
- 三、TensorFlow 中的圖像分類
- 四、目標檢測與分割
- 五、VGG,Inception,ResNet 和 MobileNets
- 六、自編碼器,變分自編碼器和生成對抗網絡
- 七、遷移學習
- 八、機器學習最佳實踐和故障排除
- 九、大規模訓練
- 十、參考文獻