|
""" |
|
ONNX iMatrix 日本語量子化 - クイックスタート例 |
|
|
|
このスクリプトは、ノートブックの主要機能を簡潔に実行する例です。 |
|
""" |
|
|
|
import os |
|
import numpy as np |
|
import onnxruntime as ort |
|
from onnxruntime.quantization import quantize_dynamic, QuantType |
|
from transformers import MarianTokenizer |
|
from datasets import load_dataset |
|
|
|
def quick_quantize_example(): |
|
"""クイック量子化の例""" |
|
|
|
print("🚀 ONNX iMatrix 日本語量子化 - クイックスタート") |
|
|
|
|
|
model_path = "your_model.onnx" |
|
|
|
if not os.path.exists(model_path): |
|
print("⚠️ モデルファイルが見つかりません。パスを確認してください。") |
|
return |
|
|
|
|
|
quantized_path = "quantized_model.onnx" |
|
|
|
try: |
|
print("🔄 動的量子化を実行中...") |
|
quantize_dynamic( |
|
model_input=model_path, |
|
model_output=quantized_path, |
|
weight_type=QuantType.QUInt8, |
|
per_channel=True, |
|
reduce_range=False |
|
) |
|
print("✅ 動的量子化完了!") |
|
|
|
|
|
original_size = os.path.getsize(model_path) / 1024 / 1024 |
|
quantized_size = os.path.getsize(quantized_path) / 1024 / 1024 |
|
compression_ratio = original_size / quantized_size |
|
|
|
print(f"📊 結果:") |
|
print(f" 元ファイル: {original_size:.1f} MB") |
|
print(f" 量子化後: {quantized_size:.1f} MB") |
|
print(f" 圧縮率: {compression_ratio:.1f}x") |
|
|
|
except Exception as e: |
|
print(f"❌ エラー: {e}") |
|
|
|
if __name__ == "__main__": |
|
quick_quantize_example() |
|
|