"""Shared definition for constants, classes.

Only put those that might be accessed from different modules.
Keep module specific definition isolated.
"""

# TODO(jiefeng): merge commons and update core code.

import os
import sys

# add tensorflow model directory.
cur_fn_dir = os.path.dirname(os.path.realpath(__file__))
sys.path.insert(0, os.path.join(cur_fn_dir, "models/slim/"))


class Engine(object):
  TF = 0
  KERAS = 1
  CAFFE = 2
  CAFFE2 = 3
  TORCH = 4
  MXNET = 5


class DMConsts(object):
  """Extra Constants for DeepModels.
  """
  pass


class OPTMethod(object):
  """Optimization methods.
  """
  SGD = 0
  MOMENTUM = 1
  ADAM = 2