<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 可變長度輸入序列的數據準備 > 原文: [https://machinelearningmastery.com/data-preparation-variable-length-input-sequences-sequence-prediction/](https://machinelearningmastery.com/data-preparation-variable-length-input-sequences-sequence-prediction/) 深度學習庫假設您的數據的向量化表示。 在可變長度序列預測問題的情況下,這需要轉換您的數據,使得每個序列具有相同的長度。 此向量化允許代碼有效地為您選擇的深度學習算法批量執行矩陣運算。 在本教程中,您將發現可用于使用Keras在Python中為序列預測問題準備可變長度序列數據的技術。 完成本教程后,您將了解: * 如何填充具有虛擬值的可變長度序列。 * 如何將可變長度序列填充到新的更長的期望長度。 * 如何將可變長度序列截斷為更短的期望長度。 讓我們開始吧。 ![Data Preparation for Variable Length Input Sequences for Sequence Prediction](img/25631fd0ade9a217cc6ef99e6006f7f4.jpg) 用于序列預測的可變長度輸入序列的數據準備 照片由 [Adam Bautz](https://www.flickr.com/photos/130811041@N04/19547744848/) ,保留一些權利。 ## 概觀 本節分為3部分;他們是: 1. 受控序列問題 2. 序列填充 3. 序列截斷 ### 環境 本教程假定您已安裝Python SciPy環境。您可以在此示例中使用Python 2或3。 本教程假設您使用TensorFlow(v1.1.0 +)或Theano(v0.9 +)后端安裝了Keras(v2.0.4 +)。 本教程還假設您安裝了scikit-learn,Pandas,NumPy和Matplotlib。 如果您在設置Python環境時需要幫助,請參閱以下帖子: * [如何使用Anaconda設置用于機器學習和深度學習的Python環境](http://machinelearningmastery.com/setup-python-environment-machine-learning-deep-learning-anaconda/) ## 受控序列問題 為了本教程的目的,我們可以設計一個簡單的序列問題。 該問題被定義為整數序列。有三個序列,長度在4到1個步驟之間,如下所示: ```py 1, 2, 3, 4 1, 2, 3 1 ``` 這些可以在Python中定義為列表列表,如下所示(可讀性的間距): ```py sequences = [ [1, 2, 3, 4], [1, 2, 3], [1] ] ``` 我們將使用這些序列作為本教程中探索序列填充的基礎。 ## 序列填充 Keras深度學習庫中的 [pad_sequences()函數](https://keras.io/preprocessing/sequence/)可用于填充可變長度序列。 默認填充值為0.0,適用于大多數應用程序,但可以通過“value”參數指定首選值來更改。例如: ```py pad_sequences(..., value=99) ``` 要應用于序列的開頭或結尾的填充(稱為前序列或后序列填充)可以通過“填充”參數指定,如下所示。 ### 預序列填充 預序列填充是默認值(padding ='pre') 下面的示例演示了具有0值的預填充3輸入序列。 ```py from keras.preprocessing.sequence import pad_sequences # define sequences sequences = [ [1, 2, 3, 4], [1, 2, 3], [1] ] # pad sequence padded = pad_sequences(sequences) print(padded) ``` 運行該示例將打印3個預先填充零序列的序列。 ```py [[1 2 3 4] [0 1 2 3] [0 0 0 1] ``` ### 序列后填充 填充也可以應用于序列的末尾,這可能更適合于某些問題域。 可以通過將“padding”參數設置為“post”來指定序列后填充。 ```py from keras.preprocessing.sequence import pad_sequences # define sequences sequences = [ [1, 2, 3, 4], [1, 2, 3], [1] ] # pad sequence padded = pad_sequences(sequences, padding='post') print(padded) ``` 運行該示例將打印相同的序列,并附加零值。 ```py [[1 2 3 4] [1 2 3 0] [1 0 0 0]] ``` ### 填充序列到長度 pad_sequences()函數還可用于將序列填充到可能比任何觀察到的序列更長的優選長度。 這可以通過將“maxlen”參數指定為所需長度來完成。然后將對所有序列執行填充以獲得所需的長度,如下所述。 ```py from keras.preprocessing.sequence import pad_sequences # define sequences sequences = [ [1, 2, 3, 4], [1, 2, 3], [1] ] # pad sequence padded = pad_sequences(sequences, maxlen=5) print(padded) ``` 運行示例將每個序列填充到所需的5個步驟的長度,即使觀察序列的最大長度僅為4個步驟。 ```py [[0 1 2 3 4] [0 0 1 2 3] [0 0 0 0 1]] ``` ## 序列截斷 序列的長度也可以修剪到所需的長度。 可以使用“maxlen”參數將所需的序列長度指定為多個時間步長。 有兩種方法可以截斷序列:通過從序列的開頭或末尾刪除時間步長。 ### 序列前截斷 默認的截斷方法是從序列的開頭刪除時間步。這稱為序列前截斷。 下面的示例將序列截斷為所需的長度2。 ```py from keras.preprocessing.sequence import pad_sequences # define sequences sequences = [ [1, 2, 3, 4], [1, 2, 3], [1] ] # truncate sequence truncated= pad_sequences(sequences, maxlen=2) print(truncated) ``` 運行該示例將從第一個序列中刪除前兩個時間步,從第二個序列中刪除第一個時間步,并填充最終序列。 ```py [[3 4] [2 3] [0 1]] ``` ### 序列后截斷 也可以通過從序列末尾刪除時間步長來修剪序列。 對于某些問題域,這種方法可能更合適。 可以通過將“截斷”參數從默認的“pre”更改為“post”來配置序列后截斷,如下所示: ```py from keras.preprocessing.sequence import pad_sequences # define sequences sequences = [ [1, 2, 3, 4], [1, 2, 3], [1] ] # truncate sequence truncated= pad_sequences(sequences, maxlen=2, truncating='post') print(truncated) ``` 運行該示例將從第一個序列中刪除最后兩個時間步,從第二個序列中刪除最后一個時間步,然后再次填充最終序列。 ```py [[1 2] [1 2] [0 1]] ``` ## 摘要 在本教程中,您了解了如何準備可變長度序列數據以用于Python中的序列預測問題。 具體來說,你學到了: * 如何填充具有虛擬值的可變長度序列。 * 如何將可變長度序列填充到新的所需長度。 * 如何將可變長度序列截斷為新的所需長度。 您對準備可變長度序列有任何疑問嗎? 在評論中提出您的問題,我會盡力回答。
                  <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>

                              哎呀哎呀视频在线观看