CodeSampleX

Ejemplo

onnxruntime 1.28.0: IOBinding

Muestra verificada para pypi onnxruntime 1.28.0: IOBinding. El contrato se ejecutó en python 3.12 · linux debian/x64 · docker y pasó.

sha256:b3e844654a2e5fedc3043e034200e912288369eec76237d9f979173a5cef819b

Esta red ofrece una sola cosa: una muestra que compila. La ejecutó en un sandbox y guardó el recibo firmado. No califica ni garantiza nada: si el mismo código compila donde estás no es algo que haya medido. Cuántas claves de firma distintas presentaron un recibo de contrato aprobado. Una es solo el autor; más de una significa que alguien más también lo compiló. Una clave se genera sola y no tiene identidad registrada detrás, así que cuenta claves, no personas. MIT-0

Evidencia de ejecución

El entorno declarado y las ejecuciones firmadas se muestran por separado, para que veas exactamente qué ejecutó esta muestra y dónde.

Base de evidencia
Contrato firmado aprobado
Recibos de verificación
1
Claves de firma que lo compilaron
1
Entorno declarado linux 24 · ubuntu · glibc 2.39 x64 pip

Entornos de las ejecuciones de verificación

Entorno Contrato Etapas Ejecución
python 3.12 · linux debian/x64 · docker ed25519:c1973797be207ac4 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · python@1python:3.12-slim@sha256:09f7da3bc104…
2026-09-07

Caso

HOW
Objetivo
verify onnxruntime.IOBinding in pkg:pypi/onnxruntime@1.28.0
Paquetes
Símbolos
  • onnxruntime.IOBinding
Creado
2026-09-07T04:49:35Z

Contrato

  1. assert InferenceSession.io_binding and ort.IOBinding create valid IOBinding instances bound to the session
  2. assert IOBinding.bind_cpu_input binds NumPy arrays to named model inputs
  3. assert IOBinding.bind_output and copy_outputs_to_cpu retrieve model execution results as NumPy arrays
  4. assert IOBinding.bind_output supports pre-allocated output buffer using buffer_ptr
  5. assert IOBinding.get_outputs returns OrtValue instances matching expected inference results
  6. assert IOBinding.clear_binding_inputs and clear_binding_outputs reset bindings, and running without required inputs raises an exception

Archivos

  • PROMPT.md
  • csx.json
  • pyproject.toml
  • requirements.txt
  • spec.json
  • test/contract.py

Descargar el artefacto de código fuente (tar.gz)

Código fuente

PROMPT.md
Clean-room public code sample — generation instructions

Write a brand-new, minimal, self-contained code sample in this clean-room directory.
Do not copy, paraphrase, or reference any existing project source. Work only from this spec.

A csx.json manifest scaffold already exists. Do not recreate it from memory. Preserve its case.goal, packages and symbols; fill its empty case.contract with exact assertions and correct its environment, commands and verifierAdapter for the files you generate.

Goal: verify onnxruntime.IOBinding in pkg:pypi/onnxruntime@1.28.0
Kind: HOW

Use EXACTLY these public packages and versions:
  - pkg:pypi/onnxruntime@1.28.0
Demonstrate these symbols/APIs:
  - onnxruntime.IOBinding

Rules:
  - One focused purpose; the smallest project that proves the goal.
  - Include a contract test (test/contract.*) that runs OFFLINE and exits 0 exactly when the goal behavior works.
  - Pin every dependency with a lockfile so resolution is reproducible.
  - No secrets, credentials, or tokens. No real URLs (only example.com or localhost). No absolute paths.
  - No personal names, emails, company names, or project identifiers of any kind.
  - No binaries and no generated output (node_modules, dist, target, venv, .git, .env).
  - Keep it under 200 files and 256KB packed.
csx.json
{"case":{"caseId":"case:sha256:efceb74cd051c4d4ae2540dd279a60f36db72e2b2d8a5a7e77d8d279c624cab6","contract":["assert InferenceSession.io_binding and ort.IOBinding create valid IOBinding instances bound to the session","assert IOBinding.bind_cpu_input binds NumPy arrays to named model inputs","assert IOBinding.bind_output and copy_outputs_to_cpu retrieve model execution results as NumPy arrays","assert IOBinding.bind_output supports pre-allocated output buffer using buffer_ptr","assert IOBinding.get_outputs returns OrtValue instances matching expected inference results","assert IOBinding.clear_binding_inputs and clear_binding_outputs reset bindings, and running without required inputs raises an exception"],"goal":"verify onnxruntime.IOBinding in pkg:pypi/onnxruntime@1.28.0","kind":"HOW","packages":["pkg:pypi/onnxruntime@1.28.0"],"schemaVersion":1,"symbols":["onnxruntime.IOBinding"]},"contractCommand":["python3","test/contract.py"],"environment":{"arch":"x64","distro":"ubuntu","ecosystem":"pypi","libc":"glibc","libcVersion":"2.39","os":"linux","osVersionBucket":"24","packageManager":"pip","schemaVersion":1},"license":"MIT-0","packages":["pkg:pypi/onnxruntime@1.28.0"],"schemaVersion":1,"subject":"pkg:pypi/onnxruntime@1.28.0","symbols":["onnxruntime.IOBinding"],"verifierAdapter":"python@1"}
pyproject.toml
[project]
name = "verify-onnxruntime-iobinding"
version = "0.1.0"
dependencies = [
    "onnxruntime==1.28.0",
    "numpy==2.2.3",
]
requirements.txt
onnxruntime==1.28.0
numpy==2.2.3
spec.json
{
  "schemaVersion": 1,
  "goal": "verify onnxruntime.IOBinding in pkg:pypi/onnxruntime@1.28.0",
  "kind": "HOW",
  "packages": [
    "pkg:pypi/onnxruntime@1.28.0"
  ],
  "symbols": [
    "onnxruntime.IOBinding"
  ]
}
test/contract.py
import numpy as np
import onnxruntime as ort

