keras簡單的去噪自編碼器程式碼和各種型別自編碼器程式碼
阿新 • • 發佈:2019-02-05
start = time() from keras.models import Sequential from keras.layers import Dense, Dropout,Input from keras.layers import Embedding from keras.layers import Conv1D, GlobalAveragePooling1D, MaxPooling1D from keras import layers from keras.models import Model # Parameters for denoising autoencoder nb_visible = 120 nb_hidden = 64 batch_size = 16 # Build autoencoder model input_img = Input(shape=(nb_visible,)) encoded = Dense(nb_hidden, activation='relu')(input_img) decoded = Dense(nb_visible, activation='sigmoid')(encoded) autoencoder = Model(input=input_img, output=decoded) autoencoder.compile(loss='mean_squared_error',optimizer='adam',metrics=['mae']) autoencoder.summary() # Train ### 加一個early_stooping import keras early_stopping = keras.callbacks.EarlyStopping( monitor='val_loss', min_delta=0.0001, patience=5, verbose=0, mode='auto' ) autoencoder.fit(X_train_np, y_train_np, nb_epoch=50, batch_size=batch_size , shuffle=True, callbacks = [early_stopping],verbose = 1,validation_data=(X_test_np, y_test_np)) # Evaluate evaluation = autoencoder.evaluate(X_test_np, y_test_np, batch_size=batch_size , verbose=1) print('val_loss: %.6f, val_mean_absolute_error: %.6f' % (evaluation[0], evaluation[1])) end = time() print('耗時:'+str((end-start)/60))