特定のレイヤーの重みをコピーする-keras

bones.felipe

よると、この一つのモデルから別の次のコピーの重みは:

target_model.set_weights(model.get_weights())

特定のレイヤーの重みをコピーするのはどうですか?これは機能しますか?

model_1.layers[0].set_weights(source_model.layers[0].get_weights())
model_2.layers[0].set_weights(source_model.layers[0].get_weights())

私がトレーニングした場合model_1model_2それらは別々のウェイトを持ちますか?ドキュメントは、これがあればかどうかを述べるいないget_weights深いコピーを作成しますか。これが機能しない場合、どうすればこれを達成できますか?

今日

もちろん、それは重みのコピーになります。2つの別々のモデル間で共有される重みオブジェクトは意味がありません。次のような簡単な例を使用して、自分で確認できます。

model1 = Sequential()
model1.add(Dense(10, input_dim=2))

model2 = Sequential()
model2.add(Dense(10, input_dim=2))

model1.compile(loss='mse', optimizer='adam')
model2.compile(loss='mse', optimizer='adam')

テスト:

>>> model1.layers[0].get_weights()
[array([[-0.42853734,  0.18648076, -0.47137827,  0.1792168 ,  0.0373047 ,
          0.2765705 ,  0.38383502,  0.09664273, -0.4971757 ,  0.41548246],
        [ 0.0403192 , -0.01309097,  0.6656211 , -0.0536288 ,  0.58677703,
          0.21625364,  0.26447064, -0.42619988,  0.17218047, -0.39748642]],
       dtype=float32),
 array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32)]

>>> model2.layers[0].get_weights()
[array([[-0.30062824, -0.3740575 , -0.3502644 ,  0.28050178, -0.68631136,
          0.1596322 ,  0.08288956, -0.20988202,  0.34323698,  0.2893324 ],
        [-0.29182747, -0.2754455 , -0.64082885,  0.29160154,  0.04342002,
         -0.4996035 ,  0.6608283 ,  0.10293472,  0.11375248, -0.43438092]],
       dtype=float32),
 array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32)]

>>> model2.layers[0].set_weights(model1.layers[0].get_weights())
>>> model2.layers[0].get_weights()
[array([[-0.42853734,  0.18648076, -0.47137827,  0.1792168 ,  0.0373047 ,
          0.2765705 ,  0.38383502,  0.09664273, -0.4971757 ,  0.41548246],
        [ 0.0403192 , -0.01309097,  0.6656211 , -0.0536288 ,  0.58677703,
          0.21625364,  0.26447064, -0.42619988,  0.17218047, -0.39748642]],
       dtype=float32),
 array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32)]

>>> id(model1.layers[0].get_weights()[0])
140494823634144

>>> id(model2.layers[0].get_weights()[0])
140494823635664

カーネルの重み配列のIDは異なるため、オブジェクトは異なりますが、値は同じです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Kerasレイヤーの重みをリセットする

分類Dev

keras:畳み込みレイヤーの重みをブロックする方法

分類Dev

tf.keras-特定の機能にのみ特定のレイヤーを適用する

分類Dev

Kerasのカスタムレイヤー内でウェイトマトリックスをディープコピーする方法。後で再割り当てするために古い重み行列を保存しようとしています

分類Dev

等しい重みを実装するためのKerasカスタムレイヤー/制約

分類Dev

カスタムKerasモデル関数でレイヤーの重みを共有する方法

分類Dev

Kerasで特定のレイヤーのバイアス値を設定する方法

分類Dev

Keras-トレーニングされたレイヤーの重みを取得します

分類Dev

Keras-重みを単一レイヤーに設定する方法

分類Dev

Keras APIを使用して「入力レイヤーから非表示レイヤーへ」および「非表示レイヤーから出力レイヤーへ」の重みを抽出するにはどうすればよいですか?

分類Dev

Kerasの埋め込みレイヤーにバイアスを追加する

分類Dev

kerasレイヤーは各エポックの重みの一部を再開します

分類Dev

埋め込みレイヤー(Keras)を宣言するときのResourceExhaustedError

分類Dev

