0

set_weights および get_weights スキームを使用して、トレーニング済みネットワークから新しいモデルの最後のレイヤーに重みをロードすることは可能ですか? ポイントは、各レイヤーの重みを(トレーニング後に)マットファイルとして保存して、Matlabで計算を行い、最後のレイヤーの変更された重みだけを新しいモデルの最後のレイヤーと他のレイヤーにロードすることですトレーニング済みモデルと同じ重みを取得します。保存形式がマットなので、少しトリッキーです。

weights1 = lstm_model1.layers[0].get_weights()[0]
biases1 = lstm_model1.layers[0].get_weights()[1]
weights2 = lstm_model1.layers[2].get_weights()[0]
biases2 = lstm_model1.layers[2].get_weights()[1]
weights3 = lstm_model1.layers[4].get_weights()[0]
biases3 = lstm_model1.layers[4].get_weights()[1]
# Save the weights and biases for adaptation algorithm 
savemat("weights1.mat", mdict={'weights1': weights1})  
savemat("biases1.mat", mdict={'biases1': biases1})      
savemat("weights2.mat", mdict={'weights2': weights2})   
savemat("biases2.mat", mdict={'biases2': biases2})      
savemat("weights3.mat", mdict={'weights3': weights3}) 
savemat("biases3.mat", mdict={'biases3': biases3})  

他のレイヤーの古いウェイトのみを新しいモデル (最後のレイヤーなし) にロードし、最後のレイヤーの変更されたウェイトを新しいモデルの最後のレイヤーにロードするにはどうすればよいですか?

4

1 に答える 1