experimental_experiment.torch_test_helper¶
More complex helpers used in unit tests.
- experimental_experiment.torch_test_helper.check_model_ort(onx: ModelProto, providers: str | List[str] | None = None, dump_file: str | None = None) onnxruntime.InferenceSession [source]¶
Loads a model with onnxruntime.
- Parameters:
onx – ModelProto
providers – list of providers, None fur CPU, cpu for CPU, cuda for CUDA
dump_file – if not empty, dumps the model into this file if an error happened
- Returns:
InferenceSession
- experimental_experiment.torch_test_helper.dummy_llm(cls_name: str | None = None, dynamic_shapes: bool = False) Tuple[torch.nn.Module, Tuple[torch.Tensor, ...]] [source]¶
Creates a dummy LLM for test purposes.
- Parameters:
cls_name – None for whole model or a piece of it
dynamic_shapes – returns dynamic shapes as well
<<<
from experimental_experiment.torch_test_helper import dummy_llm print(dummy_llm())
>>>
(LLM( (embedding): Embedding( (embedding): Embedding(1024, 16) (pe): Embedding(1024, 16) ) (decoder): DecoderLayer( (attention): MultiAttentionBlock( (attention): ModuleList( (0-1): 2 x AttentionBlock( (query): Linear(in_features=16, out_features=16, bias=False) (key): Linear(in_features=16, out_features=16, bias=False) (value): Linear(in_features=16, out_features=16, bias=False) ) ) (linear): Linear(in_features=32, out_features=16, bias=True) ) (feed_forward): FeedForward( (linear_1): Linear(in_features=16, out_features=128, bias=True) (relu): ReLU() (linear_2): Linear(in_features=128, out_features=16, bias=True) ) (norm_1): LayerNorm((16,), eps=1e-05, elementwise_affine=True) (norm_2): LayerNorm((16,), eps=1e-05, elementwise_affine=True) ) ), (tensor([[923, 801, 883, 749, 61, 342, 462, 402, 576, 442, 967, 544, 619, 376, 575, 392, 167, 828, 740, 165, 492, 729, 335, 905, 83, 65, 551, 100, 495, 412]]),))
- experimental_experiment.torch_test_helper.export_to_onnx(model: Any, *args: List[Any], verbose: int = 0, return_builder: bool = False, torch_script: bool = True, target_opset: int = 18, prefix: str | None = None, rename_inputs: bool = False, optimize: str | bool = True, folder: str | None = 'dump_test', export_options: ExportOptions | None = None) Dict[str, str | ModelProto | GraphBuilder] [source]¶
Exports a model to ONNX.
- Parameters:
model – model to export
args – arguments
verbose – verbosity
return_builder – returns the builder
torch_script – export with torch.script as well
target_opset – opset to export into
prefix – prefix to choose to export into
rename_inputs – rename the inputs into
input_{i}
optimize – enable, disable optimizations of pattern to test
folder – where to dump the model, creates it if it does not exist
export_options – see
ExportOptions
- Returns:
dictionary with ModelProto, builder, filenames