一個問題關於與多個輸出keras迴歸:Keras迴歸多個輸出
你能解釋一下beteween這個網的區別:
兩個輸入 - >兩個輸出
input = Input(shape=(2,), name='bla')
hidden = Dense(hidden, activation='tanh', name='bla')(input)
output = Dense(2, activation='tanh', name='bla')(hidden)
和:兩個單輸入 - >兩個單輸出:
input = Input(shape=(2,), name='speed_input')
hidden = Dense(hidden_dim, activation='tanh', name='hidden')(input)
output = Dense(1, activation='tanh', name='bla')(hidden)
input_2 = Input(shape=(1,), name='angle_input')
hidden_2 = Dense(hidden_dim, activation='tanh', name='hidden')(input_2)
output_2 = Dense(1, activation='tanh', name='bla')(hidden_2)
model = Model(inputs=[speed_input, angle_input], outputs=[speed_output, angle_output])
它們的行爲非常相似。其他時候,我完全把它們分開,那麼這兩個網就像他們應該做的那樣。
這是正常的,兩個單輸出網的行爲比兩個輸出的更大的一個更容易理解,我不認爲差異可能是巨大的,就像我經歷過的。
非常感謝:)
非常感謝您抽出寶貴時間:) So Keras在第二個例子中完全分離了這兩個網絡嗎?兩個獨立建構和學習網(兩種不同的腳本)和這個選項之間的區別在哪裏? – Asdf11
要回答你的第一個問題,不,不是。這兩個網絡仍然在同一個模型對象中,但在計算上它們完全不相關。 –
有2個不同的模型對象的區別是,現在你必須在同一時間和相同數量的例子進行訓練。一方面,這有點不方便。但讓我們說,如果你的問題總是需要兩個網絡的輸出,你可以通過訓練和並排運行來節省時間和內存。 –