| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342 | 
							- # Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved.
 
- # Full license terms provided in LICENSE.md file.
 
- import numpy as np
 
- import sys
 
- sys.path.append("third_party/models/research/")
 
- sys.path.append("third_party/models")
 
- sys.path.append("third_party/")
 
- sys.path.append("third_party/models/research/slim/")
 
- import tensorflow.contrib.slim as tf_slim
 
- import slim.nets as nets
 
- import slim.nets.vgg
 
- import slim.nets.inception
 
- import slim.nets.resnet_v1
 
- import slim.nets.resnet_v2
 
- import slim.nets.mobilenet_v1
 
- def create_label_map(label_file='data/imagenet_labels_1001.txt'):
 
-     label_map = {}
 
-     with open(label_file, 'r') as f:
 
-         labels = f.readlines()
 
-         for i, label in enumerate(labels):
 
-             label_map[i] = label
 
-     return label_map
 
-         
 
- IMAGNET2012_LABEL_MAP = create_label_map()
 
- def preprocess_vgg(image):
 
-     return np.array(image, dtype=np.float32) - np.array([123.68, 116.78, 103.94])
 
- def postprocess_vgg(output):
 
-     output = output.flatten()
 
-     predictions_top5 = np.argsort(output)[::-1][0:5]
 
-     labels_top5 = [IMAGNET2012_LABEL_MAP[p + 1] for p in predictions_top5]
 
-     return labels_top5
 
- def preprocess_inception(image):
 
-     return 2.0 * (np.array(image, dtype=np.float32) / 255.0 - 0.5)
 
- def postprocess_inception(output):
 
-     output = output.flatten()
 
-     predictions_top5 = np.argsort(output)[::-1][0:5]
 
-     labels_top5 = [IMAGNET2012_LABEL_MAP[p] for p in predictions_top5]
 
-     return labels_top5
 
- def mobilenet_v1_1p0_224(*args, **kwargs):
 
-     kwargs['depth_multiplier'] = 1.0
 
-     return nets.mobilenet_v1.mobilenet_v1(*args, **kwargs)
 
- def mobilenet_v1_0p5_160(*args, **kwargs):
 
-     kwargs['depth_multiplier'] = 0.5
 
-     return nets.mobilenet_v1.mobilenet_v1(*args, **kwargs)
 
- def mobilenet_v1_0p25_128(*args, **kwargs):
 
-     kwargs['depth_multiplier'] = 0.25
 
-     return nets.mobilenet_v1.mobilenet_v1(*args, **kwargs)   
 
- CHECKPOINT_DIR = 'data/checkpoints/'
 
- FROZEN_GRAPHS_DIR = 'data/frozen_graphs/'
 
- # UFF_DIR = 'data/uff/'
 
- PLAN_DIR = 'data/plans/'
 
