<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # CNN長短期記憶網絡 > 原文: [https://machinelearningmastery.com/cnn-long-short-term-memory-networks/](https://machinelearningmastery.com/cnn-long-short-term-memory-networks/) ### 使用示例Python代碼輕松介紹CNN LSTM循環神經網絡 。 具有空間結構的輸入(如圖像)無法使用標準Vanilla LSTM輕松建模。 CNN長短期記憶網絡或簡稱CNN LSTM是一種LSTM架構,專門用于具有空間輸入的序列預測問題,如圖像或視頻。 在這篇文章中,您將發現用于序列預測的CNN LSTM架構。 完成這篇文章后,你會知道: * 關于用于序列預測的CNN LSTM模型架構的開發。 * CNN LSTM模型適合的問題類型的示例。 * 如何使用Keras在Python中實現CNN LSTM架構。 讓我們開始吧。 ![Convolutional Neural Network Long Short-Term Memory Networks](img/28aa9063f5dd83a2c8c2e7a9a66db246.jpg) 卷積神經網絡長短期記憶網絡 攝影: [Yair Aronshtam](https://www.flickr.com/photos/yairar/34484734116/) ,保留了一些權利。 ## CNN LSTM架構 CNN LSTM架構涉及使用卷積神經網絡(CNN)層對輸入數據進行特征提取以及LSTM以支持序列預測。 CNN LSTM是針對視覺時間序列預測問題以及從圖像序列(例如視頻)生成文本描述的應用而開發的。具體來說,問題是: * **活動識別**:生成在一系列圖像中演示的活動的文本描述。 * **圖像說明**:生成單個圖像的文本描述。 * **視頻說明**:生成圖像序列的文本描述。 > [CNN LSTM]是一類在空間和時間上都很深的模型,并且可以靈活地應用于涉及順序輸入和輸出的各種視覺任務 - [用于視覺識別和描述的長期循環卷積網絡](https://arxiv.org/abs/1411.4389),2015。 這種架構最初被稱為長期循環卷積網絡或LRCN模型,盡管我們將使用更通用的名稱“CNN LSTM”來指代在本課程中使用CNN作為前端的LSTM。 該體系結構用于生成圖像的文本描述的任務。關鍵是使用在具有挑戰性的圖像分類任務上預先訓練的CNN,該任務被重新用作字幕生成問題的特征提取器。 > ...使用CNN作為圖像“編碼器”是很自然的,首先將其預訓練用于圖像分類任務,并使用最后隱藏層作為生成句子的RNN解碼器的輸入 - [Show and Tell:神經圖像標題生成器](https://arxiv.org/abs/1411.4555),2015。 該體系結構還用于語音識別和自然語言處理問題,其中CNN用作音頻和文本輸入數據上的LSTM的特征提取器。 此體系結構適用于以下問題: * 在其輸入中具有空間結構,例如2D結構或圖像中的像素或句子,段落或文檔中的單詞的一維結構。 * 在其輸入中具有時間結構,諸如視頻中的圖像的順序或文本中的單詞,或者需要生成具有時間結構的輸出,諸如文本描述中的單詞。 ![Convolutional Neural Network Long Short-Term Memory Network Architecture](img/ae84a006384400ada510e876d69bc2a4.jpg) 卷積神經網絡長短期記憶網絡體系結構 ## 在Keras實施CNN LSTM 我們可以定義一個在Keras聯合訓練的CNN LSTM模型。 可以通過在前端添加CNN層,然后在輸出上添加具有Dense層的LSTM層來定義CNN LSTM。 將此體系結構視為定義兩個子模型是有幫助的:用于特征提取的CNN模型和用于跨時間步驟解釋特征的LSTM模型。 讓我們在一系列2D輸入的背景下看一下這兩個子模型,我們假設它們是圖像。 ### CNN模型 作為復習,我們可以定義一個2D卷積網絡,它由Conv2D和MaxPooling2D層組成,這些層被排列成所需深度的堆棧。 Conv2D將解釋圖像的快照(例如小方塊),并且輪詢層將合并或抽象解釋。 例如,下面的片段期望讀入具有1個通道(例如,黑色和白色)的10×10像素圖像。 Conv2D將以2×2快照讀取圖像,并輸出一個新的10×10圖像解釋。 MaxPooling2D將解釋匯集為2×2塊,將輸出減少到5×5合并。 Flatten層將采用單個5×5貼圖并將其轉換為25個元素的向量,準備用于處理其他層,例如用于輸出預測的Dense。 ```py cnn = Sequential() cnn.add(Conv2D(1, (2,2), activation='relu', padding='same', input_shape=(10,10,1))) cnn.add(MaxPooling2D(pool_size=(2, 2))) cnn.add(Flatten()) ``` 這對于圖像分類和其他計算機視覺任務是有意義的。 ### LSTM模型 上面的CNN模型僅能夠處理單個圖像,將其從輸入像素變換為內部矩陣或向量表示。 我們需要跨多個圖像重復此操作,并允許LSTM在輸入圖像的內部向量表示序列中使用BPTT建立內部狀態和更新權重。 在使用現有的預訓練模型(如VGG)從圖像中提取特征的情況下,可以固定CNN。 CNN可能未經過訓練,我們可能希望通過將來自LSTM的錯誤反向傳播到多個輸入圖像到CNN模型來訓練它。 在這兩種情況下,概念上存在單個CNN模型和一系列LSTM模型,每個時間步長一個。我們希望將CNN模型應用于每個輸入圖像,并將每個輸入圖像的輸出作為單個時間步驟傳遞給LSTM。 我們可以通過在TimeDistributed層中包裝整個CNN輸入模型(一層或多層)來實現這一點。該層實現了多次應用相同層的期望結果。在這種情況下,將其多次應用于多個輸入時間步驟,并依次向LSTM模型提供一系列“圖像解釋”或“圖像特征”以進行處理。 ```py model.add(TimeDistributed(...)) model.add(LSTM(...)) model.add(Dense(...)) ``` 我們現在有模型的兩個元素;讓我們把它們放在一起。 ### CNN LSTM模型 我們可以在Keras中定義CNN LSTM模型,首先定義一個或多個CNN層,將它們包裝在TimeDistributed層中,然后定義LSTM和輸出層。 我們有兩種方法可以定義相同的模型,只是在品味上有所不同。 您可以首先定義CNN模型,然后通過將整個CNN層序列包裝在TimeDistributed層中將其添加到LSTM模型,如下所示: ```py # define CNN model cnn = Sequential() cnn.add(Conv2D(...)) cnn.add(MaxPooling2D(...)) cnn.add(Flatten()) # define LSTM model model = Sequential() model.add(TimeDistributed(cnn, ...)) model.add(LSTM(..)) model.add(Dense(...)) ``` 另一種也許更容易閱讀的方法是在將CNN模型中的每個層添加到主模型時,將其包裝在TimeDistributed層中。 ```py model = Sequential() # define CNN model model.add(TimeDistributed(Conv2D(...)) model.add(TimeDistributed(MaxPooling2D(...))) model.add(TimeDistributed(Flatten())) # define LSTM model model.add(LSTM(...)) model.add(Dense(...)) ``` 第二種方法的好處是所有層都出現在模型摘要中,因此現在是首選。 您可以選擇您喜歡的方法。 ## 進一步閱讀 如果您要深入了解,本節將提供有關該主題的更多資源。 ### CNN LSTM論文 * [用于視覺識別和描述的長期循環卷積網絡](https://arxiv.org/abs/1411.4389),2015。 * [Show and Tell:神經圖像標題生成器](https://arxiv.org/abs/1411.4555),2015。 * [卷積,長短期記憶,完全連接的深度神經網絡](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43455.pdf),2015。 * [字符意識神經語言模型](https://arxiv.org/abs/1508.06615),2015。 * [卷積LSTM網絡:用于降水預報的機器學習方法](https://arxiv.org/abs/1506.04214),2015。 ### Keras API * [Conv2D Keras API](https://keras.io/layers/convolutional/#conv2d) 。 * [MaxPooling2D Keras API](https://keras.io/layers/pooling/#maxpooling2d) 。 * [Flatten Keras API](https://keras.io/layers/core/#flatten) 。 * [TimeDistributed Keras API](https://keras.io/layers/wrappers/#timedistributed) 。 ### 帖子 * [用于機器學習的卷積神經網絡的速成課程](http://machinelearningmastery.com/crash-course-convolutional-neural-networks/) * [用Keras](http://machinelearningmastery.com/sequence-classification-lstm-recurrent-neural-networks-python-keras/) 在Python中用LSTM循環神經網絡進行序列分類 ## 摘要 在這篇文章中,您發現了CNN LSTM模型架構。 具體來說,你學到了: * 關于用于序列預測的CNN LSTM模型架構的開發。 * CNN LSTM模型適合的問題類型的示例。 * 如何使用Keras在Python中實現CNN LSTM架構。 你有任何問題嗎? 在下面的評論中提出您的問題,我會盡力回答。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看