Download code/teacher_run.py from Sudabaka/SFDP-Siamese-NET-AI: direct link, hf CLI and curl.
- Browser
- Download file 1.56 kB
-
https://huggingface.co/Sudabaka/SFDP-Siamese-NET-AI/resolve/main/code/teacher_run.py
- Command line
-
hf download hf://Sudabaka/SFDP-Siamese-NET-AI/code/teacher_run.py
-
curl -L -o teacher_run.py https://huggingface.co/Sudabaka/SFDP-Siamese-NET-AI/resolve/main/code/teacher_run.py
1.56 kB
| # -*- coding: utf-8 -*- | |
| """教师打标的轻量入口:只做目录扫描与 SfdpTeacher 调用,不加载 torch / cv2。 | |
| 避免与训练同时启动时因 torch DLL 占用内存触发 WinError 1455(页面文件太小)。 | |
| """ | |
| import os | |
| import subprocess | |
| import sys | |
| TILES = r"D:\sfdp-ai\siamese\data\tiles" | |
| LABELS = r"D:\sfdp-ai\siamese\data\labels" | |
| TEACHER = r"D:\sfdp-ai\bin\SfdpTeacher.exe" | |
| def main(): | |
| os.makedirs(LABELS, exist_ok=True) | |
| print("SCAN_START", TILES, flush=True) | |
| dirs = sorted(d for d in os.listdir(TILES) if os.path.isdir(os.path.join(TILES, d))) | |
| print("SCAN_DIRS", len(dirs), flush=True) | |
| todo = [] | |
| for i, d in enumerate(dirs): | |
| if not os.path.exists(os.path.join(LABELS, d + ".csv")): | |
| todo.append(d) | |
| if (i + 1) % 2000 == 0: | |
| print("SCAN", i + 1, "/", len(dirs), flush=True) | |
| print("DIRS", len(dirs), "TODO", len(todo), flush=True) | |
| for i, d in enumerate(todo): | |
| try: | |
| subprocess.run( | |
| [TEACHER, os.path.join(TILES, d), os.path.join(LABELS, d + ".csv"), | |
| "--mode", "uhd", "--crop", "128", "--per-pair", "4", "--limit", "0"], | |
| stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, timeout=300, | |
| ) | |
| except Exception as e: | |
| print("SKIP", d, repr(e), flush=True) | |
| if (i + 1) % 10 == 0: | |
| print("PROGRESS", i + 1, "/", len(todo), flush=True) | |
| print("DONE", flush=True) | |
| if __name__ == "__main__": | |
| main() | |