Files
AI-Red-Teaming-CSCD94/sparsity/JSMA.ipynb
T
2026-07-26 23:12:07 -04:00

17 KiB

In [1]:
import torch
import torch.nn as nn
import torch.nn.functional as F
import numpy as np
import matplotlib.pyplot as plt
from pathlib import Path
import warnings
warnings.filterwarnings('ignore')

from htb_ai_library.core import set_reproducibility
from htb_ai_library.data import get_mnist_loaders
from htb_ai_library.models import SimpleLeNet
from htb_ai_library.training import train_model
from htb_ai_library.utils import save_model, load_model
from htb_ai_library.visualization import use_htb_style

use_htb_style()
set_reproducibility(1337)

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print(f"Using device: {device}")

output_dir = Path('output')
output_dir.mkdir(exist_ok=True)
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Cell In[1], line 10
      7 import warnings
      8 warnings.filterwarnings('ignore')
---> 10 from htb_ai_library.core import set_reproducibility
     11 from htb_ai_library.data import get_mnist_loaders
     12 from htb_ai_library.models import SimpleLeNet

File ~/.conda/envs/ai/lib/python3.11/site-packages/htb_ai_library/__init__.py:16
      6 from .core import (
      7     set_reproducibility,
      8     save_model,
   (...)     12     HTB_PALETTE, get_color, get_color_palette
     13 )
     15 # data subpackage
---> 16 from .data import (
     17     get_mnist_loaders,
     18     download_sms_spam_dataset,
     19     mnist_denormalize,
     20     cifar_normalize,
     21     load_adult_census,
     22     get_cifar10_loaders,
     23     get_cifar10_transform,
     24 )
     26 # models subpackage
     27 from .models import (
     28     SimpleLeNet,
     29     SimpleCNN,
   (...)     34     AttackModel,
     35 )

File ~/.conda/envs/ai/lib/python3.11/site-packages/htb_ai_library/data/__init__.py:5
      1 """
      2 Data subpackage providing loaders and dataset utilities.
      3 """
----> 5 from .mnist import get_mnist_loaders, mnist_denormalize
      6 from .sms import download_sms_spam_dataset
      7 from .transforms import cifar_normalize

File ~/.conda/envs/ai/lib/python3.11/site-packages/htb_ai_library/data/mnist.py:11
      9 import torch
     10 from torch.utils.data import DataLoader
---> 11 from torchvision import datasets, transforms
     14 def get_mnist_loaders(
     15     batch_size: int = 128,
     16     data_dir: str = "./data",
   (...)     19     seed: Optional[int] = 1337,
     20 ) -> Tuple[DataLoader, DataLoader]:
     21     """
     22     Create MNIST data loaders with optional normalization and deterministic shuffling.
     23 
   (...)     39         Training and test data loaders.
     40     """

File ~/.conda/envs/ai/lib/python3.11/site-packages/torchvision/__init__.py:10
      7 # Don't re-order these, we need to load the _C extension (done when importing
      8 # .extensions) before entering _meta_registrations.
      9 from .extension import _HAS_OPS  # usort:skip
---> 10 from torchvision import _meta_registrations, datasets, io, models, ops, transforms, utils  # usort:skip
     12 try:
     13     from .version import __version__  # noqa: F401

File ~/.conda/envs/ai/lib/python3.11/site-packages/torchvision/_meta_registrations.py:163
    153     torch._check(
    154         grad.dtype == rois.dtype,
    155         lambda: (
   (...)    158         ),
    159     )
    160     return grad.new_empty((batch_size, channels, height, width))
--> 163 @torch.library.register_fake("torchvision::nms")
    164 def meta_nms(dets, scores, iou_threshold):
    165     torch._check(dets.dim() == 2, lambda: f"boxes should be a 2d tensor, got {dets.dim()}D")
    166     torch._check(dets.size(1) == 4, lambda: f"boxes should have 4 elements in dimension 1, got {dets.size(1)}")

File ~/.conda/envs/ai/lib/python3.11/site-packages/torch/library.py:1073, in register_fake.<locals>.register(func)
   1071 else:
   1072     use_lib = lib
-> 1073 use_lib._register_fake(
   1074     op_name, func, _stacklevel=stacklevel + 1, allow_override=allow_override
   1075 )
   1076 return func

File ~/.conda/envs/ai/lib/python3.11/site-packages/torch/library.py:203, in Library._register_fake(self, op_name, fn, _stacklevel, allow_override)
    200 else:
    201     func_to_register = fn
--> 203 handle = entry.fake_impl.register(
    204     func_to_register, source, lib=self, allow_override=allow_override
    205 )
    206 self._registration_handles.append(handle)

File ~/.conda/envs/ai/lib/python3.11/site-packages/torch/_library/fake_impl.py:50, in FakeImplHolder.register(self, func, source, lib, allow_override)
     44 if self.kernel is not None:
     45     raise RuntimeError(
     46         f"register_fake(...): the operator {self.qualname} "
     47         f"already has an fake impl registered at "
     48         f"{self.kernel.source}."
     49     )
---> 50 if torch._C._dispatch_has_kernel_for_dispatch_key(self.qualname, "Meta"):
     51     raise RuntimeError(
     52         f"register_fake(...): the operator {self.qualname} "
     53         f"already has an DispatchKey::Meta implementation via a "
   (...)     56         f"register_fake."
     57     )
     59 if torch._C._dispatch_has_kernel_for_dispatch_key(
     60     self.qualname, "CompositeImplicitAutograd"
     61 ):

RuntimeError: operator torchvision::nms does not exist
In [ ]: