gradnet.gradnet.GradNet
- class gradnet.gradnet.GradNet(num_nodes, budget, mask=None, adj0=None, delta_sign='nonnegative', final_sign='free', directed=False, rand_init_weights=True, strict_budget=True, cost_matrix=None, cost_aggr_norm=1, *, device=None, dtype=None)[source]
User-facing GradNet: learn a constrained
deltaover a base adjacency.This thin wrapper owns the mask, cost matrix, and base adjacency
adj0, and delegates the trainable parameters to either a dense or sparse parameterization depending on mask layout.Construct a GradNet instance.
- Parameters:
num_nodes (int) – Number of nodes (matrix dimension).
budget (float | None) – Target cost-weighted p-norm of the perturbation. If
None, no budget normalization is enforced.mask (torch.Tensor | None, optional) – Active-entry mask. Dense masks result in a dense parameterization; sparse COO masks use the sparse backend. If
None, defaults to all-ones off-diagonal.adj0 (torch.Tensor | None, optional) – Base adjacency. If
None, uses a zero matrix matching the selected backend layout.delta_sign (str, optional) – Sign constraint for
delta. One of{"free", "nonnegative", "nonpositive"}.final_sign (str, optional) – Sign constraint applied to the returned adjacency. One of
{"free", "nonnegative", "nonpositive"}.directed (bool, optional) – If
False, symmetrizedeltaand expect a symmetric cost matrix.rand_init_weights (bool | float, optional) – Initialization mix coefficient
a. Cast to float and clamped to[0,1].a = 1.0orTrueyields fully randomU(0,1);a = 0.0orFalseyields uniform ones. Intermediate values yield interpolation.strict_budget (bool, optional) – If
True, always scale up/down to the exact budget. IfFalse, scale down only.cost_matrix (torch.Tensor | None, optional) – Per-entry costs for normalization; defaults to ones. In sparse backend mode, omitted costs remain implicit (unit costs) and no dense default matrix is materialized.
cost_aggr_norm (int, optional) – Aggregation norm
pfor the cost-weighted p-norm.device (torch.device | str | None, optional) – Target device for buffers/parameters. If
None, inferred from input tensors or defaults to CPU.dtype (torch.dtype | str | None, optional) – Target dtype for buffers/parameters. If
None, inferred from input tensors or from PyTorch defaults.
- __init__(num_nodes, budget, mask=None, adj0=None, delta_sign='nonnegative', final_sign='free', directed=False, rand_init_weights=True, strict_budget=True, cost_matrix=None, cost_aggr_norm=1, *, device=None, dtype=None)[source]
Construct a GradNet instance.
- Parameters:
num_nodes (int) – Number of nodes (matrix dimension).
budget (float | None) – Target cost-weighted p-norm of the perturbation. If
None, no budget normalization is enforced.mask (torch.Tensor | None, optional) – Active-entry mask. Dense masks result in a dense parameterization; sparse COO masks use the sparse backend. If
None, defaults to all-ones off-diagonal.adj0 (torch.Tensor | None, optional) – Base adjacency. If
None, uses a zero matrix matching the selected backend layout.delta_sign (str, optional) – Sign constraint for
delta. One of{"free", "nonnegative", "nonpositive"}.final_sign (str, optional) – Sign constraint applied to the returned adjacency. One of
{"free", "nonnegative", "nonpositive"}.directed (bool, optional) – If
False, symmetrizedeltaand expect a symmetric cost matrix.rand_init_weights (bool | float, optional) – Initialization mix coefficient
a. Cast to float and clamped to[0,1].a = 1.0orTrueyields fully randomU(0,1);a = 0.0orFalseyields uniform ones. Intermediate values yield interpolation.strict_budget (bool, optional) – If
True, always scale up/down to the exact budget. IfFalse, scale down only.cost_matrix (torch.Tensor | None, optional) – Per-entry costs for normalization; defaults to ones. In sparse backend mode, omitted costs remain implicit (unit costs) and no dense default matrix is materialized.
cost_aggr_norm (int, optional) – Aggregation norm
pfor the cost-weighted p-norm.device (torch.device | str | None, optional) – Target device for buffers/parameters. If
None, inferred from input tensors or defaults to CPU.dtype (torch.dtype | str | None, optional) – Target dtype for buffers/parameters. If
None, inferred from input tensors or from PyTorch defaults.
Methods
__init__(num_nodes, budget[, mask, adj0, ...])Construct a GradNet instance.
add_module(name, module)Add a child module to the current module.
apply(fn)Apply
fnrecursively to every submodule (as returned by.children()) as well as self.bfloat16()Casts all floating point parameters and buffers to
bfloat16datatype.buffers([recurse])Return an iterator over module buffers.
children()Return an iterator over immediate children modules.
compile(*args, **kwargs)Compile this Module's forward using
torch.compile().cpu()Move all model parameters and buffers to the CPU.
cuda([device])Move all model parameters and buffers to the GPU.
double()Casts all floating point parameters and buffers to
doubledatatype.eval()Set the module in evaluation mode.
extra_repr()Return the extra representation of the module.
float()Casts all floating point parameters and buffers to
floatdatatype.forward([noise_amplitude])Return the full adjacency
A = adj0 + delta.get_buffer(target)Return the buffer given by
targetif it exists, otherwise throw an error.get_delta_adj([noise_amplitude])Return the normalized perturbation matrix
deltafrom the backend.get_extra_state()Return any extra state to include in the module's state_dict.
get_parameter(target)Return the parameter given by
targetif it exists, otherwise throw an error.get_submodule(target)Return the submodule given by
targetif it exists, otherwise throw an error.half()Casts all floating point parameters and buffers to
halfdatatype.ipu([device])Move all model parameters and buffers to the IPU.
load_state_dict(state_dict[, strict, assign])Copy parameters and buffers from
state_dictinto this module and its descendants.modules([remove_duplicate])Return an iterator over all modules in the network.
named_buffers([prefix, recurse, ...])Return an iterator over module buffers, yielding both the name of the buffer as well as the buffer itself.
named_children()Return an iterator over immediate children modules, yielding both the name of the module as well as the module itself.
named_modules([memo, prefix, remove_duplicate])Return an iterator over all modules in the network, yielding both the name of the module as well as the module itself.
named_parameters([prefix, recurse, ...])Return an iterator over module parameters, yielding both the name of the parameter as well as the parameter itself.
parameters([recurse])Return an iterator over module parameters.
register_backward_hook(hook)Register a backward hook on the module.
register_buffer(name, tensor[, persistent])Add a buffer to the module.
register_forward_hook(hook, *[, prepend, ...])Register a forward hook on the module.
register_forward_pre_hook(hook, *[, ...])Register a forward pre-hook on the module.
register_full_backward_hook(hook[, prepend])Register a backward hook on the module.
register_full_backward_pre_hook(hook[, prepend])Register a backward pre-hook on the module.
register_load_state_dict_post_hook(hook)Register a post-hook to be run after module's
load_state_dict()is called.register_module(name, module)Alias for
add_module().register_parameter(name, param)Add a parameter to the module.
register_state_dict_pre_hook(hook)Register a pre-hook for the
state_dict()method.renorm_params()Renormalize internal parameters using the backend's strategy.
requires_grad_([requires_grad])Change if autograd should record operations on parameters in this module.
set_extra_state(state)Set extra state contained in the loaded state_dict.
set_initial_state(delta_adj_raw_0)Forward to the parameterization's
set_initial_stateand renormalize.share_memory()See
torch.Tensor.share_memory_().state_dict(*args[, destination, prefix, ...])Return a dictionary containing references to the whole state of the module.
to(*args, **kwargs)Move and/or cast the parameters and buffers.
to_empty(*, device[, recurse])Move the parameters and buffers to the specified device without copying storage.
train([mode])Set the module in training mode.
type(dst_type)Casts all parameters and buffers to
dst_type.xpu([device])Move all model parameters and buffers to the XPU.
zero_grad([set_to_none])Reset gradients of all model parameters.
Attributes
T_destinationcall_super_initdevicedtypedump_patchestraining