TheanoとKerasで同じ重みを共有するレイヤーの2つの同一のブランチを実装する方法

分類Dev

Kerasを使用する場合、トレーニング後に最初のレイヤーの重みは変化しません

分類Dev

2つのレイヤーをKerasとマージする

分類Dev

Kerasで連結する前に畳み込みレイヤーのサイズを変更する

分類Dev

Keras-2つの別々のFullyConnectedレイヤーでCNNの畳み込み部分を共有する方法

分類Dev

Kerasでレイヤーの出力形状を取得する方法は?

分類Dev

TensorFlow / Kerasで中間レイヤーの出力を取得する

分類Dev

Keras:複数のLSTMレイヤーをスタックする

分類Dev

Kerasレイヤーの形状を理解する

分類Dev

Keras:2つの埋め込みレイヤーの連結が失敗する

分類Dev

Keras:2つの埋め込みレイヤーの連結が失敗する

分類Dev

単語埋め込みレイヤーを理解するkeras

分類Dev

Kerasモデルレイヤーに新しいユニットを追加し、それらの重みを変更する

分類Dev

2つの異なるkerasレイヤー間にカスタム(畳み込み)接続を作成する方法

分類Dev

トレーニング済みのレイヤーを保存して、Kerasでレイヤーを使用することはできますか?

分類Dev

カスタムkerasレイヤーでkerasレイヤーを使用する方法

Related 関連記事

  1. 1

    Kerasレイヤーの重みをリセットする

  2. 2

    keras:畳み込みレイヤーの重みをブロックする方法

  3. 3

    tf.keras-特定の機能にのみ特定のレイヤーを適用する

  4. 4

    Kerasのカスタムレイヤー内でウェイトマトリックスをディープコピーする方法。後で再割り当てするために古い重み行列を保存しようとしています

  5. 5

    等しい重みを実装するためのKerasカスタムレイヤー/制約

  6. 6

    カスタムKerasモデル関数でレイヤーの重みを共有する方法

  7. 7

    Kerasで特定のレイヤーのバイアス値を設定する方法

  8. 8

    Keras-トレーニングされたレイヤーの重みを取得します

  9. 9

    Keras-重みを単一レイヤーに設定する方法

  10. 10

    Keras APIを使用して「入力レイヤーから非表示レイヤーへ」および「非表示レイヤーから出力レイヤーへ」の重みを抽出するにはどうすればよいですか?

  11. 11

    Kerasの埋め込みレイヤーにバイアスを追加する

  12. 12

    kerasレイヤーは各エポックの重みの一部を再開します

  13. 13

    埋め込みレイヤー(Keras)を宣言するときのResourceExhaustedError

  14. 14

    TheanoとKerasで同じ重みを共有するレイヤーの2つの同一のブランチを実装する方法

  15. 15

    Kerasを使用する場合、トレーニング後に最初のレイヤーの重みは変化しません

  16. 16

    2つのレイヤーをKerasとマージする

  17. 17

    Kerasで連結する前に畳み込みレイヤーのサイズを変更する

  18. 18

    Keras-2つの別々のFullyConnectedレイヤーでCNNの畳み込み部分を共有する方法

  19. 19

    Kerasでレイヤーの出力形状を取得する方法は?

  20. 20

    TensorFlow / Kerasで中間レイヤーの出力を取得する

  21. 21

    Keras:複数のLSTMレイヤーをスタックする

  22. 22

    Kerasレイヤーの形状を理解する

  23. 23

    Keras:2つの埋め込みレイヤーの連結が失敗する

  24. 24

    Keras:2つの埋め込みレイヤーの連結が失敗する

  25. 25

    単語埋め込みレイヤーを理解するkeras

  26. 26

    Kerasモデルレイヤーに新しいユニットを追加し、それらの重みを変更する

  27. 27

    2つの異なるkerasレイヤー間にカスタム(畳み込み)接続を作成する方法

  28. 28

    トレーニング済みのレイヤーを保存して、Kerasでレイヤーを使用することはできますか?

  29. 29

    カスタムkerasレイヤーでkerasレイヤーを使用する方法

ホットタグ

アーカイブ