def from_config(cls, config): return cls(feature_extractor=FeatureExtractor(config['INCEPTION_MODEL_FILE']), package_uris=config['CLOUD_ML_PACKAGE_URIS'], python_module=config['CLOUD_ML_PYTHON_MODULE'], data_dir_format=config['CLOUD_ML_DATA_DIR'], train_dir_format=config['CLOUD_ML_TRAIN_DIR'], log_dir_format=config['CLOUD_ML_LOG_DIR'], local_model_dir=config['MODEL_DIR'], local_classifier_model_dir=config['CLASSIFIER_MODEL_DIR'])
class CandyClassifier(object): def __init__(self, checkpoint_dir, params_file, inception_model_file): self.inception_model = None self.model = None self.checkpoint_dir = checkpoint_dir self.params_file = params_file self.inception_model_file = inception_model_file @classmethod def from_config(cls, config): checkpoint_dir = get_classifier_dir(config) return cls(checkpoint_dir=checkpoint_dir, params_file=os.path.join(checkpoint_dir, 'params.json'), inception_model_file=config['INCEPTION_MODEL_FILE']) def init(self): self._load_inception_model() self._load_transfer_model() def reload(self): tf.reset_default_graph() self._load_transfer_model() def _load_inception_model(self): logger.info('Loading inception model...') self.inception_model = FeatureExtractor(self.inception_model_file) logger.info('Finished loading inception model.') def _load_transfer_model(self): logger.info('Loading transfer model...') with tf.gfile.FastGFile(self.params_file, 'r') as f: params = ModelParams.from_json(f.read()) self.model = TransferModel.from_model_params(params) logger.info('Finished loading transfer model.') def classify(self, img_bgr): features = self.inception_model.get_feature_vector(img_bgr) ckpt = tf.train.get_checkpoint_state(self.checkpoint_dir) if ckpt is None: raise IOError('Checkpoints not found.') checkpoint_path = ckpt.model_checkpoint_path result = self.model.restore_and_predict(features, checkpoint_path) return result[0]
def _load_inception_model(self): logger.info('Loading inception model...') self.inception_model = FeatureExtractor(self.inception_model_file) logger.info('Finished loading inception model.')