Kerasで構築したAutoEncoder(AE)におけるloss関数を自作したいです.
AEの入力を圧縮した潜在変数( Encoded(input) )に定数Cを足し合わせた値を, デコーダの入力(decoded_1)の入力としデコードした値を損失関数の一部に組み込みたいと考えています.
以下は作りたいloss関数式です.
loss = decoder( Encoded(Input) + C )
loss関数を計算する上で, 潜在変数に定数を足し合わせ,それをdecoderにいれ,その出力値を取る方法がわからないので教えて頂きたいです.
python
1def generator_loss(y_true, y_pred): 2 return ???? 3 4#AutoEncoder(AE) 5_input = Input(shape=(200,)) 6encoded_1 = Dense(np.shape(random_obs)[1], activation='relu')(_input) 7encoded_2 = Dense(100, activation='relu')(encoded_1) 8encoded_3 = Dense(50, activation='relu', name='encoder_layer')(encoded_2) 9#潜在変数(encoded_3.output) 10decoded_1 = Dense(50, activation='relu')(encoded_3) 11decoded_2 = Dense(100, activation='relu')(decoded_1) 12decoded_3 = Dense(200, name='decoder_layer')(decoded_2) 13 14state_model = Model(inputs=_input, outputs=decoded_3) 15 16decoder_layer = Model(input=state_model.input, outputs=state_model.get_layer('decoder_layer').output) 17 18state_model.compile(optimizer='adam', loss=generator_loss, metrics=['accuracy']) 19tbcb = TensorBoard(log_dir='./graph', histogram_freq=0, write_graph=True) 20 21state_model.fit(random_obs, random_obs, 22 epochs=n_epoch, 23 batch_size=batch_size, 24 validation_data=(random_obs, random_obs), 25 verbose=verbose, 26 shuffle=True, 27 callbacks=[tbcb] 28 ) 29 30
あなたの回答
tips
プレビュー