import os import subprocess def convert_onnx_to_fp16_corrected(input_dir): # List all files in the input directory files = os.listdir(input_dir) # Filter out files with the .onnx extension onnx_files = [file for file in files if file.endswith('.onnx')] # Iterate over each ONNX file to convert it to FP16 for onnx_file in onnx_files: # Split the file name to insert '.fp16' before the last underscore parts = onnx_file.rsplit('_', 1) if len(parts) == 2: # If there is at least one underscore, insert '.fp16' before the last part output_model_name = f"{parts[0]}.fp16_{parts[1]}" else: # If there's no underscore, just replace '.onnx' with '.fp16.onnx' output_model_name = onnx_file.replace('.onnx', '.fp16.onnx') # Construct the command to run the conversion script command = [ 'python3', 'convert_to_fp16.py', '--input_model', os.path.join(input_dir, onnx_file), '--output_model', os.path.join(input_dir, output_model_name) ] # Execute the command subprocess.run(command, check=True) if __name__ == '__main__': # Assuming the current directory is the input directory input_dir = os.getcwd() convert_onnx_to_fp16_corrected(input_dir)