Machine learning 使用Keras自动编码器进行分类

Machine learning 使用Keras自动编码器进行分类,machine-learning,neural-network,deep-learning,keras,autoencoder,Machine Learning,Neural Network,Deep Learning,Keras,Autoencoder,我尝试使用Keras(带有Tensorflow后端)制作一个普通的自动编码器,并在损失值收敛到特定值时停止它。在上一个历元之后,我想使用一个sigmoid函数来执行分类。你知道怎么做吗(或者至少给我指出正确的方向) 下面的代码非常类似于at的香草自动编码器。(我使用的是我自己的数据,但请随意使用链接中的MNIST示例来演示您所谈论的内容。) 我对你的目标有一个解释,但是,你自己似乎没有一个非常清晰的形象。 如果你自己准备必要的数据集,我想你可以澄清一下 一种可能的解决办法如下: NUM_ROWS

我尝试使用Keras(带有Tensorflow后端)制作一个普通的自动编码器,并在损失值收敛到特定值时停止它。在上一个历元之后,我想使用一个sigmoid函数来执行分类。你知道怎么做吗(或者至少给我指出正确的方向)

下面的代码非常类似于at的香草自动编码器。(我使用的是我自己的数据,但请随意使用链接中的MNIST示例来演示您所谈论的内容。)


我对你的目标有一个解释,但是,你自己似乎没有一个非常清晰的形象。 如果你自己准备必要的数据集,我想你可以澄清一下

一种可能的解决办法如下:

NUM_ROWS = len(x_train)
NUM_COLS = len(x_train[0])

inputs = Input(shape=(NUM_COLS, ))
h = Dense(64, activation='sigmoid')(inputs)
outputs = Dense(NUM_COLS)(h)

model = Model(input=inputs, output=outputs)

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model.fit(x_train, x_train,
    batch_size=batch,
    epochs=epochs,
    validation_data=(x_test, y_test))

h.trainable=False


# trying to add last sigmoid layer
outputs = Dense(1)(h)
outputs = Activation('sigmoid')

model2.fit(x_train, y_train,
    batch_size=batch,
    epochs=epochs,
    validation_data=(x_test, y_test))

嗨,你的x_火车是什么?y_火车是什么?这看起来不像AutoEncDoer,请看链接中的示例。如果我能让它工作,我就能让它工作在我的数据上。让我换一种方式问同样的问题:你想用自动编码器实现什么。您可以使用标准分类模型。是否有理由应用两次sigmoid<代码>h=密集(64,激活='sigmoid')(输入)
输出=激活('sigmoid')
NUM_ROWS = len(x_train)
NUM_COLS = len(x_train[0])

inputs = Input(shape=(NUM_COLS, ))
h = Dense(64, activation='sigmoid')(inputs)
outputs = Dense(NUM_COLS)(h)

model = Model(input=inputs, output=outputs)

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model.fit(x_train, x_train,
    batch_size=batch,
    epochs=epochs,
    validation_data=(x_test, y_test))

h.trainable=False


# trying to add last sigmoid layer
outputs = Dense(1)(h)
outputs = Activation('sigmoid')

model2.fit(x_train, y_train,
    batch_size=batch,
    epochs=epochs,
    validation_data=(x_test, y_test))