furiosa.optimizer.frontend.onnx.transformer.experimental package
Submodules
furiosa.optimizer.frontend.onnx.transformer.experimental.eliminate_detection_postprocess module
- class furiosa.optimizer.frontend.onnx.transformer.experimental.eliminate_detection_postprocess.EliminateSSDDetectionPostprocess(ssd_outputs: List)
Bases:
furiosa.optimizer.interfaces.transformer.Transformer
from: Softmax -> graph_output to: graph_output
Assume NCHW Input
- transform(model: onnx.onnx_ml_pb2.ModelProto) onnx.onnx_ml_pb2.ModelProto
furiosa.optimizer.frontend.onnx.transformer.experimental.embedding_bag_porting module
- class furiosa.optimizer.frontend.onnx.transformer.experimental.embedding_bag_porting.EmbeddingBagPattern(model, name_nodes=True)
Bases:
furiosa.optimizer.frontend.onnx.transformer.ONNXTransformer
Apply to the DLRM model only. Transform onnx-exported EmbeddingBag graph to be equivalent to torch.EmbeddingBag If not applied on DLRM model, onnx simplifier doesn’t work because transformed embeddingbag can’t handle empty bag. https://github.com/pytorch/pytorch/blob/55d479aca5e959c5f2fe3089e162db710bb7632d/torch/onnx/symbolic_opset11.py#L836-L902
- check_condition_3(node: onnx.onnx_ml_pb2.NodeProto) bool
- pattern_condition_checker(nodes_to_check: Iterable[onnx.onnx_ml_pb2.NodeProto]) bool
- pattern_matching(base_node)
- class furiosa.optimizer.frontend.onnx.transformer.experimental.embedding_bag_porting.EmbeddingBagPorting(batch_size: Optional[int] = 128)
Bases:
furiosa.optimizer.interfaces.transformer.Transformer
- transform(model: onnx.onnx_ml_pb2.ModelProto) onnx.onnx_ml_pb2.ModelProto
furiosa.optimizer.frontend.onnx.transformer.experimental.fuse_div_for_bert module
- class furiosa.optimizer.frontend.onnx.transformer.experimental.fuse_div_for_bert.FuseDivForBert
Bases:
furiosa.optimizer.interfaces.transformer.Transformer
Only works for some BERT Models
- transform(model: onnx.onnx_ml_pb2.ModelProto) onnx.onnx_ml_pb2.ModelProto
- transform_matmul_add(model)
furiosa.optimizer.frontend.onnx.transformer.experimental.reify_conv_for_bert module
- class furiosa.optimizer.frontend.onnx.transformer.experimental.reify_conv_for_bert.ReifyConvForBert
Bases:
furiosa.optimizer.interfaces.transformer.Transformer
from: MatMul + Add to: Conv
Assume NCHW Input
- transform(model: onnx.onnx_ml_pb2.ModelProto) onnx.onnx_ml_pb2.ModelProto
- transform_matmul_add(model)