- NETS = {
 
-     'vgg_16': {
 
-         'model': nets.vgg.vgg_16,
 
-         'arg_scope': nets.vgg.vgg_arg_scope,
 
-         'num_classes': 1000,
 
-         'input_name': 'input',
 
-         'output_names': ['vgg_16/fc8/BiasAdd'],
 
-         'input_width': 224,
 
-         'input_height': 224,
 
-         'input_channels': 3, 
 
-         'preprocess_fn': preprocess_vgg,
 
-         'postprocess_fn': postprocess_vgg,
 
-         'checkpoint_filename': CHECKPOINT_DIR + 'vgg_16.ckpt',
 
-         'frozen_graph_filename': FROZEN_GRAPHS_DIR + 'vgg_16.pb',
 
-         'trt_convert_status': "works",
 
-         'plan_filename': PLAN_DIR + 'vgg_16.plan'
 
-     },
 
-     'vgg_19': {
 
-         'model': nets.vgg.vgg_19,
 
-         'arg_scope': nets.vgg.vgg_arg_scope,
 
-         'num_classes': 1000,
 
-         'input_name': 'input',
 
-         'output_names': ['vgg_19/fc8/BiasAdd'],
 
-         'input_width': 224,
 
-         'input_height': 224,
 
-         'input_channels': 3, 
 
-         'preprocess_fn': preprocess_vgg,
 
-         'postprocess_fn': postprocess_vgg,
 
-         'checkpoint_filename': CHECKPOINT_DIR + 'vgg_19.ckpt',
 
-         'frozen_graph_filename': FROZEN_GRAPHS_DIR + 'vgg_19.pb',
 
-         'trt_convert_status': "works",
 
-         'plan_filename': PLAN_DIR + 'vgg_19.plan',
 
-         'exclude': True
 
-     },
 
-     'inception_v1': {
 
-         'model': nets.inception.inception_v1,
 
-         'arg_scope': nets.inception.inception_v1_arg_scope,
 
-         'num_classes': 1001,
 
-         'input_name': 'input',
 
-         'input_width': 224,
 
-         'input_height': 224,
 
-         'input_channels': 3,
 
-         'output_names': ['InceptionV1/Logits/SpatialSqueeze'],
 
-         'checkpoint_filename': CHECKPOINT_DIR + 'inception_v1.ckpt',
 
-         'frozen_graph_filename': FROZEN_GRAPHS_DIR + 'inception_v1.pb',
 
-         'preprocess_fn': preprocess_inception,
 
-         'postprocess_fn': postprocess_inception,
 
-         'trt_convert_status': "works",
 
-         'plan_filename': PLAN_DIR + 'inception_v1.plan'
 
-     },
 
-     'inception_v2': {
 
-         'model': nets.inception.inception_v2,
 
-         'arg_scope': nets.inception.inception_v2_arg_scope,
 
-         'num_classes': 1001,
 
-         'input_name': 'input',
 
-         'input_width': 224,
 
-         'input_height': 224,
 
-         'input_channels': 3,
 
-         'output_names': ['InceptionV2/Logits/SpatialSqueeze'],
 
-         'checkpoint_filename': CHECKPOINT_DIR + 'inception_v2.ckpt',
 
-         'frozen_graph_filename': FROZEN_GRAPHS_DIR + 'inception_v2.pb',
 
-         'preprocess_fn': preprocess_inception,
 
-         'postprocess_fn': postprocess_inception,
 
-         'trt_convert_status': "bad results",
 
-         'plan_filename': PLAN_DIR + 'inception_v2.plan'
 
-     },
 
-     'inception_v3': {
 
-         'model': nets.inception.inception_v3,
 
-         'arg_scope': nets.inception.inception_v3_arg_scope,
 
-         'num_classes': 1001,
 
-         'input_name': 'input',
 
-         'input_width': 299,
 
-         'input_height': 299,
 
-         'input_channels': 3,
 
-         'output_names': ['InceptionV3/Logits/SpatialSqueeze'],
 
-         'checkpoint_filename': CHECKPOINT_DIR + 'inception_v3.ckpt',
 
-         'frozen_graph_filename': FROZEN_GRAPHS_DIR + 'inception_v3.pb',
 
-         'preprocess_fn': preprocess_inception,
 
-         'postprocess_fn': postprocess_inception,
 
-         'trt_convert_status': "works",
 
-         'plan_filename': PLAN_DIR + 'inception_v3.plan'
 
-     },
 
-     'inception_v4': {
 
-         'model': nets.inception.inception_v4,
 
-         'arg_scope': nets.inception.inception_v4_arg_scope,
 
-         'num_classes': 1001,
 
-         'input_name': 'input',
 
-         'input_width': 299,
 
-         'input_height': 299,
 
-         'input_channels': 3,
 
-         'output_names': ['InceptionV4/Logits/Logits/BiasAdd'],
 
-         'checkpoint_filename': CHECKPOINT_DIR + 'inception_v4.ckpt',
 
-         'frozen_graph_filename': FROZEN_GRAPHS_DIR + 'inception_v4.pb',
 
-         'preprocess_fn': preprocess_inception,
 
-         'postprocess_fn': postprocess_inception,
 
-         'trt_convert_status': "works",
 
-         'plan_filename': PLAN_DIR + 'inception_v4.plan'
 
-     },
 
-     
 
-     'inception_resnet_v2': {
 
-         'model': nets.inception.inception_resnet_v2,
 
-         'arg_scope': nets.inception.inception_resnet_v2_arg_scope,
 
-         'num_classes': 1001,
 
-         'input_name': 'input',
 
-         'input_width': 299,
 
-         'input_height': 299,
 
-         'input_channels': 3,
 
-         'output_names': ['InceptionResnetV2/Logits/Logits/BiasAdd'],
 
-         'checkpoint_filename': CHECKPOINT_DIR + 'inception_resnet_v2_2016_08_30.ckpt',
 
-         'frozen_graph_filename': FROZEN_GRAPHS_DIR + 'inception_resnet_v2.pb',
 
-         'preprocess_fn': preprocess_inception,
 
-         'postprocess_fn': postprocess_inception,
 
-         'trt_convert_status': "works",
 
-         'plan_filename': PLAN_DIR + 'inception_resnet_v2.plan'
 
-     },
 
-     'resnet_v1_50': {
 
-         'model': nets.resnet_v1.resnet_v1_50,
 
-         'arg_scope': nets.resnet_v1.resnet_arg_scope,
 
-         'num_classes': 1000,
 
-         'input_name': 'input',
 
-         'input_width': 224,
 
-         'input_height': 224,
 
-         'input_channels': 3,
 
-         'output_names': ['resnet_v1_50/SpatialSqueeze'],
 
-         'checkpoint_filename': CHECKPOINT_DIR + 'resnet_v1_50.ckpt',
 
-         'frozen_graph_filename': FROZEN_GRAPHS_DIR + 'resnet_v1_50.pb',
 
-         'preprocess_fn': preprocess_vgg,
 
-         'postprocess_fn': postprocess_vgg,
 
-         'plan_filename': PLAN_DIR + 'resnet_v1_50.plan'
 
-     },
 
-     'resnet_v1_101': {
 
-         'model': nets.resnet_v1.resnet_v1_101,
 
-         'arg_scope': nets.resnet_v1.resnet_arg_scope,
 
-         'num_classes': 1000,
 
-         'input_name': 'input',
 
-         'input_width': 224,
 
-         'input_height': 224,
 
-         'input_channels': 3,
 
-         'output_names': ['resnet_v1_101/SpatialSqueeze'],
 
-         'checkpoint_filename': CHECKPOINT_DIR + 'resnet_v1_101.ckpt',
 
-         'frozen_graph_filename': FROZEN_GRAPHS_DIR + 'resnet_v1_101.pb',
 
-         'preprocess_fn': preprocess_vgg,
 
-         'postprocess_fn': postprocess_vgg,
 
-         'plan_filename': PLAN_DIR + 'resnet_v1_101.plan'
 
-     },
 
-     'resnet_v1_152': {
 
-         'model': nets.resnet_v1.resnet_v1_152,
 
-         'arg_scope': nets.resnet_v1.resnet_arg_scope,
 
-         'num_classes': 1000,
 
-         'input_name': 'input',
 
-         'input_width': 224,
 
-         'input_height': 224,
 
-         'input_channels': 3,
 
-         'output_names': ['resnet_v1_152/SpatialSqueeze'],
 
-         'checkpoint_filename': CHECKPOINT_DIR + 'resnet_v1_152.ckpt',
 
-         'frozen_graph_filename': FROZEN_GRAPHS_DIR + 'resnet_v1_152.pb',
 
-         'preprocess_fn': preprocess_vgg,
 
-         'postprocess_fn': postprocess_vgg,
 
-         'plan_filename': PLAN_DIR + 'resnet_v1_152.plan'
 
-     },
 
-     'resnet_v2_50': {
 
-         'model': nets.resnet_v2.resnet_v2_50,
 
-         'arg_scope': nets.resnet_v2.resnet_arg_scope,
 
-         'num_classes': 1001,
 
-         'input_name': 'input',
 
-         'input_width': 299,
 
-         'input_height': 299,
 
-         'input_channels': 3,
 
-         'output_names': ['resnet_v2_50/SpatialSqueeze'],
 
-         'checkpoint_filename': CHECKPOINT_DIR + 'resnet_v2_50.ckpt',
 
-         'frozen_graph_filename': FROZEN_GRAPHS_DIR + 'resnet_v2_50.pb',
 
-         'preprocess_fn': preprocess_inception,
 
-         'postprocess_fn': postprocess_inception,
 
-         'plan_filename': PLAN_DIR + 'resnet_v2_50.plan'
 
-     },
 
-     'resnet_v2_101': {
 
-         'model': nets.resnet_v2.resnet_v2_101,
 
-         'arg_scope': nets.resnet_v2.resnet_arg_scope,
 
-         'num_classes': 1001,
 
-         'input_name': 'input',
 
-         'input_width': 299,
 
-         'input_height': 299,
 
-         'input_channels': 3,
 
-         'output_names': ['resnet_v2_101/SpatialSqueeze'],
 
-         'checkpoint_filename': CHECKPOINT_DIR + 'resnet_v2_101.ckpt',
 
-         'frozen_graph_filename': FROZEN_GRAPHS_DIR + 'resnet_v2_101.pb',
 
-         'preprocess_fn': preprocess_inception,
 
-         'postprocess_fn': postprocess_inception,
 
-         'plan_filename': PLAN_DIR + 'resnet_v2_101.plan'
 
-     },
 
-     'resnet_v2_152': {
 
-         'model': nets.resnet_v2.resnet_v2_152,
 
-         'arg_scope': nets.resnet_v2.resnet_arg_scope,
 
-         'num_classes': 1001,
 
-         'input_name': 'input',
 
-         'input_width': 299,
 
-         'input_height': 299,
 
-         'input_channels': 3,
 
-         'output_names': ['resnet_v2_152/SpatialSqueeze'],
 
-         'checkpoint_filename': CHECKPOINT_DIR + 'resnet_v2_152.ckpt',
 
-         'frozen_graph_filename': FROZEN_GRAPHS_DIR + 'resnet_v2_152.pb',
 
-         'preprocess_fn': preprocess_inception,
 
-         'postprocess_fn': postprocess_inception,
 
-         'plan_filename': PLAN_DIR + 'resnet_v2_152.plan'
 
-     },
 
-     #'resnet_v2_200': {
 
-     #},
 
-     'mobilenet_v1_1p0_224': {
 
-         'model': mobilenet_v1_1p0_224,
 
-         'arg_scope': nets.mobilenet_v1.mobilenet_v1_arg_scope,
 
-         'num_classes': 1001,
 
-         'input_name': 'input',
 
-         'input_width': 224,
 
-         'input_height': 224,
 
-         'input_channels': 3,
 
-         'output_names': ['MobilenetV1/Logits/SpatialSqueeze'],
 
-         'checkpoint_filename': CHECKPOINT_DIR + 
 
-             'mobilenet_v1_1.0_224.ckpt',
 
-         'frozen_graph_filename': FROZEN_GRAPHS_DIR + 'mobilenet_v1_1p0_224.pb',
 
-         'plan_filename': PLAN_DIR + 'mobilenet_v1_1p0_224.plan',
 
-         'preprocess_fn': preprocess_inception,
 
-         'postprocess_fn': postprocess_inception,
 
-     },
 
-     'mobilenet_v1_0p5_160': {
 
-         'model': mobilenet_v1_0p5_160,
 
-         'arg_scope': nets.mobilenet_v1.mobilenet_v1_arg_scope,
 
-         'num_classes': 1001,
 
-         'input_name': 'input',
 
-         'input_width': 160,
 
-         'input_height': 160,
 
-         'input_channels': 3,
 
-         'output_names': ['MobilenetV1/Logits/SpatialSqueeze'],
 
-         'checkpoint_filename': CHECKPOINT_DIR + 
 
-             'mobilenet_v1_0.50_160.ckpt',
 
-         'frozen_graph_filename': FROZEN_GRAPHS_DIR + 'mobilenet_v1_0p5_160.pb',
 
-         'plan_filename': PLAN_DIR + 'mobilenet_v1_0p5_160.plan',
 
-         'preprocess_fn': preprocess_inception,
 
-         'postprocess_fn': postprocess_inception,
 
-     },
 
-     'mobilenet_v1_0p25_128': {
 
-         'model': mobilenet_v1_0p25_128,
 
-         'arg_scope': nets.mobilenet_v1.mobilenet_v1_arg_scope,
 
-         'num_classes': 1001,
 
-         'input_name': 'input',
 
-         'input_width': 128,
 
-         'input_height': 128,
 
-         'input_channels': 3,
 
-         'output_names': ['MobilenetV1/Logits/SpatialSqueeze'],
 
-         'checkpoint_filename': CHECKPOINT_DIR + 
 
-             'mobilenet_v1_0.25_128.ckpt',
 
-         'frozen_graph_filename': FROZEN_GRAPHS_DIR + 'mobilenet_v1_0p25_128.pb',
 
-         'plan_filename': PLAN_DIR + 'mobilenet_v1_0p25_128.plan',
 
-         'preprocess_fn': preprocess_inception,
 
-         'postprocess_fn': postprocess_inception,
 
-     },
 
- }
 
 
  |