MODEL_BYTES = bytes.fromhex(
    "080d120a6373782d73616d706c653a540a0e0a01580a0157120159220341646412096164645f"
    "67726170685a110a0158120c0a0a080112060a000a0208035a110a0157120c0a0a080112060a"
    "000a02080362110a0159120c0a0a080112060a000a02080342040a00100e"
)


def test_io_binding_creation():
    session = ort.InferenceSession(MODEL_BYTES, providers=["CPUExecutionProvider"])
    io_binding = session.io_binding()
    assert io_binding is not None
    io_binding_direct = ort.IOBinding(session)
    assert io_binding_direct is not None


def test_io_binding_cpu_input_and_output():
    session = ort.InferenceSession(MODEL_BYTES, providers=["CPUExecutionProvider"])
    io_binding = session.io_binding()

    x_val = np.array([[1.0, 2.0, 3.0]], dtype=np.float32)
    w_val = np.array([[10.0, 20.0, 30.0]], dtype=np.float32)

    io_binding.bind_cpu_input("X", x_val)
    io_binding.bind_cpu_input("W", w_val)
    io_binding.bind_output("Y")

    session.run_with_iobinding(io_binding)

    outputs = io_binding.copy_outputs_to_cpu()
    assert isinstance(outputs, list) and len(outputs) == 1
    np.testing.assert_allclose(outputs[0], np.array([[11.0, 22.0, 33.0]], dtype=np.float32))


def test_io_binding_preallocated_output_buffer():
    session = ort.InferenceSession(MODEL_BYTES, providers=["CPUExecutionProvider"])
    io_binding = session.io_binding()

    x_val = np.array([[3.0, 5.0, 7.0]], dtype=np.float32)
    w_val = np.array([[2.0, 4.0, 6.0]], dtype=np.float32)
    y_out = np.zeros((1, 3), dtype=np.float32)

    io_binding.bind_cpu_input("X", x_val)
    io_binding.bind_cpu_input("W", w_val)
    io_binding.bind_output(
        name="Y",
        device_type="cpu",
        device_id=0,
        element_type=np.float32,
        shape=y_out.shape,
        buffer_ptr=y_out.ctypes.data,
    )

    session.run_with_iobinding(io_binding)
    np.testing.assert_allclose(y_out, np.array([[5.0, 9.0, 13.0]], dtype=np.float32))


def test_io_binding_get_outputs_ortvalue():
    session = ort.InferenceSession(MODEL_BYTES, providers=["CPUExecutionProvider"])
    io_binding = session.io_binding()

    x_val = np.array([[4.0, 5.0, 6.0]], dtype=np.float32)
    w_val = np.array([[1.0, 1.0, 1.0]], dtype=np.float32)

    io_binding.bind_cpu_input("X", x_val)
    io_binding.bind_cpu_input("W", w_val)
    io_binding.bind_output("Y")

    session.run_with_iobinding(io_binding)

    ort_outputs = io_binding.get_outputs()
    assert len(ort_outputs) == 1
    np.testing.assert_allclose(ort_outputs[0].numpy(), np.array([[5.0, 6.0, 7.0]], dtype=np.float32))


def test_io_binding_clear_and_missing_inputs_raise():
    session = ort.InferenceSession(MODEL_BYTES, providers=["CPUExecutionProvider"])
    io_binding = session.io_binding()

    x_val = np.array([[1.0, 2.0, 3.0]], dtype=np.float32)
    io_binding.bind_cpu_input("X", x_val)
    io_binding.bind_output("Y")

    try:
        session.run_with_iobinding(io_binding)
        assert False, "run_with_iobinding should have raised when required input W was not bound"
    except Exception as exc:
        assert isinstance(exc, Exception)

    io_binding.clear_binding_inputs()
    io_binding.clear_binding_outputs()


def main():
    test_io_binding_creation()
    test_io_binding_cpu_input_and_output()
    test_io_binding_preallocated_output_buffer()
    test_io_binding_get_outputs_ortvalue()
    test_io_binding_clear_and_missing_inputs_raise()
    print("All onnxruntime.IOBinding contract assertions passed.")


if __name__ == "__main__":
    main()

Seeder de origen

anónimo