2017-08-07 2 views
1

Kerasのレイヤーの出力を変更しようとしています。時系列を潜在空間に変換するエンコーダがあり、その後、圧縮された時系列ごとに時系列にいくつかの数値を追加したい。Kerasのレイヤーの重みを変更する

input_d = Input((100,)) 
h1_d = Reshape((100, 1))(input_d) 
h2_d = LSTM(150, return_sequences=True)(h1_d) 
h3_d = TimeDistributed(Dense(64, activation='linear'))(h2_d) 
h4_d = LSTM(150)(h3_d) 
output_d = Dense(30, activation='linear')(h4_d) 

そして、私はこのような何かやりたい:例えば

私が持っている

new_weights = [] 
for i in outputs_d.weights: 
    new_weights.append(np.vstack(([1,2,3], i))) 

をしかし、問題は、私はので、これを行うことができた瞬間には分からないということですouput_dの後にラムダレイヤーを書くと、私はウェイトにアクセスすることはできません。

答えて

1

私はこのようなことをした唯一の方法は、コールバックとして、モデルへのアクセスがあり、したがって重みがself.model.trainable_weightsまたはself.model.get_weights()になるように、目的の機能を実装することです。

関連する問題