Cette fois, j'ai essayé l'encodeur automatique. Pour expliquer brièvement le codeur automatique, il s'agit d'un mécanisme qui correspond au nombre de dimensions de la couche d'entrée et de la couche de sortie et entraîne la couche intermédiaire dans un plus petit nombre de dimensions. Il semble qu'il soit utilisé pour la détection d'anomalies en utilisation réelle et pour l'extraction de caractéristiques telles que la suppression du bruit.
nn.py
model = Sequential()
model.add(Dense(50, activation='relu', input_dim=len(x_train[0])))
model.add(Dense(len(x_train[0]), activation='sigmoid'))
model.compile(optimizer='adadelta',
loss='categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train,
batch_size=100,
epochs=10,
verbose=1,
validation_data=(x_test, y_test))
Créez et apprenez le modèle d'encodeur automatique ci-dessus J'ai mis la couche intermédiaire à 50, mais on ne sait pas à quel point c'est bon
Soudain, je me demandais comment supprimer la couche intermédiaire. Quand je l'ai recherché, rien ne s'est passé. Tout ce que vous avez à faire est de changer le calque de sortie.
Au fait, si vous voulez sortir normalement, faites-le.
model.predict(data)
Vous devez modifier le modèle pour le transformer en une sortie de couche intermédiaire. Jetons d'abord un coup d'œil au contour du modèle créé.
model.summary()
'''
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_1 (Dense) (None, 50) 424500
_________________________________________________________________
dense_2 (Dense) (None, 848) 424848
=================================================================
Total params: 849,348
Trainable params: 849,348
Non-trainable params: 0
_________________________________________________________________
'''
Confirmez que le nom du calque du milieu est dense_1 Puis changez de modèle
middle_model = Model(inputs=model.input,
outputs=model.get_layer(layer_name).output)
middle_output = middle_model.predict(data)
middle_model sera une couche avec uniquement la couche d'entrée et la couche de sortie Cela donnera la valeur de la couche intermédiaire à middle_output
La fin