fix calculation logic, fix api endpoint
This commit is contained in:
@@ -691,13 +691,12 @@ def _predict_folder_impl(
|
||||
effective_top_by_length = False
|
||||
selected_topk = selected_topk_by_weight
|
||||
preds_g_topk = [float(it["predicted_weight_g"]) for it in selected_topk]
|
||||
use_max_instead_of_mean = len(candidates_for_avg) < 5
|
||||
# Always arithmetic mean over selected top-K (matches _topk_mean_prediction_g_for_display
|
||||
# and the printed top{k}_avg= line). Do not use max when N<5 — that made pred_weight_g
|
||||
# disagree with "top{k}_avg by length" in logs.
|
||||
use_max_instead_of_mean = False
|
||||
if preds_g_topk:
|
||||
avg_g_topk = (
|
||||
float(np.max(preds_g_topk))
|
||||
if use_max_instead_of_mean
|
||||
else float(np.mean(preds_g_topk))
|
||||
)
|
||||
avg_g_topk = float(np.mean(preds_g_topk))
|
||||
else:
|
||||
avg_g_topk = float(avg_g_all)
|
||||
num_used_for_avg = len(selected_topk)
|
||||
@@ -1483,7 +1482,6 @@ def main() -> None:
|
||||
)
|
||||
if args.remove_outliers and summary.get("num_outliers_removed", 0) > 0:
|
||||
print(f"Outliers removed: {summary['num_outliers_removed']} (method={args.outlier_method}, field={args.outlier_field})")
|
||||
top_label = _summary_top_label(summary, args.top_k, args.top_by_length)
|
||||
tk = int(summary.get("top_k") or args.top_k)
|
||||
topk_g = summary.get("avg_topk_mean_pred_g")
|
||||
topk_sel = summary.get("avg_topk_mean_pred_selection") or "pred"
|
||||
@@ -1492,8 +1490,9 @@ def main() -> None:
|
||||
by = "length" if topk_sel == "by_length" else "pred"
|
||||
topk_extra = f" | top{tk}_avg={float(topk_g):.2f} g by {by}"
|
||||
mcol = _mean_column_g_for_log(summary)
|
||||
# First column is mean over ALL post-filter candidates (not top-K); do not label as top-K.
|
||||
print(
|
||||
f"Average predicted weight {top_label}: "
|
||||
f"Mean all candidates (after filters): "
|
||||
f"{mcol:.2f} g, {mcol / 1000.0:.4f} kg{topk_extra}"
|
||||
)
|
||||
_print_max_weight_after_filter(summary)
|
||||
|
||||
Reference in New Issue
Block a user