()
| 103 | |
| 104 | |
| 105 | def run_gradient_descent(): |
| 106 | global parameter_vector |
| 107 | # Tune these values to set a tolerance value for predicted output |
| 108 | absolute_error_limit = 0.000002 |
| 109 | relative_error_limit = 0 |
| 110 | j = 0 |
| 111 | while True: |
| 112 | j += 1 |
| 113 | temp_parameter_vector = [0, 0, 0, 0] |
| 114 | for i in range(len(parameter_vector)): |
| 115 | cost_derivative = get_cost_derivative(i - 1) |
| 116 | temp_parameter_vector[i] = ( |
| 117 | parameter_vector[i] - LEARNING_RATE * cost_derivative |
| 118 | ) |
| 119 | if np.allclose( |
| 120 | parameter_vector, |
| 121 | temp_parameter_vector, |
| 122 | atol=absolute_error_limit, |
| 123 | rtol=relative_error_limit, |
| 124 | ): |
| 125 | break |
| 126 | parameter_vector = temp_parameter_vector |
| 127 | print(("Number of iterations:", j)) |
| 128 | |
| 129 | |
| 130 | def test_gradient_descent(): |
no test coverage detected