class_docstr: Hooks-based implementation of AbstractGradSampleModule
  
  Computes per-sample gradients using custom-written methods for each layer.
  See README.md for more details
docstr: The opposite of ``disable_hooks()``. Hooks are always enabled unless you explicitly
  disable them so you don't need to call this unless you want to re-enable them.
docstr_tok: ["The","opposite","of","``","disable_hooks","(",")","``",".","Hooks","are","always","enabled","unless","you","explicitly","disable","them","so","you","do","n't","need","to","call","this","unless","you","want","to","re-enable","them","."]
code: def enable_hooks(self) -> None:
      r"""
      The opposite of ``disable_hooks()``. Hooks are always enabled unless you explicitly
      disable them so you don't need to call this unless you want to re-enable them.
      """
      self.hooks_enabled = True
  
imports: from __future__ import annotations
  import logging
  import warnings
  from functools import partial
  from typing import Iterable, List, Tuple
  import torch
  import torch.nn
  from opacus.grad_sample.functorch import ft_compute_per_sample_gradient, prepare_layer
  from opacus.grad_sample.gsm_base import AbstractGradSampleModule
  from opacus.layers.dp_rnn import DPGRU, DPLSTM, DPRNN, RNNLinear
  from opacus.utils.module_utils import has_trainable_params, requires_grad, trainable_modules, trainable_parameters
label_desc: Use image node_id 7 for calling the GradSampleModule obj's underlying member method code with example usage: obj.enable_hooks() without return types