class_docstr: A store to manage multiple pytorch based feature for access.
  
  The feature stores are described by the `feat_data`. The `feat_data` is a
  list of `OnDiskFeatureData`.
  
  For a feature store, its format must be either "pt" or "npy" for Pytorch or
  Numpy formats. If the format is "pt", the feature store must be loaded in
  memory. If the format is "npy", the feature store can be loaded in memory or
  on disk.
  
  Parameters
  ----------
  feat_data : List[OnDiskFeatureData]
      The description of the feature stores.
  
  Examples
  --------
  >>> import torch
  >>> import numpy as np
  >>> from dgl import graphbolt as gb
  >>> edge_label = torch.tensor([[1], [2], [3]])
  >>> node_feat = torch.tensor([[1, 2, 3], [4, 5, 6]])
  >>> torch.save(edge_label, "/tmp/edge_label.pt")
  >>> np.save("/tmp/node_feat.npy", node_feat.numpy())
  >>> feat_data = [
  ...     gb.OnDiskFeatureData(domain="edge", type="author:writes:paper",
  ...         name="label", format="torch", path="/tmp/edge_label.pt",
  ...         in_memory=True),
  ...     gb.OnDiskFeatureData(domain="node", type="paper", name="feat",
  ...         format="numpy", path="/tmp/node_feat.npy", in_memory=False),
  ... ]
  >>> feature_sotre = gb.TorchBasedFeatureStore(feat_data)
class_docstr_tok: ["A","store","to","manage","multiple","pytorch","based","feature","for","access",".","The","feature","stores","are","described","by","the","`","feat_data","`",".","The","`","feat_data","`","is","a","list","of","`","OnDiskFeatureData","`",".","For","a","feature","store",",","its","format","must","be","either","``","pt","''","or","``","npy","''","for","Pytorch","or","Numpy","formats",".","If","the","format","is","``","pt","''",",","the","feature","store","must","be","loaded","in","memory",".","If","the","format","is","``","npy","''",",","the","feature","store","can","be","loaded","in","memory","or","on","disk",".","Parameters","--","--","--","--","--","feat_data",":","List","[","OnDiskFeatureData","]","The","description","of","the","feature","stores",".","Examples","--","--","--","--",">",">",">","import","torch",">",">",">","import","numpy","as","np",">",">",">","from","dgl","import","graphbolt","as","gb",">",">",">","edge_label","=","torch.tensor","(","[","[","1","]",",","[","2","]",",","[","3","]","]",")",">",">",">","node_feat","=","torch.tensor","(","[","[","1",",","2",",","3","]",",","[","4",",","5",",","6","]","]",")",">",">",">","torch.save","(","edge_label",",","``","\/tmp\/edge_label.pt","''",")",">",">",">","np.save","(","``","\/tmp\/node_feat.npy","''",",","node_feat.numpy","(",")",")",">",">",">","feat_data","=","[","...","gb.OnDiskFeatureData","(","domain=","''","edge","''",",","type=","''","author",":","writes",":","paper","''",",","...","name=","''","label","''",",","format=","''","torch","''",",","path=","''","\/tmp\/edge_label.pt","''",",","...","in_memory=True",")",",","...","gb.OnDiskFeatureData","(","domain=","''","node","''",",","type=","''","paper","''",",","name=","''","feat","''",",","...","format=","''","numpy","''",",","path=","''","\/tmp\/node_feat.npy","''",",","in_memory=False",")",",","...","]",">",">",">","feature_sotre","=","gb.TorchBasedFeatureStore","(","feat_data",")"]
code: def __repr__(self) -> str:
      ret = "{Classname}(\n" + "    {features}\n" + ")"
      features_str = textwrap.indent(
          str(self._features), "    "
      ).strip()
      return ret.format(
          Classname=self.__class__.__name__, features=features_str
      )
  
imports: import copy
  import textwrap
  from typing import Dict, List
  import numpy
  import torch
  from ..feature_store import Feature
  from .basic_feature_store import BasicFeatureStore
  from .ondisk_metadata import OnDiskFeatureData
label_desc: Use image node_id 4 for calling the TorchBasedFeatureStore obj's underlying member method code with example usage: obj.__repr__() and returns: ret