代码之家  ›  专栏  ›  技术社区  ›  Andrew_457

为什么我的自动编码器没有给出简化的表示?

  •  -1
  • Andrew_457  · 技术社区  · 7 年前

    我正在尝试创建数据的简化表示,我将在另一个模型中使用,我将按以下方式进行:

       input = Input(shape=(70,))
       encoded = Dense(output_dim=10, input_dim=70, activation='relu')(input)
       decoded = Dense(70, activation='relu')(encoded)
       autoencoder = Model(input, decoded)
       autoencoder.compile(optimizer='adam', loss='binary_crossentropy')
       autoencoder.fit(df_values, df_values,epochs=10,batch_size=32)
       reduced_input = autoencoder.predict(df_values)
    

    但仍有100列在 reduced_input ,它们具有修改的值,即与初始值不同的值 input ,但仍然没有像我预期的那样减少表示(如PCA的组件),即使我指定了 output_dim=10

    我想在我获得减少的输入的方法中有一个错误,但我不知道具体在哪里。如果你能帮我找到它,请!

    1 回复  |  直到 7 年前
        1
  •  1
  •   MarioZ    7 年前

    如果您想要第7层,那么:

    output_func_Layer_7 = K.function([autoencoder.layers[0].input, K.learning_phase()],
                         [autoencoder.layers[7].output])
    intermediate_output = output_func_Layer_7([X_train, False])