diff --git a/openpilot/sunnypilot/modeld_v2/SConscript b/openpilot/sunnypilot/modeld_v2/SConscript index 81affc625a..daaa199ea9 100644 --- a/openpilot/sunnypilot/modeld_v2/SConscript +++ b/openpilot/sunnypilot/modeld_v2/SConscript @@ -82,18 +82,3 @@ if os.path.isfile(supercombo_onnx): compile_combined('supercombo', f'--supercombo-onnx {supercombo_onnx}', 'driving_combined_supercombo_tinygrad.pkl') - -if PC: - inputs = tinygrad_files + [File(Dir("#openpilot/sunnypilot/modeld_v2").File("install_models_pc.py").abspath)] - outputs = [] - model_dir = Dir("models").abspath - cmd = f'python3 {Dir("#openpilot/sunnypilot/modeld_v2").abspath}/install_models_pc.py {model_dir}' - - for model_name in ['supercombo', 'driving_vision', 'driving_off_policy', 'driving_on_policy', 'driving_policy']: - if File(f"models/{model_name}.onnx").exists(): - inputs.append(File(f"models/{model_name}.onnx")) - inputs.append(File(f"models/{model_name}_tinygrad.pkl")) - outputs.append(File(f"models/{model_name}_metadata.pkl")) - if outputs: - lenv.Command(outputs, inputs, cmd) - diff --git a/openpilot/sunnypilot/modeld_v2/install_models_pc.py b/openpilot/sunnypilot/modeld_v2/install_models_pc.py deleted file mode 100755 index 7bc2f4797c..0000000000 --- a/openpilot/sunnypilot/modeld_v2/install_models_pc.py +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env python3 -import sys -import shutil -import pickle -import codecs -from pathlib import Path - -from openpilot.common.hardware.hw import Paths -from openpilot.sunnypilot.modeld_v2.get_model_metadata import MetadataOnnxPBParser, get_name_and_shape, get_metadata_value_by_name - - -def generate_metadata_pkl(model_path, output_path): - try: - model = MetadataOnnxPBParser(model_path).parse() - output_slices = get_metadata_value_by_name(model, 'output_slices') - if not output_slices: - return False - metadata = { - 'model_checkpoint': get_metadata_value_by_name(model, 'model_checkpoint'), - 'output_slices': pickle.loads(codecs.decode(output_slices.encode(), "base64")), - 'input_shapes': dict(get_name_and_shape(x) for x in model["graph"]["input"]), - 'output_shapes': dict(get_name_and_shape(x) for x in model["graph"]["output"]), - } - with open(output_path, 'wb') as f: - pickle.dump(metadata, f) - return True - except Exception: - return False - - -def install_models(model_dir): - model_dir = Path(model_dir) - models = ["driving_off_policy", "driving_on_policy", "driving_vision"] - found_models = [] - - for model in models: - if (model_dir / f"{model}.onnx").exists(): - found_models.append(model) - - if not found_models: - return - - try: - custom_name = input(f"Found models ({', '.join(found_models)}). Enter model short name (e.g. wmiv4): ").strip() - except EOFError: - return - - if not custom_name: - print("No name provided, skipping installation.") - return - - dest_dir = Path(Paths.model_root()) - dest_dir.mkdir(parents=True, exist_ok=True) - - for model in found_models: - onnx_path = model_dir / f"{model}.onnx" - tinygrad_pkl = model_dir / f"{model}_tinygrad.pkl" - metadata_pkl = model_dir / f"{model}_metadata.pkl" - - if not metadata_pkl.exists(): - generate_metadata_pkl(onnx_path, metadata_pkl) - - dest_tinygrad = dest_dir / f"{model}_{custom_name}_tinygrad.pkl" - dest_metadata = dest_dir / f"{model}_{custom_name}_metadata.pkl" - - if tinygrad_pkl.exists(): - shutil.move(str(tinygrad_pkl), str(dest_tinygrad)) - if metadata_pkl.exists(): - shutil.move(str(metadata_pkl), str(dest_metadata)) - -if __name__ == "__main__": - if len(sys.argv) < 2: - print("Usage: install_models_pc.py ") - sys.exit(1) - install_models(sys.argv[1])