Advertisement
Venciity

NN Tuning

Aug 25th, 2019
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.27 KB | None | 0 0
  1. def build_model(learning_rate, hidden_nodes = 64, dropout_rate = 0.2, activation_function = tf.nn.relu):
  2.   model = keras.Sequential([
  3.      layers.Dense(hidden_nodes, activation=activation_function, input_shape=[len(train_dataset.keys())]),
  4.      layers.Dropout(dropout_rate),
  5.      layers.Dense(hidden_nodes, activation=activation_function),
  6.      layers.Dense(1)
  7.   ])
  8.  
  9.   optimizer = tf.keras.optimizers.RMSprop(learning_rate)
  10.  
  11.   model.compile(loss='mean_squared_error',
  12.                 optimizer=optimizer,
  13.                 metrics=['mean_absolute_error', 'mean_squared_error'])
  14.   return model
  15.  
  16.  
  17.  
  18. from keras.wrappers.scikit_learn import KerasRegressor
  19. from sklearn.model_selection import RandomizedSearchCV
  20.  
  21. EPOCHS = 1000
  22.  
  23. learning_rates = [0.001, 0.01, 0.1, 0.2, 0.3]
  24. hidden_nodes = [16, 32, 40, 64, 80]
  25. dropout_rates = [0.1, 0.2, 0.3, 0.4]
  26. activation_functions = [tf.nn.relu, tf.nn.leaky_relu]
  27.  
  28. hyperparameters = dict(learning_rate = learning_rates, hidden_nodes = hidden_nodes, dropout_rate = dropout_rates, activation_function = activation_functions)
  29. hyperparameters
  30.  
  31. model = KerasRegressor(build_fn = build_model, epochs=EPOCHS)
  32. random_search = RandomizedSearchCV(estimator = model, param_distributions = hyperparameters)
  33. random_search.fit(train_dataset, train_labels)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement