class_docstr: Extension that makes a symbolic link to the best model
  
  :param str key: Key of value
  :param str prefix: Prefix of model files and link target
  :param str suffix: Suffix of link target
class_docstr_tok: ["Extension","that","makes","a","symbolic","link","to","the","best","model",":","param","str","key",":","Key","of","value",":","param","str","prefix",":","Prefix","of","model","files","and","link","target",":","param","str","suffix",":","Suffix","of","link","target"]
code: def serialize(self, serializer):
      if isinstance(serializer, chainer.serializer.Serializer):
          serializer("_best_model", self.best_model)
          serializer("_min_loss", self.min_loss)
          serializer("_key", self.key)
          serializer("_prefix", self.prefix)
          serializer("_suffix", self.suffix)
      else:
          self.best_model = serializer("_best_model", -1)
          self.min_loss = serializer("_min_loss", 0.0)
          self.key = serializer("_key", "")
          self.prefix = serializer("_prefix", "model")
          self.suffix = serializer("_suffix", "best")
  
imports: import logging
  import os
  import random
  import chainer
  import h5py
  import numpy
  from chainer.training import extension
  from tqdm import tqdm
label_desc: Use image node_id 3 for calling the MakeSymlinkToBestModel obj's underlying member method code with example usage: obj.serialize(serializer) without return types