model = Dropout(0.2)(model) model = Dense(k, activation='relu')(model) model = Dropout(0.5)(model) model = Dense(int(k/4), activation='relu')(model) model = Dropout(0.5)(model) model = Dense(int(k/16), activation='relu')(model) model = Dropout(0.5)(model) output = Dense(1, activation='linear')(model) model = Model([input1, input2], output) model.compile(loss='mse', optimizer='adam', metrics=['mae', 'acc']) SVG(model_to_dot(model).create(prog='dot', format='svg')) train, test = cross_validation.train_test_split(data, test_size=0.1, random_state=1) x_train = [train.uid, train.sid] y_train = train.rating x_test = [test.uid, test.sid] y_test = test.rating history = model.fit(x_train, y_train, batch_size=500, epochs=20, validation_data=(x_test, y_test)) save_path = './save/ml-deep/' model.save(save_path + 'model.h5') with open(save_path + 'history.pkl', 'wb') as file_history: pickle.dump(history.history, file_history) pd.DataFrame(history.history, columns=['loss', 'val_loss']).head(20).transpose() plot(history.history['loss'], label='loss') plot(history.history['val_loss'], label='val_loss') plot(history.history['val_mean_absolute_error'], label='val_mae') plot(history.history['val_acc'], label='val_acc') plt.legend() plt.ylim(0, 3)
test_size=0.1, random_state=1) x_train = [train.uid, train.sid] y_train = train.rating x_test = [test.uid, test.sid] y_test = test.rating save_path = './save/bgm-deep/' checkpoint = ModelCheckpoint(save_path + 'best_model.h5', monitor='val_loss', verbose=1, save_best_only=True, mode='min') callbacks_list = [checkpoint] history = model.fit(x_train, y_train, batch_size=1000, epochs=20, validation_data=(x_test, y_test), callbacks=callbacks_list) with open(save_path + 'history.pkl', 'wb') as file_history: pickle.dump(history.history, file_history) pd.DataFrame( history.history, columns=['loss', 'val_loss', 'val_mean_absolute_error', 'val_acc']).head(20).transpose() plot(history.history['loss'], label='loss') plot(history.history['val_loss'], label='val_loss') plot(history.history['val_mean_absolute_error'], label='val_mae') plot(history.history['val_acc'], label='val_acc') plt.legend() plt.ylim(0, 3)