Я разработал автоэнкодер и обучил его.Теперь я хочу извлечь функции из кодировщика и передать их в генератор другой модели.
Это автоэкодер, который я реализовал.
x = Conv1D(64, 5, activation="relu", padding="same")(input)
#x = BatchNormalization()(x)
x = MaxPooling1D(2, padding="same")(x)
x = Conv1D(32, 5, activation="relu", padding="same")(x)
#x = BatchNormalization()(x)
x = MaxPooling1D(2, padding="same")(x)
x = Conv1D(16, 5, activation="relu", padding="same")(x)
x = MaxPooling1D(2, padding="same")(x)
x = Conv1D(1, 5, activation="relu", padding="same")(x)
encoded = MaxPooling1D(2, padding="same")(x)
x = Conv1D(1, 5, activation="relu", padding="same")(encoded)
#x = BatchNormalization()(x)
x = UpSampling1D(2)(x)
x = Conv1D(16, 2, activation='relu',padding='same')(x)
x = UpSampling1D(2)(x)
x = Conv1D(32, 2, activation='relu',padding='same')(x)
#x = BatchNormalization()(x)
x = UpSampling1D(2, )(x)
x = Conv1D(64, 2, activation='relu',padding='same')(x)
x = UpSampling1D(2, )(x)
decoded = Conv1D(1, 3, activation='sigmoid', padding='same')(x)
autoencoder = Model(input, decoded)
Вот где я получаювыходы кодирующей части.
def extract_features_from_encoder(left,right):
get_8th_layer_output = K.function([autoencoder.layers[0].input],
[autoencoder.layers[8].output])
left_encoded = get_8th_layer_output([left])[0]
right_encoded = get_8th_layer_output([right])[0]
Это мой генератор:
def generator_encoded():
left = ...
right = ...
left_encoded,right_encoded =
extract_features_from_encoder(left,right)
yield ({'input_1': left_encoded, 'input_2': right_encoded},
{'dense_1': y})
Здесь я звоню генератору:
model.fit_generator(generator_encoded(),......)
Это моймодель.
input_l = Input(shape=(1000,1))
input_r = Input(shape=(1000,1))
shared_lstm = CuDNNLSTM(100)
encoded_l = shared_lstm(input_l)
encoded_r = shared_lstm(input_r)
L1_layer = Lambda(lambda tensors:K.abs(tensors[0] - tensors[1]))
L1_distance = L1_layer([encoded_l, encoded_r])
prediction = Dense(1,activation='sigmoid')(L1_distance)
model = Model(inputs=[input_l,input_r],outputs=prediction)
Это ошибка, которую я получаю при работе этой модели.
tensorflow.python.framework.errors_impl.InvalidArgumentError:
Tensor input_2:0, specified in either feed_devices or
fetch_devices was not found in the Graph
Может кто-нибудь сказать, пожалуйста, что не так и как это исправить?