class_docstr: Wraps a numpy memmap as a datastore for decoder state vectors.
  
  :param file_name: disk file path to store the memory-mapped file
  :param num_dim: number of dimensions of the vectors in the data store
  :param dtype: data type of the vectors in the data store
class_docstr_tok: ["Wraps","a","numpy","memmap","as","a","datastore","for","decoder","state","vectors",".",":","param","file_name",":","disk","file","path","to","store","the","memory-mapped","file",":","param","num_dim",":","number","of","dimensions","of","the","vectors","in","the","data","store",":","param","dtype",":","data","type","of","the","vectors","in","the","data","store"]
code: def __init__(
      self, file_name: str, num_dim: int, dtype: np.dtype
  ) -> None:
      self.file_name = file_name
      self.num_dim = num_dim  # dimension of a single entry
      self.dtype = dtype
      self.block_size = -1
      self.mmap = None  # type: Optional[np.memmap]
      self.tail_idx = 0  # where the next entry should be inserted
      self.size = 0
  
imports: import argparse
  import logging
  import os
  from typing import List, Optional
  import numpy
  import torch
  from .None import arguments
  from .None import constants
  from .None import data_io
  from .None import utils
  from .log import setup_main_logger
  from .model import SockeyeModel, load_model
  from .vocab import Vocab
  from .utils import check_condition
  from .knn import KNNConfig, get_state_store_path, get_word_store_path, get_config_path
label_desc: Use image node_id 1 to create a new NumpyMemmapStorage object  with example: obj = NumpyMemmapStorage(file_name, num_dim, dtype)