class_docstr: Adapt Caffe prototxt and weights into uniform format
class_docstr_tok: ["Adapt","Caffe","prototxt","and","weights","into","uniform","format"]
docstr:  Adapt Caffe solver into CNTK format
  
  Args:
      None
  
  Return:
      None
docstr_tok: ["Adapt","Caffe","solver","into","CNTK","format","Args",":","None","Return",":","None"]
code: def adapt_solver(self):
      """
       Adapt Caffe solver into CNTK format
  
      Args:
          None
  
      Return:
          None
      """
      self._uni_model.solver = cntkmodel.CntkSolver()
      solver = self._uni_model.solver
      caffe_solver = self._raw_solver
  
      # Get the casting between iterations and epochs
      if "iters_per_epoch" in self._source_solver.keys():
          iter_per_epoch = self._source_solver["iters_per_epoch"]
          solver.adjust_interval = int(
              caffe_solver.stepsize / iter_per_epoch + 0.5
          )
          solver.max_epoch = int(
              caffe_solver.max_iter / iter_per_epoch + 0.5
          )
  
      solver.learning_rate = caffe_solver.base_lr
      solver.decrease_factor = caffe_solver.gamma
      solver.momentum = caffe_solver.momentum
      solver.weight_decay = caffe_solver.weight_decay
      solver.number_to_show_result = caffe_solver.display
  
imports: import sys
  import os
  import time
  import math
  from cntk.contrib.crosstalkcaffe.unimodel import cntkmodel
  from cntk.contrib.crosstalkcaffe.adapter import baseadapter
  from .None import caffeimpl
label_desc: Use image node_id 3 for calling the CaffeAdapter obj's underlying member method code with example usage: obj.adapt_solver() without return types