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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### 準備數據: * 將數據預處理為神經網絡可以處理的格式-向量化。 * 數據中的每個時間序列位于不同的范圍(比如溫度通道位于 -20 到 +30 之間,但氣壓大約在 1000 毫巴上下) * 對每個時間序列分別做標準化,讓它們在相似的范圍內都取較小的值。 * 編寫一個 Python 生成器 * 以當前的浮點數數組作為輸入,并從最近的數據中生成數據批量,同時生成未來的目標溫度。 * 數據集中的樣本是高度冗余的(對于第*N*個樣本和第*N*+1 個樣本,大部分時間步都是相同的),所以顯式地保存每個樣本是一種浪費。相反,我們將使用原始數據即時生成樣本。 ***** ### 合理性檢查: * 嘗試一種**基于常識**的簡單**方法**。它可以**作為**合理性**檢查** * **建立**一個**基準**,更高級的機器學習模型需要打敗這個基準才能表現出其**有效性** ***** ### 基于常識的、非機器學習的基準方法 嘗試機器學習方法之前,建立一個基于常識的基準方法是很有用的: **小型的密集連接網絡** ~~~ model = Sequential() model.add(layers.Flatten(input_shape=(lookback//step, float_data.shape[-1])))#首先將數據展平 model.add(layers.Dense(32, activation='relu'))#通過兩個Dense層并運行 model.add(layers.Dense(1))#最后一個Dense層沒有使用激活函數,這對于回歸問題是很常見的 model.compile(optimizer=RMSprop(), loss='mae')#使用 MAE 作為損失 history = model.fit_generator(train_gen, steps_per_epoch=500, epochs=20, validation_data=val_gen, validation_steps=val_steps) ~~~ ### 使用循環 dropout 來降低過擬合 在循環網絡中使用 dropout 的正確方法:對每個時間步應該使用相同的 dropout 掩碼(dropout mask,相同模式的舍棄單元),而不是讓 dropout 掩碼隨著時間步的增加而隨機變化。此外,為了對`GRU`、`LSTM`等循環層得到的表示做正則化,應該將不隨時間變化的 dropout 掩碼應用于層的內部循環激活(叫作**循環**dropout 掩碼)。對每個時間步使用相同的 dropout 掩碼,可以讓網絡沿著時間正確地傳播其學習誤差,而隨時間隨機變化的 dropout 掩碼則會破壞這個誤差信號,并且不利于學習過程。 > 參見 Yarin Gal 的博士論文“Uncertainty in deep learning”。 Keras有兩個與 dropout 相關的參數: * `dropout`它是一個浮點數,指定該層輸入單元的 dropout 比率 * `recurrent_dropout`指定循環單元的 dropout 比率 * 使用 dropout 正則化的網絡總是需要更長的時間才能完全收斂,所以網絡訓練輪次增加為原來的 2 倍 循環層堆疊: * 增加網絡容量的通常做法是增加每層單元數或增加層數 * 在 Keras 中逐個堆疊循環層,所有中間層都應該返回完整的輸出序列(一個 3D 張量),而不是只返回最后一個時間步的輸出。這可以通過指定`return_sequences=True`來實現 ~~~ model.add(layers.GRU(32, dropout=0.1, recurrent_dropout=0.5, return_sequences=True, input_shape=(None, float_data.shape[-1]))) model.add(layers.GRU(64, activation='relu', dropout=0.1, recurrent_dropout=0.5)) model.add(layers.Dense(1)) ~~~ **雙向 RNN**(bidirectional RNN): RNN 按時間逆序處理輸入序列(更晚的時間步在前) * [ ] 編寫一個數據生成器的變體,將輸入序列沿著時間維度反轉(即將最后一行代碼替換為`yield samples[:, ::-1, :], targets`)
                  <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>

                              哎呀哎呀视频在线观看