class_docstr: Approximate Nearest Neighbor Search with ScaNN
  (https://github.com/google-research/google-research/tree/master/scann).
  ScaNN performs vector search in three phases: paritioning, scoring, and rescoring.
  More on the algorithms and parameter description: https://github.com/google-research/google-research/blob/master/scann/docs/algorithms.md
  
  Parameters
  ----------------
  model: object: :obj:`cornac.models.Recommender`, required
      Trained recommender model which to get user/item vectors from.
  
  partition_params: dict, optional
      Parameters for the partitioning phase, to send to the tree() call in ScaNN.
  
  score_params: dict, optional
      Parameters for the scoring phase, to send to the score_ah() call in ScaNN.
      score_brute_force() will be called if score_brute_force is True.
  
  score_brute_force: bool, optional, default: False
      Whether to call score_brute_force() for the scoring phase.
  
  rescore_params: dict, optional
      Parameters for the rescoring phase, to send to the reorder() call in ScaNN.
  
  num_threads: int, optional, default: -1
      Default number of threads used for training. If num_threads = -1, all cores will be used.
  
  seed: int, optional, default: None
      Random seed for reproducibility.
  
  name: str, required
      Name of the recommender model.
  
  verbose: boolean, optional, default: False
      When True, running logs are displayed.
code: def load(model_path, trainable=False):
      from scann.scann_ops.py import scann_ops_pybind
  
      ann = BaseANN.load(model_path, trainable)
      idx_path = ann.load_from + ".index"
      ann.index = scann_ops_pybind.load_searcher(idx_path)
      return ann
  
file_path: cornac/cornac/models/ann/recom_ann_scann.py
imports: import os
  import multiprocessing
  import numpy
  from ..recommender import MEASURE_L2, MEASURE_DOT, MEASURE_COSINE
  from .recom_ann_base import BaseANN
label_desc: Use image node_id 5 for calling the ScaNNANN obj's underlying member method code with example usage: obj.load(model_path, trainable) and returns: ann