Was ich tun möchte: Ich möchte ein Convolutional Neuronal Netzwerk auf dem Cifar10-Datensatz auf nur zwei Klassen zu trainieren. Wenn ich dann mein angepasstes Modell habe, möchte ich alle Schichten nehmen und das Eingangsbild reproduzieren. Ich möchte also ein Bild aus dem Netzwerk zurückholen, anstatt es zu klassifizieren.Keras - Train Convolution Network, bekommen Auto-Encoder-Ausgang
Was ich bisher getan haben:
def copy_freeze_model(model, nlayers = 1):
new_model = Sequential()
for l in model.layers[:nlayers]:
l.trainable = False
new_model.add(l)
return new_model
numClasses = 2
(X_train, Y_train, X_test, Y_test) = load_data(numClasses)
#Part 1
rms = RMSprop()
model = Sequential()
#input shape: channels, rows, columns
model.add(Convolution2D(32, 3, 3, border_mode='same',
input_shape=(3, 32, 32)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(512))
model.add(Activation("relu"))
model.add(Dropout(0.5))
#output layer
model.add(Dense(numClasses))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy', optimizer=rms,metrics=["accuracy"])
model.fit(X_train,Y_train, batch_size=32, nb_epoch=25,
verbose=1, validation_split=0.2,
callbacks=[EarlyStopping(monitor='val_loss', patience=2)])
print('Classifcation rate %02.3f' % model.evaluate(X_test, Y_test)[1])
##pull the layers and try to get an output from the network that is image.
newModel = copy_freeze_model(model, nlayers = 8)
newModel.add(Dense(1024))
newModel.compile(loss='mean_squared_error', optimizer=rms,metrics=["accuracy"])
newModel.fit(X_train,X_train, batch_size=32, nb_epoch=25,
verbose=1, validation_split=0.2,
callbacks=[EarlyStopping(monitor='val_loss', patience=2)])
preds = newModel.predict(X_test)
Auch wenn ich das tue:
input_shape=(3, 32, 32)
Ist dies bedeutet einen 3-Kanal (RGB) 32 x 32 Bild?
Ich denke, es ist vielleicht nicht die beste Idee, um ein konvolutionell transformiertes Bild durch eine nichtkonvolutionäre Schicht zu reproduzieren. –
@marcin was würdest du mir vorschlagen? – Kevin