diff --git a/backend/flaskApp.py b/backend/flaskApp.py index e3c14b9..5441dbc 100644 --- a/backend/flaskApp.py +++ b/backend/flaskApp.py @@ -140,22 +140,47 @@ def run_upload(): @app.post("/train_upload") def train_upload(): + + def _to_float(x, default): + try: + return float(x) + except (TypeError, ValueError): + return default + + def _to_int(x, default): + try: + return int(x) + except (TypeError, ValueError): + return default + ts = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S") + f"-{int(time.time()*1000)%1000:03d}" model_name = request.args.get("model_name") or f"custom_model-{ts}" image_filter = request.args.get("image_filter") or "_img" mask_filter = request.args.get("mask_filter") or "_masks" base_model = request.args.get("base_model") or "cpsam" - batch_size = request.args.get("batch_size") or 8 - learning_rate = request.args.get("learning_rate") or 5e-5 - n_epochs = request.args.get("n_epochs") or 100 - weight_decay = request.args.get("weight_decay") or 0.1 - normalize = request.args.get("normalize") or True - compute_flows = request.args.get("compute_flows") or False - min_train_masks = request.args.get(" min_train_masks") or 5 - nimg_per_epoch = request.args.get("nimg_per_epoch") or None - rescale = request.args.get("rescale") or False - scale_range = request.args.get("scale_range") or None - channel_axis = request.args.get("channel_axis") or None + batch_size = _to_int(request.args.get("batch_size"), 8) + learning_rate = _to_float(request.args.get("learning_rate"), 5e-5) + n_epochs = _to_int(request.args.get("n_epochs"), 100) + weight_decay = _to_float(request.args.get("weight_decay"), 0.1) + normalize = request.args.get( + "normalize", + default=True, + type=lambda v: str(v).strip().lower() in ("1","true","t","yes","y","on") + ) + compute_flows = request.args.get( + "compute_flows", + default=True, + type=lambda v: str(v).strip().lower() in ("1","true","t","yes","y","on") + ) + min_train_masks = _to_int(request.args.get(" min_train_masks"), 5) + nimg_per_epoch = _to_int(request.args.get("nimg_per_epoch"), None) + rescale = request.args.get( + "rescale", + default=False, + type=lambda v: str(v).strip().lower() in ("1","true","t","yes","y","on") + ) + scale_range = _to_float(request.args.get("scale_range"), None) + channel_axis = _to_int(request.args.get("channel_axis"), None) train_files = request.files.getlist("train_files") test_files = request.files.getlist("test_files") diff --git a/frontend/run.html b/frontend/run.html index b6d54e6..9560c0a 100644 --- a/frontend/run.html +++ b/frontend/run.html @@ -7,6 +7,7 @@
*_img.png、*_masks.png。+ + 暂无可预览的数据,请先开始训练或检查日志输出。 +
+ + +responsive: true 与 maintainAspectRatio: false,
+ 本页样式已自动保证画布自适应容器尺寸。
+