Source code for nnsight.intervention.tracing.editing

import ast
from .tracer import InterleavingTracer
from ..backends.editing import EditingBackend
from ..backends.base import Backend

[docs] class EditingTracer(InterleavingTracer): def __init__(self, *args, backend:Backend = EditingBackend(), inplace:bool=False, **kwargs): self.capture() self.return_tracer = False super().__init__(*args, backend=backend, **kwargs) if not inplace: self.model = self.model._shallow_copy() def __enter__(self): super().__enter__() if self.return_tracer: return self.model, self return self.model