POTATR ONNX
Self-contained serving repo for the Kensho POTATR v1.1 page-level table extraction model (Page-Object Table Transformer, DAS 2026), exported to ONNX. MIT end to end: model, code, and weights.
Provenance
potatr.onnxis exported fromkensho/POTATR-v1.1-PubPOTATR-v1.1-Pub.safetensorsat upstream commit4f853618bb4393a191ac1cd45ae86e2774b37c3a(115.8 MB, MIT).- Export recipe:
torch.onnx.export, opset 18, torchscript exporter, torch 2.15 CPU, wrapper returning(pred_node_logits, pred_boxes, pred_edge_logits)— seemanifest.json. No graph surgery, no custom ops. - Parity (torch vs ORT CPU): max abs diff 1e-6..6e-5 over 1000x773, 1000x1000 and 800x600 canvases — float32 roundoff. ORT ~340 ms/page CPU.
- Accuracy: paper reports GriTS_Con 0.964 on PubTables-v2 Single Pages; independent torch-side gate on 39 JATS-derived tables (8 papers, physics/math-heavy) scored micro GriTS-Con F1 0.900, TEDS 0.873.
Serving (bobine table slot candidate)
Input image: [1,3,H,W] float32, RGB, longest side resized to 1000
(PIL default resample, matching the reference eval transform), normalized
with ImageNet mean/std. Dynamic H and W axes — any canvas runs in one repo.
Outputs:
pred_node_logits[1,250,17]— 16 object classes + no-object (table, rows, columns, headers, spanning cells, captions, footers, rotated variants).pred_boxes[1,250,4]— normalized(cx,cy,h,w), orig-canvas scale.pred_edge_logits[1,250,250,2]— table↔object edge classes.
Page words ([{bbox, text, block_num, line_num, span_num}]) are consumed
downstream by the post-processor for cell text — they are NOT a network
input. Reference implementation: kensho-technologies/POTATR
(potatr.inference.run_on_page, postprocess.potatr_outputs_to_tables_cells).