diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2018-03-02 18:18:35 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2018-03-04 09:56:50 -0500 |
commit | fa07be93463d9ce0262ae383259e68eea625bc4d (patch) | |
tree | ec028add97cd891fe9ebd85b140c1219e062eaaa /klippy/extras/probe.py | |
parent | 7290ed5f73f4c649099fec5b13cd7c3f7a29b2d2 (diff) | |
download | kutter-fa07be93463d9ce0262ae383259e68eea625bc4d.tar.gz kutter-fa07be93463d9ce0262ae383259e68eea625bc4d.tar.xz kutter-fa07be93463d9ce0262ae383259e68eea625bc4d.zip |
mathutil: Move coordinate_descent() to new file
Add a new python file (mathutil.py) and move the coordinate_descent()
code to it.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras/probe.py')
-rw-r--r-- | klippy/extras/probe.py | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/klippy/extras/probe.py b/klippy/extras/probe.py index 70cc2a1d..4113a263 100644 --- a/klippy/extras/probe.py +++ b/klippy/extras/probe.py @@ -3,7 +3,6 @@ # Copyright (C) 2017-2018 Kevin O'Connor <kevin@koconnor.net> # # This file may be distributed under the terms of the GNU GPLv3 license. -import logging import pins, homing class PrinterProbe: @@ -137,39 +136,5 @@ class ProbePointsHelper: if success: self.callback.finalize(self.results) -# Helper code that implements coordinate descent -def coordinate_descent(adj_params, params, error_func): - # Define potential changes - params = dict(params) - dp = {param_name: 1. for param_name in adj_params} - # Calculate the error - best_err = error_func(params) - - threshold = 0.00001 - rounds = 0 - - while sum(dp.values()) > threshold and rounds < 10000: - rounds += 1 - for param_name in adj_params: - orig = params[param_name] - params[param_name] = orig + dp[param_name] - err = error_func(params) - if err < best_err: - # There was some improvement - best_err = err - dp[param_name] *= 1.1 - continue - params[param_name] = orig - dp[param_name] - err = error_func(params) - if err < best_err: - # There was some improvement - best_err = err - dp[param_name] *= 1.1 - continue - params[param_name] = orig - dp[param_name] *= 0.9 - logging.info("Coordinate descent best_err: %s rounds: %d", best_err, rounds) - return params - def load_config(config): return PrinterProbe(config) |