Open3

LaMa ONNX

PINTOPINTO
https://huggingface.co/Carve/LaMa-ONNX/resolve/main/lama_fp32.onnx?download=true

pip show onnx2tf spo4onnx

Name: onnx2tf
Version: 1.26.2

Name: spo4onnx
Version: 1.0.5


onnxsim lama_fp32.onnx lama_fp32.onnx \
--overwrite-input-shape "image:1,3,512,512" "mask:1,1,512,512"

ONNXSIM_FIXED_POINT_ITERS=10000 spo4onnx -if lama_fp32.onnx
PINTOPINTO
  • Before onnxsim
ssc4onnx -if lama_fp32.onnx

┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ OP Type                ┃ OPs        ┃ Sizes      ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Add                    │ 253        │ 0.0B       │
│ BatchNormalization     │ 75         │ 300.3KiB   │
│ Cast                   │ 782        │ 21.4KiB    │
│ Clip                   │ 1          │ 0.0B       │
│ Concat                 │ 1,360      │ 32.3KiB    │
│ Constant               │ 7,054      │ 56.8KiB    │
│ ConstantOfShape        │ 98         │ 784.0B     │
│ Conv                   │ 222        │ 188.4MiB   │
│ ConvTranspose          │ 3          │ 5.9MiB     │
│ Cos                    │ 144        │ 0.0B       │
│ Div                    │ 432        │ 0.0B       │
│ Einsum                 │ 216        │ 12.2KiB    │
│ Gather                 │ 396        │ 9.6KiB     │
│ MatMul                 │ 216        │ 0.0B       │
│ Mul                    │ 292        │ 0.0B       │
│ Neg                    │ 36         │ 0.0B       │
│ Pad                    │ 98         │ 5.4KiB     │
│ Range                  │ 180        │ 0.0B       │
│ Relu                   │ 152        │ 0.0B       │
│ Reshape                │ 1,348      │ 31.6KiB    │
│ Shape                  │ 1,188      │ 0.0B       │
│ Sigmoid                │ 1          │ 0.0B       │
│ Sin                    │ 144        │ 0.0B       │
│ Slice                  │ 1,322      │ 0.0B       │
│ Sqrt                   │ 144        │ 0.0B       │
│ Squeeze                │ 72         │ 0.0B       │
│ Sub                    │ 109        │ 0.0B       │
│ Transpose              │ 638        │ 54.4KiB    │
│ Unsqueeze              │ 504        │ 0.0B       │
│ ---------------------- │ ---------- │ ---------- │
│ Total number of OPs    │ 17,480     │            │
│ ---------------------- │ ---------- │ ---------- │
│ Total params           │ 48.6M      │            │
│ ====================== │ ========== │ ========== │
│ Model Size             │ 198.4MiB   │ 194.8MiB   │
└────────────────────────┴────────────┴────────────┘
INFO: file: lama_fp32.onnx
INFO: producer: pytorch 2.3.0
INFO: opset: 17
INFO: input_name.1: image shape: ['batch', 3, 512, 512] dtype: float32
INFO: input_name.2: mask shape: ['batch', 1, 512, 512] dtype: float32
INFO: output_name.1: output shape: ['batch', 3, 512, 512] dtype: float32
INFO: Finish!
  • After onnxsim
ssc4onnx -if lama_fp32.onnx

┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ OP Type                ┃ OPs        ┃ Sizes      ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Add                    │ 252        │ 280.0B     │
│ BatchNormalization     │ 75         │ 300.3KiB   │
│ Cast                   │ 315        │ 8.6KiB     │
│ Clip                   │ 1          │ 8.0B       │
│ Concat                 │ 954        │ 28.0KiB    │
│ Conv                   │ 222        │ 188.4MiB   │
│ ConvTranspose          │ 3          │ 5.9MiB     │
│ Cos                    │ 140        │ 0.0B       │
│ Div                    │ 427        │ 308.0B     │
│ Einsum                 │ 216        │ 108.2KiB   │
│ Gather                 │ 387        │ 12.4KiB    │
│ MatMul                 │ 216        │ 80.5KiB    │
│ Mul                    │ 284        │ 564.0B     │
│ Neg                    │ 36         │ 0.0B       │
│ Pad                    │ 77         │ 9.0KiB     │
│ Range                  │ 175        │ 1.9KiB     │
│ Relu                   │ 152        │ 0.0B       │
│ Reshape                │ 854        │ 20.3KiB    │
│ Shape                  │ 774        │ 0.0B       │
│ Sigmoid                │ 1          │ 0.0B       │
│ Sin                    │ 140        │ 0.0B       │
│ Slice                  │ 848        │ 21.0KiB    │
│ Sqrt                   │ 140        │ 0.0B       │
│ Squeeze                │ 72         │ 576.0B     │
│ Sub                    │ 109        │ 4.0B       │
│ Transpose              │ 468        │ 41.3KiB    │
│ Unsqueeze              │ 459        │ 3.6KiB     │
│ ---------------------- │ ---------- │ ---------- │
│ Total number of OPs    │ 7,797      │            │
│ ---------------------- │ ---------- │ ---------- │
│ Total params           │ 48.7M      │            │
│ ====================== │ ========== │ ========== │
│ Model Size             │ 197.2MiB   │ 194.9MiB   │
└────────────────────────┴────────────┴────────────┘
INFO: file: lama_fp32.onnx
INFO: producer: pytorch 2.3.0
INFO: opset: 17
INFO: input_name.1: image shape: [1, 3, 512, 512] dtype: float32
INFO: input_name.2: mask shape: [1, 1, 512, 512] dtype: float32
INFO: output_name.1: output shape: ['batch', 3, 512, 512] dtype: float32
  • After spo4onnx
ONNXSIM_FIXED_POINT_ITERS=10000 spo4onnx -if lama_fp32.onnx

INFO: Optimization of graph output shape in progress.
INFO: onnxsim==0.4.30 being installed.
INFO: Model optimization in progress. If there are thousands of OPs, it will take several minutes.
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 8/8 [20:30<00:00, 153.78s/it]
INFO: The version of onnxsim is being restored.
┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┓
┃                        ┃ Original Model   ┃ Simplified Model ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━┩
│ Add                    │ 252              │ 217              │
│ BatchNormalization     │ 75               │ 75               │
│ Cast                   │ 315              │ 0                │
│ Clip                   │ 1                │ 1                │
│ Concat                 │ 954              │ 110              │
│ Conv                   │ 222              │ 222              │
│ ConvTranspose          │ 3                │ 3                │
│ Cos                    │ 140              │ 0                │
│ Div                    │ 427              │ 252              │
│ Einsum                 │ 216              │ 216              │
│ Gather                 │ 387              │ 72               │
│ MatMul                 │ 216              │ 216              │
│ Mul                    │ 284              │ 4                │
│ Neg                    │ 36               │ 36               │
│ Pad                    │ 77               │ 77               │
│ Range                  │ 175              │ 0                │
│ Relu                   │ 152              │ 152              │
│ Reshape                │ 854              │ 432              │
│ Shape                  │ 774              │ 0                │
│ Sigmoid                │ 1                │ 1                │
│ Sin                    │ 140              │ 0                │
│ Slice                  │ 848              │ 144              │
│ Sqrt                   │ 140              │ 0                │
│ Squeeze                │ 72               │ 72               │
│ Sub                    │ 109              │ 109              │
│ Transpose              │ 468              │ 468              │
│ Unsqueeze              │ 459              │ 144              │
│ ---------------------- │ ---------------- │ ---------------- │
│ Total number of OPs    │ 7,797            │ 3,023            │
│ ====================== │ ================ │ ================ │
│ Model Size             │ 197.2MiB         │ 195.7MiB         │
└────────────────────────┴──────────────────┴──────────────────┘
INFO: Save onnx to: lama_fp32.onnx