Guest User

Untitled

a guest
Sep 20th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. def model(X, Y, layers_dims, learning_rate=0.01, num_iterations=1000,
  2. print_cost=True, hidden_layers_activation_fn="relu",
  3. initialization_method="he"):
  4. np.random.seed(1)
  5.  
  6. # initialize cost list
  7. cost_list = []
  8.  
  9. # initialize parameters
  10. if initialization_method == "zeros":
  11. parameters = initialize_parameters_zeros(layers_dims)
  12. elif initialization_method == "random":
  13. parameters = initialize_parameters_random(layers_dims)
  14. else:
  15. parameters = initialize_parameters_he_xavier(
  16. layers_dims, initialization_method)
  17.  
  18. # iterate over num_iterations
  19. for i in range(num_iterations):
  20. # iterate over L-layers to get the final output and the cache
  21. AL, caches = L_model_forward(
  22. X, parameters, hidden_layers_activation_fn)
  23.  
  24. # compute cost to plot it
  25. cost = compute_cost(AL, Y)
  26.  
  27. # iterate over L-layers backward to get gradients
  28. grads = L_model_backward(AL, Y, caches, hidden_layers_activation_fn)
  29.  
  30. # update parameters
  31. parameters = update_parameters(parameters, grads, learning_rate)
  32.  
  33. # append each 100th cost to the cost list
  34. if (i + 1) % 100 == 0 and print_cost:
  35. print("The cost after {} iterations is: {}".format(i + 1, cost))
  36.  
  37. if i % 100 == 0:
  38. cost_list.append(cost)
  39.  
  40. # plot the cost curve
  41. plt.figure(figsize=(12, 8))
  42. plt.plot(cost_list)
  43. plt.xlabel("Iterations (per hundreds)", fontsize=14)
  44. plt.ylabel("Cost", fontsize=14)
  45. plt.title(
  46. "Cost curve: learning rate = {} and {} initialization method".format(
  47. learning_rate, initialization_method), y=1.05, fontsize=16)
  48.  
  49. return parameters
Add Comment
Please, Sign In to add comment