TorchLean API

NN.Verification.Robustness.Digits

Digits certified robustness #

Certified accuracy for a linear classifier on sklearn's digits dataset.

Workflow:

Run: lake exe verify -- digits lake exe verify -- digits --eps=0.02 --max=360 lake exe verify -- digits --float32-mode ieee754exec --eps=0.02 lake exe verify -- digits-train-certify --epochs=50 --eps=0.02 --max=100

Regenerate assets: python3 scripts/verification/robustness/train_digits_linear.py

Flattened input dimension for sklearn digits (8×8).

Instances For

    Number of classes (digits 0..9).

    Instances For

      Weight shape for a linear classifier y = Wx + b (10×64).

      Instances For

        Bias shape for a linear classifier (10).

        Instances For

          Input shape (64).

          Instances For

            Output/logit shape (10).

            Instances For

              Parameter shapes list used by the compiled TorchLean program ([W, b]).

              Instances For

                Bundled sklearn-digits linear classifier weights.

                Instances For

                  Bundled sklearn-digits test set.

                  Instances For

                    Python exporter used by the train-then-certify command.

                    Instances For

                      CLI options for the digits certified-accuracy workflow.

                      • weights : String

                        Weights JSON path (PyTorch export).

                      • dataset : String

                        Dataset JSON path (PyTorch export).

                      • eps : Float

                        L∞ perturbation radius around each input example.

                      • max :

                        Max number of examples to evaluate (for local checks).

                      Instances For

                        Options for the train → compile → certify report command.

                        • certify : DigitsOpts

                          Lean-side certification options after Python exports the model and dataset.

                        • script : String

                          Python trainer script path.

                        • seed :

                          Reproducibility seed forwarded to the trainer.

                        • epochs :

                          Number of Python training epochs.

                        • batch :

                          Python trainer batch size.

                        • lr : Float

                          Python trainer learning rate.

                        • testSize : Float

                          Test split fraction used by the trainer.

                        • maxTest :

                          Number of test examples exported by the trainer.

                        Instances For

                          Usage string printed on --help / -h.

                          Instances For

                            Parse CLI args into DigitsOpts (returns usage as the error message on --help).

                            Instances For

                              Parse the combined trainer/certifier CLI for digits-train-certify.

                              Instances For

                                Trainer command-line arguments generated from TrainCertifyOpts.

                                Instances For

                                  TorchLean program for the linear classifier y = Wx + b.

                                  Instances For

                                    Load linear classifier weights exported from PyTorch into a typed LinearSpec.

                                    Instances For

                                      Load the digits test dataset exported from Python (JSON).

                                      Instances For

                                        Running counters for the digits certified-accuracy workflow.

                                        • total :

                                          Number of examples checked.

                                        • nominalOk :

                                          Number of clean examples classified correctly by the exported model.

                                        • ibpOk :

                                          Number of examples certified by interval bound propagation.

                                        • crownOk :

                                          Number of examples certified by the affine CROWN pass.

                                        Instances For

                                          Run the certified-accuracy evaluation once, under a chosen scalar backend α.

                                          This compiles the linear classifier to the verifier IR, then checks each example's L∞ box using IBP and a simple affine pass.

                                          Instances For

                                            CLI entry point for the digits certified-robustness workflow.

                                            This is wired into lake exe verify -- digits.

                                            Instances For

                                              Train a fresh digits classifier, compile it through the TorchLean verifier path, and certify it.

                                              The Python trainer is an artifact producer only. Lean still parses the exported JSON, compiles the TorchLean program to verifier IR, runs IBP and affine CROWN bounds, and prints the certification report from the checked artifacts.

                                              Instances For