class_docstr: An abstract class providing basic methods for saving and loading weights of a model. Extend this class to build
  custom module weight loaders.
class_docstr_tok: ["An","abstract","class","providing","basic","methods","for","saving","and","loading","weights","of","a","model",".","Extend","this","class","to","build","custom","module","weight","loaders","."]
docstr: Saves the module config and weights into the given directory. Override this method for additional saving
  actions.
  
  Args:
      save_directory (str): The directory to save the weights in.
      name (str): An identifier of the weights to be saved. The details are specified by the implementor.
code: def save(self, save_directory, name, **kwargs):
      """
      Saves the module config and weights into the given directory. Override this method for additional saving
      actions.
  
      Args:
          save_directory (str): The directory to save the weights in.
          name (str): An identifier of the weights to be saved. The details are specified by the implementor.
      """
      if not exists(save_directory):
          mkdir(save_directory)
      else:
          assert isdir(
              save_directory
          ), "Saving path should be a directory where weights and configuration can be saved."
  
      config_dict = build_full_config(
          None,
          self.model.config,
          model_name=self.model.model_name,
          name=name,
          model_class=self.model.__class__.__name__,
      )
      meta_dict = kwargs.pop("meta_dict", None)
  
      # Save the adapter configuration
      self.weights_helper.save_weights_config(
          save_directory, config_dict, meta_dict=meta_dict
      )
  
      # Save adapter weights
      filter_func = self.filter_func(name)
      self.weights_helper.save_weights(save_directory, filter_func)
  
imports: import json
  import logging
  from abc import ABC, abstractmethod
  from os import mkdir
  from os.path import exists, isdir, isfile, join
  from typing import Callable, Mapping, Sequence, Tuple
  import torch
  from .configuration import AdapterConfig, build_full_config
  from .head_utils import STATIC_TO_FLEX_HEAD_MAP, get_head_config_and_rename_list
  from .utils import ACTIVATION_RENAME, ADAPTERFUSION_CONFIG_NAME, ADAPTERFUSION_WEIGHTS_NAME, CONFIG_NAME, HEAD_CONFIG_NAME, HEAD_WEIGHTS_NAME, WEIGHTS_NAME, AdapterType, resolve_adapter_path
label_desc: Use image node_id 4 for calling the WeightsLoader obj's underlying member method code with example usage: obj.save(save_directory, name) without return types