class_docstr: A driver for running eval inference.
  
  Attributes:
    model_name: str. Model name to eval.
    batch_size: int. Eval batch size.
    num_classes: int. Number of classes, default to 1000 for ImageNet.
    image_size: int. Input image size, determined by model name.
class_docstr_tok: ["A","driver","for","running","eval","inference",".","Attributes",":","model_name",":","str",".","Model","name","to","eval",".","batch_size",":","int",".","Eval","batch","size",".","num_classes",":","int",".","Number","of","classes",",","default","to","1000","for","ImageNet",".","image_size",":","int",".","Input","image","size",",","determined","by","model","name","."]
docstr: Build model with input features.
docstr_tok: ["Build","model","with","input","features","."]
code: def build_model(self, features, is_training):
      """Build model with input features."""
      features -= tf.constant(
          MEAN_RGB, shape=[1, 1, 3], dtype=features.dtype
      )
      features /= tf.constant(
          STDDEV_RGB, shape=[1, 1, 3], dtype=features.dtype
      )
      logits, _ = efficientnet_builder.build_model(
          features, self.model_name, is_training
      )
      probs = tf.nn.softmax(logits)
      probs = tf.squeeze(probs)
      return probs
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import json
  import sys
  from absl import app
  from absl import flags
  import numpy
  import tensorflow
  import efficientnet_builder
  import preprocessing
label_desc: Use image node_id 3 for calling the EvalCkptDriver obj's underlying member method code with example usage: obj.build_model(features, is_training) and returns: probs