├── .gitignore ├── README.md ├── inception_resnet_v2 ├── deploy_inception_resnet_v2.py ├── score.py └── score.sh └── inception_v4 ├── inception_v4.py ├── score.py └── score.sh /.gitignore: -------------------------------------------------------------------------------- 1 | *.params 2 | *symbol.json 3 | *.caffemodel 4 | *.prototxt 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # model-zoo 2 | 3 | This repository contains deep learning models. Keep updating.... 4 | 5 | * Top-1, Top-5 are accuracy in imagenet val which I get from Internet. 6 | 7 | * C -> Caffe, M -> MXNet, C2 -> Caffe2 T -> Tensorflow 8 | 9 | 10 | | Model | Top-1 | Top-5 | Caffe | MXNet | Caffe2 | TF | 11 | |:-----|:------:|------:|------:|------:|------:|------:| 12 | | alexnet | C_57.1 | C_80.2 | [243.86M](https://github.com/BVLC/caffe/tree/master/models/bvlc_alexnet) | | | | 13 | | caffenet | C_57.4 M_54.5 | C_80.4 M_78.3 | [243.86M](https://github.com/BVLC/caffe/tree/master/models/bvlc_reference_caffenet) | [233M](https://github.com/dmlc/mxnet-model-gallery/blob/master/imagenet-1k-caffenet.md) | | | 14 | | NIN | C_59.36 M_58.8 | M_81.3 | [29M](https://gist.github.com/mavenlin/d802a5849de39225bcc6) | [29M](https://github.com/dmlc/mxnet-model-gallery/blob/master/imagenet-1k-nin.md) | | 15 | | SqueezeNet1.0| M_55.4 | C_>=80.3 M_78.8 | [4.8M](https://github.com/DeepScale/SqueezeNet) | [4.8M](https://github.com/dmlc/mxnet-model-gallery/blob/master/imagenet-1k-squeezenet.md) | | | 16 | | SqueezeNet1.1 2.4x less computation than 1.0 | C_sameAs1.0 | C_>=80.3 | [4.7M](https://github.com/DeepScale/SqueezeNet/tree/master/SqueezeNet_v1.1) | [4.7M](http://data.dmlc.ml/models/imagenet/squeezenet/) | | | 17 | | VGG16 | M_71.0 | C_92.5 M_89.9 T_71.5 | [528M](http://www.robots.ox.ac.uk/~vgg/research/very_deep/) | [528M](https://github.com/dmlc/mxnet-model-gallery/blob/master/imagenet-1k-vgg.md) | | | 18 | | VGG19 | M_71.0 | C_92.5 M_89.8 T_89.8 | [548M](http://www.robots.ox.ac.uk/~vgg/research/very_deep/) | [548M](http://data.dmlc.ml/models/imagenet/vgg/) | | [*](https://github.com/tensorflow/models/blob/master/slim/README.md) | 19 | | GoogleNet(Inception V1) | C_68.7 T_69.8 | C_88.9 T_89.6 | [53.53M](https://github.com/BVLC/caffe/tree/master/models/bvlc_googlenet) | | | [*](https://github.com/tensorflow/models/blob/master/slim/README.md) | 20 | | Inception-v2(Inception-bn) | M_72.5 T_73.9 | M_90.8 T_91.8 | [134.6M ImageNet21k](https://github.com/pertusa/InceptionBN-21K-for-Caffe)| [43M ImageNet10k](https://github.com/dmlc/mxnet-model-gallery/blob/master/imagenet-1k-inception-bn.md) | | [*](https://github.com/tensorflow/models/blob/master/slim/README.md) | 21 | | Inception-V3 | M_76.88 T_78.0 | M_93.344 T_93.9 | | [95.6M](https://github.com/dmlc/mxnet-model-gallery/blob/master/imagenet-1k-inception-v3.md)| | [*](https://github.com/tensorflow/models/blob/master/slim/README.md) | 22 | | Inception V4 | M_79.83 T_80.2 | M_94.69 T_95.2 | | [164M] | | [*](https://github.com/tensorflow/models/blob/master/slim/README.md) | 23 | | Inception-ResNet-v2 | M_80.13 T_80.4 | M_95.18 T_95.3 | | [213.33MB] | | [*](https://github.com/tensorflow/models/blob/master/slim/README.md) | 24 | | ResNet-18 | C_69 M_69.52 | M_89 M_89.08 | [45M](https://github.com/HolmesShuan/ResNet-18-Caffemodel-on-ImageNet) | [45M](https://github.com/tornadomeet/ResNet) | | | 25 | | ResNet-34 | M_72.8 | M_91.14 | | [83M](https://github.com/tornadomeet/ResNet) | | | 26 | | ResNet-50 | C_75.3 M_75.61 T_75.2 | C_92.2 M_92.76 T_92.2 | [98M](https://github.com/KaimingHe/deep-residual-networks) | [98M](https://github.com/tornadomeet/ResNet) | | [*](https://github.com/tensorflow/models/blob/master/slim/README.md) | 27 | | ResNet-101 | C_76.4 M_77.32 T_76.4 | C_92.9 M_93.42 T_92.9 | [171M](https://github.com/KaimingHe/deep-residual-networks) | [170M](https://github.com/tornadomeet/ResNet) | | [*](https://github.com/tensorflow/models/blob/master/slim/README.md) | 28 | | ResNet-152 | C_77.0 M_77.75 T_76.8 | C_93.3 M_93.58 T_93.2 | [231M](https://github.com/KaimingHe/deep-residual-networks) | [230M](https://github.com/tornadomeet/ResNet)| | [*](https://github.com/tensorflow/models/blob/master/slim/README.md) | 29 | | ResNet-200 | M_77.86 | M_93.84 | | [247M](https://github.com/tornadomeet/ResNet) | | | 30 | | ResNet V2 50 | T_75.6 | T_92.8 | | | | [*](https://github.com/tensorflow/models/tree/master/slim) | 31 | | ResNet V2 101 | T_77.0 | T_93.7 | | | | [*](https://github.com/tensorflow/models/tree/master/slim) | 32 | | ResNet V2 152 | T_77.8 | T_94.1 | | | | [*](https://github.com/tensorflow/models/tree/master/slim) | 33 | | ResNeXt-50 | C_78.1 M_76.89 | C_94.1 M_93.32 | [95.76M](https://github.com/cypw/ResNeXt-1) | [96M](https://github.com/dmlc/mxnet/tree/master/example/image-classification#imagenet-1k) | | | 34 | | ResNeXt-101 | C_79.8 M_78.28 | C_95.1 M_94.08 | [169.10M](https://github.com/cypw/ResNeXt-1) | [169M](https://github.com/dmlc/mxnet/tree/master/example/image-classification#imagenet-1k) | | | 35 | | ResNeXt-152 | C_80.1 | C_95.2 | [229.53M](https://github.com/cypw/ResNeXt-1) | | | | 36 | | RexNeXt-101-64x4d | C_80.5 M_79.11 | C_95.2 M_94.30 | | [319M](https://github.com/dmlc/mxnet/tree/master/example/image-classification#imagenet-1k) | | | 37 | | WRN-50-2-bottleneck | C_77.87 | C_93.87 | [263.1M](https://github.com/soeaver/caffe-model) | | | | 38 | | MobileNet | C_70.81 M_71.24 T_66.51 | C_89.85 M_90.15 T_87.09 | [16.2M](https://github.com/shicai/MobileNet-Caffe) | [16.2M](https://github.com/KeyKy/mobilenet-mxnet)| | [*](https://github.com/Zehaos/MobileNet) | 39 | | DenseNet 121(k=32) | C_74.91 | C_92.19 | [30.8M](https://github.com/shicai/DenseNet-Caffe) | | | | 40 | | DenseNet 161(k=48) | C_77.64 | C_93.79 | [110M](https://github.com/shicai/DenseNet-Caffe) | | | | 41 | | DenseNet 169(k=32) | C_76.09 | C_93.14 | [54.6M](https://github.com/shicai/DenseNet-Caffe) | | | | 42 | | DenseNet 201(k=32) | C_77.31 | C_93.64 | [77.3M](https://github.com/shicai/DenseNet-Caffe) | [sym](https://github.com/bruinxiong/densenet.mxnet) | | | 43 | |CRU-Net-56 @x14 32x4d| M_78.1 | | | [98M](https://github.com/cypw/CRU-Net) | | | 44 | |CRU-Net-56 @x14 136x1d| M_78.3 | | | [98M](https://github.com/cypw/CRU-Net) | | | 45 | |CRU-Net-116 @x28x14 32x4d| M_79.4 | | | [168M](https://github.com/cypw/CRU-Net) | | | 46 | |CRU-Net-116, wider @x28x14 64x4d| M_79.7 | | | [318M](https://github.com/cypw/CRU-Net) | | | 47 | |CRU-Net-56, tiny @x14 32x4d| M_77.1 | | | [48MB](https://github.com/cypw/CRU-Net) | | | 48 | |DPN-92 | M_79.27 | M_94.63 | | [145M](https://github.com/cypw/DPNs) | | | 49 | |DPN-98 | M_79.85 | M_94.85 | | [236M](https://github.com/cypw/DPNs) | | | 50 | |DPN-131| M_80.07 | M_94.88 | | [304M](https://github.com/cypw/DPNs) | | | 51 | |DPN-107*| M_80.25| M_95.06 | | [333M](https://github.com/cypw/DPNs) | | | 52 | |PolyNet | C_81.289 | C_95.75 | [463M](https://github.com/CUHK-MMLAB/polynet) | | | | 53 | 54 | ## Call for contribution 55 | 56 | - Anything helps this repo, including discussion, testing, promotion and of course your awesome code. 57 | -------------------------------------------------------------------------------- /inception_resnet_v2/score.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | from common import modelzoo, find_mxnet 3 | import mxnet as mx 4 | import time 5 | import os,sys 6 | import logging 7 | import numpy as np 8 | import ipdb 9 | 10 | def save_npy(np_array, out): 11 | np.save(out, np_array) 12 | 13 | def score(prefix, epoch, data_val, metrics, gpus, batch_size, rgb_mean=None, mean_img=None, 14 | image_shape='3,224,224', data_nthreads=4, label_name='prob_label', max_num_examples=None): 15 | # create data iterator 16 | data_shape = tuple([int(i) for i in image_shape.split(',')]) 17 | if mean_img is not None: 18 | mean_args = {'mean_img':mean_img} 19 | elif rgb_mean is not None: 20 | rgb_mean = [float(i) for i in rgb_mean.split(',')] 21 | mean_args = {'mean_r':rgb_mean[0], 'mean_g':rgb_mean[1], 22 | 'mean_b':rgb_mean[2]} 23 | 24 | data = mx.io.ImageRecordIter( 25 | path_imgrec = data_val, 26 | label_width = 1, 27 | preprocess_threads = data_nthreads, 28 | batch_size = batch_size, 29 | data_shape = data_shape, 30 | label_name = label_name, 31 | rand_crop = False, 32 | rand_mirror = False, 33 | resize=331, 34 | scale=1.0/128.0, 35 | #std=128.0, 36 | **mean_args) 37 | if isinstance(prefix, str): 38 | # download model 39 | dir_path = os.path.dirname(os.path.realpath(__file__)) 40 | sym, arg_params, aux_params = mx.model.load_checkpoint(prefix, epoch) 41 | ''' 42 | internals = sym.get_internals() 43 | output_name = ['conv1_output', 44 | 'conv1_bn_output', 45 | 'conv2_1_dw_output', 46 | 'conv2_1_dw_bn_output', 47 | 'fc7_output'] 48 | output_blobs = [] 49 | for name in output_name: 50 | tmp = internals[name] 51 | output_blobs.append(tmp) 52 | output_blobs.append(sym) 53 | ''' 54 | #sym = mx.sym.Group(output_blobs) 55 | 56 | # create module 57 | if gpus == '': 58 | devs = mx.cpu() 59 | else: 60 | devs = [mx.gpu(int(i)) for i in gpus.split(',')] 61 | 62 | mod = mx.mod.Module(symbol=sym, context=devs, label_names=[label_name,]) 63 | mod.bind(for_training=False, 64 | data_shapes=data.provide_data, 65 | label_shapes=data.provide_label) 66 | mod.set_params(arg_params, aux_params) 67 | if not isinstance(metrics, list): 68 | metrics = [metrics,] 69 | tic = time.time() 70 | num = 0 71 | for batch in data: 72 | mod.forward(batch, is_train=False) 73 | 74 | if False: 75 | data = batch.data[0].asnumpy() 76 | save_npy(data, './data.npy') 77 | label = batch.label[0].asnumpy() 78 | save_npy(label, './label.npy') 79 | 80 | outputs = mod.get_outputs() 81 | for i in range(len(output_name)): 82 | output_blob = outputs[i].asnumpy() 83 | save_npy(output_blob, output_name[i] + '.npy') 84 | sys.exit(1) 85 | for m in metrics: 86 | mod.update_metric(m, batch.label) 87 | num += batch_size 88 | if max_num_examples is not None and num > max_num_examples: 89 | break 90 | return (num / (time.time() - tic), ) 91 | 92 | 93 | if __name__ == '__main__': 94 | parser = argparse.ArgumentParser(description='score a model on a dataset') 95 | parser.add_argument('--prefix', type=str, required=True, 96 | help = 'the model prefix name.') 97 | parser.add_argument('--epoch', type=int, required=True, help='epoch load') 98 | parser.add_argument('--gpus', type=str, default='0') 99 | parser.add_argument('--batch-size', type=int, default=64) 100 | parser.add_argument('--rgb-mean', type=str, default='0,0,0') 101 | parser.add_argument('--data-val', type=str, required=True) 102 | parser.add_argument('--image-shape', type=str, default='3,224,224') 103 | parser.add_argument('--data-nthreads', type=int, default=4, 104 | help='number of threads for data decoding') 105 | args = parser.parse_args() 106 | 107 | logger = logging.getLogger() 108 | logger.setLevel(logging.DEBUG) 109 | 110 | metrics = [mx.metric.create('acc'), 111 | mx.metric.create('top_k_accuracy', top_k = 5)] 112 | 113 | (speed,) = score(metrics = metrics, **vars(args)) 114 | logging.info('Finished with %f images per second', speed) 115 | 116 | for m in metrics: 117 | logging.info(m.get()) 118 | -------------------------------------------------------------------------------- /inception_resnet_v2/score.sh: -------------------------------------------------------------------------------- 1 | # TOP1 80.13 2 | # TOP5 95.18 3 | python score.py --prefix /data2/obj_detect/imagenet_models/deploy_inception_resnet_v2 --epoch 0 --gpus 2,3 --batch-size 32 --rgb-mean 128,128,128 --image-shape 3,299,299 --data-val /data_shared/datasets/ILSVRC2015/rec/val_480_q100.rec 4 | -------------------------------------------------------------------------------- /inception_v4/inception_v4.py: -------------------------------------------------------------------------------- 1 | import mxnet as mx 2 | data = mx.symbol.Variable(name='data') 3 | conv1_3x3_s2 = mx.symbol.Convolution(name='conv1_3x3_s2', data=data , num_filter=32, pad=(0, 0), kernel=(3,3), stride=(2,2), no_bias=True) 4 | conv1_3x3_s2_bn = mx.symbol.BatchNorm(name='conv1_3x3_s2_bn', data=conv1_3x3_s2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 5 | conv1_3x3_s2_scale = conv1_3x3_s2_bn 6 | conv1_3x3_s2_relu = mx.symbol.Activation(name='conv1_3x3_s2_relu', data=conv1_3x3_s2_scale , act_type='relu') 7 | conv2_3x3_s1 = mx.symbol.Convolution(name='conv2_3x3_s1', data=conv1_3x3_s2_relu , num_filter=32, pad=(0, 0), kernel=(3,3), stride=(1,1), no_bias=True) 8 | conv2_3x3_s1_bn = mx.symbol.BatchNorm(name='conv2_3x3_s1_bn', data=conv2_3x3_s1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 9 | conv2_3x3_s1_scale = conv2_3x3_s1_bn 10 | conv2_3x3_s1_relu = mx.symbol.Activation(name='conv2_3x3_s1_relu', data=conv2_3x3_s1_scale , act_type='relu') 11 | conv3_3x3_s1 = mx.symbol.Convolution(name='conv3_3x3_s1', data=conv2_3x3_s1_relu , num_filter=64, pad=(1, 1), kernel=(3,3), stride=(1,1), no_bias=True) 12 | conv3_3x3_s1_bn = mx.symbol.BatchNorm(name='conv3_3x3_s1_bn', data=conv3_3x3_s1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 13 | conv3_3x3_s1_scale = conv3_3x3_s1_bn 14 | conv3_3x3_s1_relu = mx.symbol.Activation(name='conv3_3x3_s1_relu', data=conv3_3x3_s1_scale , act_type='relu') 15 | inception_stem1_3x3_s2 = mx.symbol.Convolution(name='inception_stem1_3x3_s2', data=conv3_3x3_s1_relu , num_filter=96, pad=(0, 0), kernel=(3,3), stride=(2,2), no_bias=True) 16 | inception_stem1_3x3_s2_bn = mx.symbol.BatchNorm(name='inception_stem1_3x3_s2_bn', data=inception_stem1_3x3_s2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 17 | inception_stem1_3x3_s2_scale = inception_stem1_3x3_s2_bn 18 | inception_stem1_3x3_s2_relu = mx.symbol.Activation(name='inception_stem1_3x3_s2_relu', data=inception_stem1_3x3_s2_scale , act_type='relu') 19 | inception_stem1_pool = mx.symbol.Pooling(name='inception_stem1_pool', data=conv3_3x3_s1_relu , pooling_convention='full', pad=(0,0), kernel=(3,3), stride=(2,2), pool_type='max') 20 | inception_stem1 = mx.symbol.Concat(name='inception_stem1', *[inception_stem1_pool,inception_stem1_3x3_s2_relu] ) 21 | inception_stem2_3x3_reduce = mx.symbol.Convolution(name='inception_stem2_3x3_reduce', data=inception_stem1 , num_filter=64, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 22 | inception_stem2_3x3_reduce_bn = mx.symbol.BatchNorm(name='inception_stem2_3x3_reduce_bn', data=inception_stem2_3x3_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 23 | inception_stem2_3x3_reduce_scale = inception_stem2_3x3_reduce_bn 24 | inception_stem2_3x3_reduce_relu = mx.symbol.Activation(name='inception_stem2_3x3_reduce_relu', data=inception_stem2_3x3_reduce_scale , act_type='relu') 25 | inception_stem2_3x3 = mx.symbol.Convolution(name='inception_stem2_3x3', data=inception_stem2_3x3_reduce_relu , num_filter=96, pad=(0, 0), kernel=(3,3), stride=(1,1), no_bias=True) 26 | inception_stem2_3x3_bn = mx.symbol.BatchNorm(name='inception_stem2_3x3_bn', data=inception_stem2_3x3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 27 | inception_stem2_3x3_scale = inception_stem2_3x3_bn 28 | inception_stem2_3x3_relu = mx.symbol.Activation(name='inception_stem2_3x3_relu', data=inception_stem2_3x3_scale , act_type='relu') 29 | inception_stem2_1x7_reduce = mx.symbol.Convolution(name='inception_stem2_1x7_reduce', data=inception_stem1 , num_filter=64, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 30 | inception_stem2_1x7_reduce_bn = mx.symbol.BatchNorm(name='inception_stem2_1x7_reduce_bn', data=inception_stem2_1x7_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 31 | inception_stem2_1x7_reduce_scale = inception_stem2_1x7_reduce_bn 32 | inception_stem2_1x7_reduce_relu = mx.symbol.Activation(name='inception_stem2_1x7_reduce_relu', data=inception_stem2_1x7_reduce_scale , act_type='relu') 33 | inception_stem2_1x7 = mx.symbol.Convolution(name='inception_stem2_1x7', data=inception_stem2_1x7_reduce_relu , num_filter=64, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 34 | inception_stem2_1x7_bn = mx.symbol.BatchNorm(name='inception_stem2_1x7_bn', data=inception_stem2_1x7 , use_global_stats=True, fix_gamma=False, eps=0.001000) 35 | inception_stem2_1x7_scale = inception_stem2_1x7_bn 36 | inception_stem2_1x7_relu = mx.symbol.Activation(name='inception_stem2_1x7_relu', data=inception_stem2_1x7_scale , act_type='relu') 37 | inception_stem2_7x1 = mx.symbol.Convolution(name='inception_stem2_7x1', data=inception_stem2_1x7_relu , num_filter=64, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 38 | inception_stem2_7x1_bn = mx.symbol.BatchNorm(name='inception_stem2_7x1_bn', data=inception_stem2_7x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 39 | inception_stem2_7x1_scale = inception_stem2_7x1_bn 40 | inception_stem2_7x1_relu = mx.symbol.Activation(name='inception_stem2_7x1_relu', data=inception_stem2_7x1_scale , act_type='relu') 41 | inception_stem2_3x3_2 = mx.symbol.Convolution(name='inception_stem2_3x3_2', data=inception_stem2_7x1_relu , num_filter=96, pad=(0, 0), kernel=(3,3), stride=(1,1), no_bias=True) 42 | inception_stem2_3x3_2_bn = mx.symbol.BatchNorm(name='inception_stem2_3x3_2_bn', data=inception_stem2_3x3_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 43 | inception_stem2_3x3_2_scale = inception_stem2_3x3_2_bn 44 | inception_stem2_3x3_2_relu = mx.symbol.Activation(name='inception_stem2_3x3_2_relu', data=inception_stem2_3x3_2_scale , act_type='relu') 45 | inception_stem2 = mx.symbol.Concat(name='inception_stem2', *[inception_stem2_3x3_relu,inception_stem2_3x3_2_relu] ) 46 | inception_stem3_3x3_s2 = mx.symbol.Convolution(name='inception_stem3_3x3_s2', data=inception_stem2 , num_filter=192, pad=(0, 0), kernel=(3,3), stride=(2,2), no_bias=True) 47 | inception_stem3_3x3_s2_bn = mx.symbol.BatchNorm(name='inception_stem3_3x3_s2_bn', data=inception_stem3_3x3_s2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 48 | inception_stem3_3x3_s2_scale = inception_stem3_3x3_s2_bn 49 | inception_stem3_3x3_s2_relu = mx.symbol.Activation(name='inception_stem3_3x3_s2_relu', data=inception_stem3_3x3_s2_scale , act_type='relu') 50 | inception_stem3_pool = mx.symbol.Pooling(name='inception_stem3_pool', data=inception_stem2 , pooling_convention='full', pad=(0,0), kernel=(3,3), stride=(2,2), pool_type='max') 51 | inception_stem3 = mx.symbol.Concat(name='inception_stem3', *[inception_stem3_3x3_s2_relu,inception_stem3_pool] ) 52 | inception_a1_1x1_2 = mx.symbol.Convolution(name='inception_a1_1x1_2', data=inception_stem3 , num_filter=96, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 53 | inception_a1_1x1_2_bn = mx.symbol.BatchNorm(name='inception_a1_1x1_2_bn', data=inception_a1_1x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 54 | inception_a1_1x1_2_scale = inception_a1_1x1_2_bn 55 | inception_a1_1x1_2_relu = mx.symbol.Activation(name='inception_a1_1x1_2_relu', data=inception_a1_1x1_2_scale , act_type='relu') 56 | inception_a1_3x3_reduce = mx.symbol.Convolution(name='inception_a1_3x3_reduce', data=inception_stem3 , num_filter=64, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 57 | inception_a1_3x3_reduce_bn = mx.symbol.BatchNorm(name='inception_a1_3x3_reduce_bn', data=inception_a1_3x3_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 58 | inception_a1_3x3_reduce_scale = inception_a1_3x3_reduce_bn 59 | inception_a1_3x3_reduce_relu = mx.symbol.Activation(name='inception_a1_3x3_reduce_relu', data=inception_a1_3x3_reduce_scale , act_type='relu') 60 | inception_a1_3x3 = mx.symbol.Convolution(name='inception_a1_3x3', data=inception_a1_3x3_reduce_relu , num_filter=96, pad=(1, 1), kernel=(3,3), stride=(1,1), no_bias=True) 61 | inception_a1_3x3_bn = mx.symbol.BatchNorm(name='inception_a1_3x3_bn', data=inception_a1_3x3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 62 | inception_a1_3x3_scale = inception_a1_3x3_bn 63 | inception_a1_3x3_relu = mx.symbol.Activation(name='inception_a1_3x3_relu', data=inception_a1_3x3_scale , act_type='relu') 64 | inception_a1_3x3_2_reduce = mx.symbol.Convolution(name='inception_a1_3x3_2_reduce', data=inception_stem3 , num_filter=64, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 65 | inception_a1_3x3_2_reduce_bn = mx.symbol.BatchNorm(name='inception_a1_3x3_2_reduce_bn', data=inception_a1_3x3_2_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 66 | inception_a1_3x3_2_reduce_scale = inception_a1_3x3_2_reduce_bn 67 | inception_a1_3x3_2_reduce_relu = mx.symbol.Activation(name='inception_a1_3x3_2_reduce_relu', data=inception_a1_3x3_2_reduce_scale , act_type='relu') 68 | inception_a1_3x3_2 = mx.symbol.Convolution(name='inception_a1_3x3_2', data=inception_a1_3x3_2_reduce_relu , num_filter=96, pad=(1, 1), kernel=(3,3), stride=(1,1), no_bias=True) 69 | inception_a1_3x3_2_bn = mx.symbol.BatchNorm(name='inception_a1_3x3_2_bn', data=inception_a1_3x3_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 70 | inception_a1_3x3_2_scale = inception_a1_3x3_2_bn 71 | inception_a1_3x3_2_relu = mx.symbol.Activation(name='inception_a1_3x3_2_relu', data=inception_a1_3x3_2_scale , act_type='relu') 72 | inception_a1_3x3_3 = mx.symbol.Convolution(name='inception_a1_3x3_3', data=inception_a1_3x3_2_relu , num_filter=96, pad=(1, 1), kernel=(3,3), stride=(1,1), no_bias=True) 73 | inception_a1_3x3_3_bn = mx.symbol.BatchNorm(name='inception_a1_3x3_3_bn', data=inception_a1_3x3_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 74 | inception_a1_3x3_3_scale = inception_a1_3x3_3_bn 75 | inception_a1_3x3_3_relu = mx.symbol.Activation(name='inception_a1_3x3_3_relu', data=inception_a1_3x3_3_scale , act_type='relu') 76 | inception_a1_pool_ave = mx.symbol.Pooling(name='inception_a1_pool_ave', data=inception_stem3 , pooling_convention='full', pad=(1,1), kernel=(3,3), stride=(1,1), pool_type='avg') 77 | inception_a1_1x1 = mx.symbol.Convolution(name='inception_a1_1x1', data=inception_a1_pool_ave , num_filter=96, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 78 | inception_a1_1x1_bn = mx.symbol.BatchNorm(name='inception_a1_1x1_bn', data=inception_a1_1x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 79 | inception_a1_1x1_scale = inception_a1_1x1_bn 80 | inception_a1_1x1_relu = mx.symbol.Activation(name='inception_a1_1x1_relu', data=inception_a1_1x1_scale , act_type='relu') 81 | inception_a1_concat = mx.symbol.Concat(name='inception_a1_concat', *[inception_a1_1x1_2_relu,inception_a1_3x3_relu,inception_a1_3x3_3_relu,inception_a1_1x1_relu] ) 82 | inception_a2_1x1_2 = mx.symbol.Convolution(name='inception_a2_1x1_2', data=inception_a1_concat , num_filter=96, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 83 | inception_a2_1x1_2_bn = mx.symbol.BatchNorm(name='inception_a2_1x1_2_bn', data=inception_a2_1x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 84 | inception_a2_1x1_2_scale = inception_a2_1x1_2_bn 85 | inception_a2_1x1_2_relu = mx.symbol.Activation(name='inception_a2_1x1_2_relu', data=inception_a2_1x1_2_scale , act_type='relu') 86 | inception_a2_3x3_reduce = mx.symbol.Convolution(name='inception_a2_3x3_reduce', data=inception_a1_concat , num_filter=64, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 87 | inception_a2_3x3_reduce_bn = mx.symbol.BatchNorm(name='inception_a2_3x3_reduce_bn', data=inception_a2_3x3_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 88 | inception_a2_3x3_reduce_scale = inception_a2_3x3_reduce_bn 89 | inception_a2_3x3_reduce_relu = mx.symbol.Activation(name='inception_a2_3x3_reduce_relu', data=inception_a2_3x3_reduce_scale , act_type='relu') 90 | inception_a2_3x3 = mx.symbol.Convolution(name='inception_a2_3x3', data=inception_a2_3x3_reduce_relu , num_filter=96, pad=(1, 1), kernel=(3,3), stride=(1,1), no_bias=True) 91 | inception_a2_3x3_bn = mx.symbol.BatchNorm(name='inception_a2_3x3_bn', data=inception_a2_3x3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 92 | inception_a2_3x3_scale = inception_a2_3x3_bn 93 | inception_a2_3x3_relu = mx.symbol.Activation(name='inception_a2_3x3_relu', data=inception_a2_3x3_scale , act_type='relu') 94 | inception_a2_3x3_2_reduce = mx.symbol.Convolution(name='inception_a2_3x3_2_reduce', data=inception_a1_concat , num_filter=64, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 95 | inception_a2_3x3_2_reduce_bn = mx.symbol.BatchNorm(name='inception_a2_3x3_2_reduce_bn', data=inception_a2_3x3_2_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 96 | inception_a2_3x3_2_reduce_scale = inception_a2_3x3_2_reduce_bn 97 | inception_a2_3x3_2_reduce_relu = mx.symbol.Activation(name='inception_a2_3x3_2_reduce_relu', data=inception_a2_3x3_2_reduce_scale , act_type='relu') 98 | inception_a2_3x3_2 = mx.symbol.Convolution(name='inception_a2_3x3_2', data=inception_a2_3x3_2_reduce_relu , num_filter=96, pad=(1, 1), kernel=(3,3), stride=(1,1), no_bias=True) 99 | inception_a2_3x3_2_bn = mx.symbol.BatchNorm(name='inception_a2_3x3_2_bn', data=inception_a2_3x3_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 100 | inception_a2_3x3_2_scale = inception_a2_3x3_2_bn 101 | inception_a2_3x3_2_relu = mx.symbol.Activation(name='inception_a2_3x3_2_relu', data=inception_a2_3x3_2_scale , act_type='relu') 102 | inception_a2_3x3_3 = mx.symbol.Convolution(name='inception_a2_3x3_3', data=inception_a2_3x3_2_relu , num_filter=96, pad=(1, 1), kernel=(3,3), stride=(1,1), no_bias=True) 103 | inception_a2_3x3_3_bn = mx.symbol.BatchNorm(name='inception_a2_3x3_3_bn', data=inception_a2_3x3_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 104 | inception_a2_3x3_3_scale = inception_a2_3x3_3_bn 105 | inception_a2_3x3_3_relu = mx.symbol.Activation(name='inception_a2_3x3_3_relu', data=inception_a2_3x3_3_scale , act_type='relu') 106 | inception_a2_pool_ave = mx.symbol.Pooling(name='inception_a2_pool_ave', data=inception_a1_concat , pooling_convention='full', pad=(1,1), kernel=(3,3), stride=(1,1), pool_type='avg') 107 | inception_a2_1x1 = mx.symbol.Convolution(name='inception_a2_1x1', data=inception_a2_pool_ave , num_filter=96, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 108 | inception_a2_1x1_bn = mx.symbol.BatchNorm(name='inception_a2_1x1_bn', data=inception_a2_1x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 109 | inception_a2_1x1_scale = inception_a2_1x1_bn 110 | inception_a2_1x1_relu = mx.symbol.Activation(name='inception_a2_1x1_relu', data=inception_a2_1x1_scale , act_type='relu') 111 | inception_a2_concat = mx.symbol.Concat(name='inception_a2_concat', *[inception_a2_1x1_2_relu,inception_a2_3x3_relu,inception_a2_3x3_3_relu,inception_a2_1x1_relu] ) 112 | inception_a3_1x1_2 = mx.symbol.Convolution(name='inception_a3_1x1_2', data=inception_a2_concat , num_filter=96, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 113 | inception_a3_1x1_2_bn = mx.symbol.BatchNorm(name='inception_a3_1x1_2_bn', data=inception_a3_1x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 114 | inception_a3_1x1_2_scale = inception_a3_1x1_2_bn 115 | inception_a3_1x1_2_relu = mx.symbol.Activation(name='inception_a3_1x1_2_relu', data=inception_a3_1x1_2_scale , act_type='relu') 116 | inception_a3_3x3_reduce = mx.symbol.Convolution(name='inception_a3_3x3_reduce', data=inception_a2_concat , num_filter=64, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 117 | inception_a3_3x3_reduce_bn = mx.symbol.BatchNorm(name='inception_a3_3x3_reduce_bn', data=inception_a3_3x3_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 118 | inception_a3_3x3_reduce_scale = inception_a3_3x3_reduce_bn 119 | inception_a3_3x3_reduce_relu = mx.symbol.Activation(name='inception_a3_3x3_reduce_relu', data=inception_a3_3x3_reduce_scale , act_type='relu') 120 | inception_a3_3x3 = mx.symbol.Convolution(name='inception_a3_3x3', data=inception_a3_3x3_reduce_relu , num_filter=96, pad=(1, 1), kernel=(3,3), stride=(1,1), no_bias=True) 121 | inception_a3_3x3_bn = mx.symbol.BatchNorm(name='inception_a3_3x3_bn', data=inception_a3_3x3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 122 | inception_a3_3x3_scale = inception_a3_3x3_bn 123 | inception_a3_3x3_relu = mx.symbol.Activation(name='inception_a3_3x3_relu', data=inception_a3_3x3_scale , act_type='relu') 124 | inception_a3_3x3_2_reduce = mx.symbol.Convolution(name='inception_a3_3x3_2_reduce', data=inception_a2_concat , num_filter=64, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 125 | inception_a3_3x3_2_reduce_bn = mx.symbol.BatchNorm(name='inception_a3_3x3_2_reduce_bn', data=inception_a3_3x3_2_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 126 | inception_a3_3x3_2_reduce_scale = inception_a3_3x3_2_reduce_bn 127 | inception_a3_3x3_2_reduce_relu = mx.symbol.Activation(name='inception_a3_3x3_2_reduce_relu', data=inception_a3_3x3_2_reduce_scale , act_type='relu') 128 | inception_a3_3x3_2 = mx.symbol.Convolution(name='inception_a3_3x3_2', data=inception_a3_3x3_2_reduce_relu , num_filter=96, pad=(1, 1), kernel=(3,3), stride=(1,1), no_bias=True) 129 | inception_a3_3x3_2_bn = mx.symbol.BatchNorm(name='inception_a3_3x3_2_bn', data=inception_a3_3x3_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 130 | inception_a3_3x3_2_scale = inception_a3_3x3_2_bn 131 | inception_a3_3x3_2_relu = mx.symbol.Activation(name='inception_a3_3x3_2_relu', data=inception_a3_3x3_2_scale , act_type='relu') 132 | inception_a3_3x3_3 = mx.symbol.Convolution(name='inception_a3_3x3_3', data=inception_a3_3x3_2_relu , num_filter=96, pad=(1, 1), kernel=(3,3), stride=(1,1), no_bias=True) 133 | inception_a3_3x3_3_bn = mx.symbol.BatchNorm(name='inception_a3_3x3_3_bn', data=inception_a3_3x3_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 134 | inception_a3_3x3_3_scale = inception_a3_3x3_3_bn 135 | inception_a3_3x3_3_relu = mx.symbol.Activation(name='inception_a3_3x3_3_relu', data=inception_a3_3x3_3_scale , act_type='relu') 136 | inception_a3_pool_ave = mx.symbol.Pooling(name='inception_a3_pool_ave', data=inception_a2_concat , pooling_convention='full', pad=(1,1), kernel=(3,3), stride=(1,1), pool_type='avg') 137 | inception_a3_1x1 = mx.symbol.Convolution(name='inception_a3_1x1', data=inception_a3_pool_ave , num_filter=96, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 138 | inception_a3_1x1_bn = mx.symbol.BatchNorm(name='inception_a3_1x1_bn', data=inception_a3_1x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 139 | inception_a3_1x1_scale = inception_a3_1x1_bn 140 | inception_a3_1x1_relu = mx.symbol.Activation(name='inception_a3_1x1_relu', data=inception_a3_1x1_scale , act_type='relu') 141 | inception_a3_concat = mx.symbol.Concat(name='inception_a3_concat', *[inception_a3_1x1_2_relu,inception_a3_3x3_relu,inception_a3_3x3_3_relu,inception_a3_1x1_relu] ) 142 | inception_a4_1x1_2 = mx.symbol.Convolution(name='inception_a4_1x1_2', data=inception_a3_concat , num_filter=96, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 143 | inception_a4_1x1_2_bn = mx.symbol.BatchNorm(name='inception_a4_1x1_2_bn', data=inception_a4_1x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 144 | inception_a4_1x1_2_scale = inception_a4_1x1_2_bn 145 | inception_a4_1x1_2_relu = mx.symbol.Activation(name='inception_a4_1x1_2_relu', data=inception_a4_1x1_2_scale , act_type='relu') 146 | inception_a4_3x3_reduce = mx.symbol.Convolution(name='inception_a4_3x3_reduce', data=inception_a3_concat , num_filter=64, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 147 | inception_a4_3x3_reduce_bn = mx.symbol.BatchNorm(name='inception_a4_3x3_reduce_bn', data=inception_a4_3x3_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 148 | inception_a4_3x3_reduce_scale = inception_a4_3x3_reduce_bn 149 | inception_a4_3x3_reduce_relu = mx.symbol.Activation(name='inception_a4_3x3_reduce_relu', data=inception_a4_3x3_reduce_scale , act_type='relu') 150 | inception_a4_3x3 = mx.symbol.Convolution(name='inception_a4_3x3', data=inception_a4_3x3_reduce_relu , num_filter=96, pad=(1, 1), kernel=(3,3), stride=(1,1), no_bias=True) 151 | inception_a4_3x3_bn = mx.symbol.BatchNorm(name='inception_a4_3x3_bn', data=inception_a4_3x3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 152 | inception_a4_3x3_scale = inception_a4_3x3_bn 153 | inception_a4_3x3_relu = mx.symbol.Activation(name='inception_a4_3x3_relu', data=inception_a4_3x3_scale , act_type='relu') 154 | inception_a4_3x3_2_reduce = mx.symbol.Convolution(name='inception_a4_3x3_2_reduce', data=inception_a3_concat , num_filter=64, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 155 | inception_a4_3x3_2_reduce_bn = mx.symbol.BatchNorm(name='inception_a4_3x3_2_reduce_bn', data=inception_a4_3x3_2_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 156 | inception_a4_3x3_2_reduce_scale = inception_a4_3x3_2_reduce_bn 157 | inception_a4_3x3_2_reduce_relu = mx.symbol.Activation(name='inception_a4_3x3_2_reduce_relu', data=inception_a4_3x3_2_reduce_scale , act_type='relu') 158 | inception_a4_3x3_2 = mx.symbol.Convolution(name='inception_a4_3x3_2', data=inception_a4_3x3_2_reduce_relu , num_filter=96, pad=(1, 1), kernel=(3,3), stride=(1,1), no_bias=True) 159 | inception_a4_3x3_2_bn = mx.symbol.BatchNorm(name='inception_a4_3x3_2_bn', data=inception_a4_3x3_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 160 | inception_a4_3x3_2_scale = inception_a4_3x3_2_bn 161 | inception_a4_3x3_2_relu = mx.symbol.Activation(name='inception_a4_3x3_2_relu', data=inception_a4_3x3_2_scale , act_type='relu') 162 | inception_a4_3x3_3 = mx.symbol.Convolution(name='inception_a4_3x3_3', data=inception_a4_3x3_2_relu , num_filter=96, pad=(1, 1), kernel=(3,3), stride=(1,1), no_bias=True) 163 | inception_a4_3x3_3_bn = mx.symbol.BatchNorm(name='inception_a4_3x3_3_bn', data=inception_a4_3x3_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 164 | inception_a4_3x3_3_scale = inception_a4_3x3_3_bn 165 | inception_a4_3x3_3_relu = mx.symbol.Activation(name='inception_a4_3x3_3_relu', data=inception_a4_3x3_3_scale , act_type='relu') 166 | inception_a4_pool_ave = mx.symbol.Pooling(name='inception_a4_pool_ave', data=inception_a3_concat , pooling_convention='full', pad=(1,1), kernel=(3,3), stride=(1,1), pool_type='avg') 167 | inception_a4_1x1 = mx.symbol.Convolution(name='inception_a4_1x1', data=inception_a4_pool_ave , num_filter=96, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 168 | inception_a4_1x1_bn = mx.symbol.BatchNorm(name='inception_a4_1x1_bn', data=inception_a4_1x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 169 | inception_a4_1x1_scale = inception_a4_1x1_bn 170 | inception_a4_1x1_relu = mx.symbol.Activation(name='inception_a4_1x1_relu', data=inception_a4_1x1_scale , act_type='relu') 171 | inception_a4_concat = mx.symbol.Concat(name='inception_a4_concat', *[inception_a4_1x1_2_relu,inception_a4_3x3_relu,inception_a4_3x3_3_relu,inception_a4_1x1_relu] ) 172 | reduction_a_3x3 = mx.symbol.Convolution(name='reduction_a_3x3', data=inception_a4_concat , num_filter=384, pad=(0, 0), kernel=(3,3), stride=(2,2), no_bias=True) 173 | reduction_a_3x3_bn = mx.symbol.BatchNorm(name='reduction_a_3x3_bn', data=reduction_a_3x3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 174 | reduction_a_3x3_scale = reduction_a_3x3_bn 175 | reduction_a_3x3_relu = mx.symbol.Activation(name='reduction_a_3x3_relu', data=reduction_a_3x3_scale , act_type='relu') 176 | reduction_a_3x3_2_reduce = mx.symbol.Convolution(name='reduction_a_3x3_2_reduce', data=inception_a4_concat , num_filter=192, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 177 | reduction_a_3x3_2_reduce_bn = mx.symbol.BatchNorm(name='reduction_a_3x3_2_reduce_bn', data=reduction_a_3x3_2_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 178 | reduction_a_3x3_2_reduce_scale = reduction_a_3x3_2_reduce_bn 179 | reduction_a_3x3_2_reduce_relu = mx.symbol.Activation(name='reduction_a_3x3_2_reduce_relu', data=reduction_a_3x3_2_reduce_scale , act_type='relu') 180 | reduction_a_3x3_2 = mx.symbol.Convolution(name='reduction_a_3x3_2', data=reduction_a_3x3_2_reduce_relu , num_filter=224, pad=(1, 1), kernel=(3,3), stride=(1,1), no_bias=True) 181 | reduction_a_3x3_2_bn = mx.symbol.BatchNorm(name='reduction_a_3x3_2_bn', data=reduction_a_3x3_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 182 | reduction_a_3x3_2_scale = reduction_a_3x3_2_bn 183 | reduction_a_3x3_2_relu = mx.symbol.Activation(name='reduction_a_3x3_2_relu', data=reduction_a_3x3_2_scale , act_type='relu') 184 | reduction_a_3x3_3 = mx.symbol.Convolution(name='reduction_a_3x3_3', data=reduction_a_3x3_2_relu , num_filter=256, pad=(0, 0), kernel=(3,3), stride=(2,2), no_bias=True) 185 | reduction_a_3x3_3_bn = mx.symbol.BatchNorm(name='reduction_a_3x3_3_bn', data=reduction_a_3x3_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 186 | reduction_a_3x3_3_scale = reduction_a_3x3_3_bn 187 | reduction_a_3x3_3_relu = mx.symbol.Activation(name='reduction_a_3x3_3_relu', data=reduction_a_3x3_3_scale , act_type='relu') 188 | reduction_a_pool = mx.symbol.Pooling(name='reduction_a_pool', data=inception_a4_concat , pooling_convention='full', pad=(0,0), kernel=(3,3), stride=(2,2), pool_type='max') 189 | reduction_a_concat = mx.symbol.Concat(name='reduction_a_concat', *[reduction_a_3x3_relu,reduction_a_3x3_3_relu,reduction_a_pool] ) 190 | inception_b1_1x1_2 = mx.symbol.Convolution(name='inception_b1_1x1_2', data=reduction_a_concat , num_filter=384, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 191 | inception_b1_1x1_2_bn = mx.symbol.BatchNorm(name='inception_b1_1x1_2_bn', data=inception_b1_1x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 192 | inception_b1_1x1_2_scale = inception_b1_1x1_2_bn 193 | inception_b1_1x1_2_relu = mx.symbol.Activation(name='inception_b1_1x1_2_relu', data=inception_b1_1x1_2_scale , act_type='relu') 194 | inception_b1_1x7_reduce = mx.symbol.Convolution(name='inception_b1_1x7_reduce', data=reduction_a_concat , num_filter=192, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 195 | inception_b1_1x7_reduce_bn = mx.symbol.BatchNorm(name='inception_b1_1x7_reduce_bn', data=inception_b1_1x7_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 196 | inception_b1_1x7_reduce_scale = inception_b1_1x7_reduce_bn 197 | inception_b1_1x7_reduce_relu = mx.symbol.Activation(name='inception_b1_1x7_reduce_relu', data=inception_b1_1x7_reduce_scale , act_type='relu') 198 | inception_b1_1x7 = mx.symbol.Convolution(name='inception_b1_1x7', data=inception_b1_1x7_reduce_relu , num_filter=224, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 199 | inception_b1_1x7_bn = mx.symbol.BatchNorm(name='inception_b1_1x7_bn', data=inception_b1_1x7 , use_global_stats=True, fix_gamma=False, eps=0.001000) 200 | inception_b1_1x7_scale = inception_b1_1x7_bn 201 | inception_b1_1x7_relu = mx.symbol.Activation(name='inception_b1_1x7_relu', data=inception_b1_1x7_scale , act_type='relu') 202 | inception_b1_7x1 = mx.symbol.Convolution(name='inception_b1_7x1', data=inception_b1_1x7_relu , num_filter=256, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 203 | inception_b1_7x1_bn = mx.symbol.BatchNorm(name='inception_b1_7x1_bn', data=inception_b1_7x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 204 | inception_b1_7x1_scale = inception_b1_7x1_bn 205 | inception_b1_7x1_relu = mx.symbol.Activation(name='inception_b1_7x1_relu', data=inception_b1_7x1_scale , act_type='relu') 206 | inception_b1_7x1_2_reduce = mx.symbol.Convolution(name='inception_b1_7x1_2_reduce', data=reduction_a_concat , num_filter=192, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 207 | inception_b1_7x1_2_reduce_bn = mx.symbol.BatchNorm(name='inception_b1_7x1_2_reduce_bn', data=inception_b1_7x1_2_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 208 | inception_b1_7x1_2_reduce_scale = inception_b1_7x1_2_reduce_bn 209 | inception_b1_7x1_2_reduce_relu = mx.symbol.Activation(name='inception_b1_7x1_2_reduce_relu', data=inception_b1_7x1_2_reduce_scale , act_type='relu') 210 | inception_b1_7x1_2 = mx.symbol.Convolution(name='inception_b1_7x1_2', data=inception_b1_7x1_2_reduce_relu , num_filter=192, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 211 | inception_b1_7x1_2_bn = mx.symbol.BatchNorm(name='inception_b1_7x1_2_bn', data=inception_b1_7x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 212 | inception_b1_7x1_2_scale = inception_b1_7x1_2_bn 213 | inception_b1_7x1_2_relu = mx.symbol.Activation(name='inception_b1_7x1_2_relu', data=inception_b1_7x1_2_scale , act_type='relu') 214 | inception_b1_1x7_2 = mx.symbol.Convolution(name='inception_b1_1x7_2', data=inception_b1_7x1_2_relu , num_filter=224, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 215 | inception_b1_1x7_2_bn = mx.symbol.BatchNorm(name='inception_b1_1x7_2_bn', data=inception_b1_1x7_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 216 | inception_b1_1x7_2_scale = inception_b1_1x7_2_bn 217 | inception_b1_1x7_2_relu = mx.symbol.Activation(name='inception_b1_1x7_2_relu', data=inception_b1_1x7_2_scale , act_type='relu') 218 | inception_b1_7x1_3 = mx.symbol.Convolution(name='inception_b1_7x1_3', data=inception_b1_1x7_2_relu , num_filter=224, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 219 | inception_b1_7x1_3_bn = mx.symbol.BatchNorm(name='inception_b1_7x1_3_bn', data=inception_b1_7x1_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 220 | inception_b1_7x1_3_scale = inception_b1_7x1_3_bn 221 | inception_b1_7x1_3_relu = mx.symbol.Activation(name='inception_b1_7x1_3_relu', data=inception_b1_7x1_3_scale , act_type='relu') 222 | inception_b1_1x7_3 = mx.symbol.Convolution(name='inception_b1_1x7_3', data=inception_b1_7x1_3_relu , num_filter=256, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 223 | inception_b1_1x7_3_bn = mx.symbol.BatchNorm(name='inception_b1_1x7_3_bn', data=inception_b1_1x7_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 224 | inception_b1_1x7_3_scale = inception_b1_1x7_3_bn 225 | inception_b1_1x7_3_relu = mx.symbol.Activation(name='inception_b1_1x7_3_relu', data=inception_b1_1x7_3_scale , act_type='relu') 226 | inception_b1_pool_ave = mx.symbol.Pooling(name='inception_b1_pool_ave', data=reduction_a_concat , pooling_convention='full', pad=(1,1), kernel=(3,3), stride=(1,1), pool_type='avg') 227 | inception_b1_1x1 = mx.symbol.Convolution(name='inception_b1_1x1', data=inception_b1_pool_ave , num_filter=128, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 228 | inception_b1_1x1_bn = mx.symbol.BatchNorm(name='inception_b1_1x1_bn', data=inception_b1_1x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 229 | inception_b1_1x1_scale = inception_b1_1x1_bn 230 | inception_b1_1x1_relu = mx.symbol.Activation(name='inception_b1_1x1_relu', data=inception_b1_1x1_scale , act_type='relu') 231 | inception_b1_concat = mx.symbol.Concat(name='inception_b1_concat', *[inception_b1_1x1_2_relu,inception_b1_7x1_relu,inception_b1_1x7_3_relu,inception_b1_1x1_relu] ) 232 | inception_b2_1x1_2 = mx.symbol.Convolution(name='inception_b2_1x1_2', data=inception_b1_concat , num_filter=384, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 233 | inception_b2_1x1_2_bn = mx.symbol.BatchNorm(name='inception_b2_1x1_2_bn', data=inception_b2_1x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 234 | inception_b2_1x1_2_scale = inception_b2_1x1_2_bn 235 | inception_b2_1x1_2_relu = mx.symbol.Activation(name='inception_b2_1x1_2_relu', data=inception_b2_1x1_2_scale , act_type='relu') 236 | inception_b2_1x7_reduce = mx.symbol.Convolution(name='inception_b2_1x7_reduce', data=inception_b1_concat , num_filter=192, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 237 | inception_b2_1x7_reduce_bn = mx.symbol.BatchNorm(name='inception_b2_1x7_reduce_bn', data=inception_b2_1x7_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 238 | inception_b2_1x7_reduce_scale = inception_b2_1x7_reduce_bn 239 | inception_b2_1x7_reduce_relu = mx.symbol.Activation(name='inception_b2_1x7_reduce_relu', data=inception_b2_1x7_reduce_scale , act_type='relu') 240 | inception_b2_1x7 = mx.symbol.Convolution(name='inception_b2_1x7', data=inception_b2_1x7_reduce_relu , num_filter=224, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 241 | inception_b2_1x7_bn = mx.symbol.BatchNorm(name='inception_b2_1x7_bn', data=inception_b2_1x7 , use_global_stats=True, fix_gamma=False, eps=0.001000) 242 | inception_b2_1x7_scale = inception_b2_1x7_bn 243 | inception_b2_1x7_relu = mx.symbol.Activation(name='inception_b2_1x7_relu', data=inception_b2_1x7_scale , act_type='relu') 244 | inception_b2_7x1 = mx.symbol.Convolution(name='inception_b2_7x1', data=inception_b2_1x7_relu , num_filter=256, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 245 | inception_b2_7x1_bn = mx.symbol.BatchNorm(name='inception_b2_7x1_bn', data=inception_b2_7x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 246 | inception_b2_7x1_scale = inception_b2_7x1_bn 247 | inception_b2_7x1_relu = mx.symbol.Activation(name='inception_b2_7x1_relu', data=inception_b2_7x1_scale , act_type='relu') 248 | inception_b2_7x1_2_reduce = mx.symbol.Convolution(name='inception_b2_7x1_2_reduce', data=inception_b1_concat , num_filter=192, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 249 | inception_b2_7x1_2_reduce_bn = mx.symbol.BatchNorm(name='inception_b2_7x1_2_reduce_bn', data=inception_b2_7x1_2_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 250 | inception_b2_7x1_2_reduce_scale = inception_b2_7x1_2_reduce_bn 251 | inception_b2_7x1_2_reduce_relu = mx.symbol.Activation(name='inception_b2_7x1_2_reduce_relu', data=inception_b2_7x1_2_reduce_scale , act_type='relu') 252 | inception_b2_7x1_2 = mx.symbol.Convolution(name='inception_b2_7x1_2', data=inception_b2_7x1_2_reduce_relu , num_filter=192, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 253 | inception_b2_7x1_2_bn = mx.symbol.BatchNorm(name='inception_b2_7x1_2_bn', data=inception_b2_7x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 254 | inception_b2_7x1_2_scale = inception_b2_7x1_2_bn 255 | inception_b2_7x1_2_relu = mx.symbol.Activation(name='inception_b2_7x1_2_relu', data=inception_b2_7x1_2_scale , act_type='relu') 256 | inception_b2_1x7_2 = mx.symbol.Convolution(name='inception_b2_1x7_2', data=inception_b2_7x1_2_relu , num_filter=224, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 257 | inception_b2_1x7_2_bn = mx.symbol.BatchNorm(name='inception_b2_1x7_2_bn', data=inception_b2_1x7_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 258 | inception_b2_1x7_2_scale = inception_b2_1x7_2_bn 259 | inception_b2_1x7_2_relu = mx.symbol.Activation(name='inception_b2_1x7_2_relu', data=inception_b2_1x7_2_scale , act_type='relu') 260 | inception_b2_7x1_3 = mx.symbol.Convolution(name='inception_b2_7x1_3', data=inception_b2_1x7_2_relu , num_filter=224, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 261 | inception_b2_7x1_3_bn = mx.symbol.BatchNorm(name='inception_b2_7x1_3_bn', data=inception_b2_7x1_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 262 | inception_b2_7x1_3_scale = inception_b2_7x1_3_bn 263 | inception_b2_7x1_3_relu = mx.symbol.Activation(name='inception_b2_7x1_3_relu', data=inception_b2_7x1_3_scale , act_type='relu') 264 | inception_b2_1x7_3 = mx.symbol.Convolution(name='inception_b2_1x7_3', data=inception_b2_7x1_3_relu , num_filter=256, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 265 | inception_b2_1x7_3_bn = mx.symbol.BatchNorm(name='inception_b2_1x7_3_bn', data=inception_b2_1x7_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 266 | inception_b2_1x7_3_scale = inception_b2_1x7_3_bn 267 | inception_b2_1x7_3_relu = mx.symbol.Activation(name='inception_b2_1x7_3_relu', data=inception_b2_1x7_3_scale , act_type='relu') 268 | inception_b2_pool_ave = mx.symbol.Pooling(name='inception_b2_pool_ave', data=inception_b1_concat , pooling_convention='full', pad=(1,1), kernel=(3,3), stride=(1,1), pool_type='avg') 269 | inception_b2_1x1 = mx.symbol.Convolution(name='inception_b2_1x1', data=inception_b2_pool_ave , num_filter=128, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 270 | inception_b2_1x1_bn = mx.symbol.BatchNorm(name='inception_b2_1x1_bn', data=inception_b2_1x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 271 | inception_b2_1x1_scale = inception_b2_1x1_bn 272 | inception_b2_1x1_relu = mx.symbol.Activation(name='inception_b2_1x1_relu', data=inception_b2_1x1_scale , act_type='relu') 273 | inception_b2_concat = mx.symbol.Concat(name='inception_b2_concat', *[inception_b2_1x1_2_relu,inception_b2_7x1_relu,inception_b2_1x7_3_relu,inception_b2_1x1_relu] ) 274 | inception_b3_1x1_2 = mx.symbol.Convolution(name='inception_b3_1x1_2', data=inception_b2_concat , num_filter=384, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 275 | inception_b3_1x1_2_bn = mx.symbol.BatchNorm(name='inception_b3_1x1_2_bn', data=inception_b3_1x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 276 | inception_b3_1x1_2_scale = inception_b3_1x1_2_bn 277 | inception_b3_1x1_2_relu = mx.symbol.Activation(name='inception_b3_1x1_2_relu', data=inception_b3_1x1_2_scale , act_type='relu') 278 | inception_b3_1x7_reduce = mx.symbol.Convolution(name='inception_b3_1x7_reduce', data=inception_b2_concat , num_filter=192, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 279 | inception_b3_1x7_reduce_bn = mx.symbol.BatchNorm(name='inception_b3_1x7_reduce_bn', data=inception_b3_1x7_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 280 | inception_b3_1x7_reduce_scale = inception_b3_1x7_reduce_bn 281 | inception_b3_1x7_reduce_relu = mx.symbol.Activation(name='inception_b3_1x7_reduce_relu', data=inception_b3_1x7_reduce_scale , act_type='relu') 282 | inception_b3_1x7 = mx.symbol.Convolution(name='inception_b3_1x7', data=inception_b3_1x7_reduce_relu , num_filter=224, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 283 | inception_b3_1x7_bn = mx.symbol.BatchNorm(name='inception_b3_1x7_bn', data=inception_b3_1x7 , use_global_stats=True, fix_gamma=False, eps=0.001000) 284 | inception_b3_1x7_scale = inception_b3_1x7_bn 285 | inception_b3_1x7_relu = mx.symbol.Activation(name='inception_b3_1x7_relu', data=inception_b3_1x7_scale , act_type='relu') 286 | inception_b3_7x1 = mx.symbol.Convolution(name='inception_b3_7x1', data=inception_b3_1x7_relu , num_filter=256, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 287 | inception_b3_7x1_bn = mx.symbol.BatchNorm(name='inception_b3_7x1_bn', data=inception_b3_7x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 288 | inception_b3_7x1_scale = inception_b3_7x1_bn 289 | inception_b3_7x1_relu = mx.symbol.Activation(name='inception_b3_7x1_relu', data=inception_b3_7x1_scale , act_type='relu') 290 | inception_b3_7x1_2_reduce = mx.symbol.Convolution(name='inception_b3_7x1_2_reduce', data=inception_b2_concat , num_filter=192, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 291 | inception_b3_7x1_2_reduce_bn = mx.symbol.BatchNorm(name='inception_b3_7x1_2_reduce_bn', data=inception_b3_7x1_2_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 292 | inception_b3_7x1_2_reduce_scale = inception_b3_7x1_2_reduce_bn 293 | inception_b3_7x1_2_reduce_relu = mx.symbol.Activation(name='inception_b3_7x1_2_reduce_relu', data=inception_b3_7x1_2_reduce_scale , act_type='relu') 294 | inception_b3_7x1_2 = mx.symbol.Convolution(name='inception_b3_7x1_2', data=inception_b3_7x1_2_reduce_relu , num_filter=192, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 295 | inception_b3_7x1_2_bn = mx.symbol.BatchNorm(name='inception_b3_7x1_2_bn', data=inception_b3_7x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 296 | inception_b3_7x1_2_scale = inception_b3_7x1_2_bn 297 | inception_b3_7x1_2_relu = mx.symbol.Activation(name='inception_b3_7x1_2_relu', data=inception_b3_7x1_2_scale , act_type='relu') 298 | inception_b3_1x7_2 = mx.symbol.Convolution(name='inception_b3_1x7_2', data=inception_b3_7x1_2_relu , num_filter=224, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 299 | inception_b3_1x7_2_bn = mx.symbol.BatchNorm(name='inception_b3_1x7_2_bn', data=inception_b3_1x7_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 300 | inception_b3_1x7_2_scale = inception_b3_1x7_2_bn 301 | inception_b3_1x7_2_relu = mx.symbol.Activation(name='inception_b3_1x7_2_relu', data=inception_b3_1x7_2_scale , act_type='relu') 302 | inception_b3_7x1_3 = mx.symbol.Convolution(name='inception_b3_7x1_3', data=inception_b3_1x7_2_relu , num_filter=224, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 303 | inception_b3_7x1_3_bn = mx.symbol.BatchNorm(name='inception_b3_7x1_3_bn', data=inception_b3_7x1_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 304 | inception_b3_7x1_3_scale = inception_b3_7x1_3_bn 305 | inception_b3_7x1_3_relu = mx.symbol.Activation(name='inception_b3_7x1_3_relu', data=inception_b3_7x1_3_scale , act_type='relu') 306 | inception_b3_1x7_3 = mx.symbol.Convolution(name='inception_b3_1x7_3', data=inception_b3_7x1_3_relu , num_filter=256, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 307 | inception_b3_1x7_3_bn = mx.symbol.BatchNorm(name='inception_b3_1x7_3_bn', data=inception_b3_1x7_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 308 | inception_b3_1x7_3_scale = inception_b3_1x7_3_bn 309 | inception_b3_1x7_3_relu = mx.symbol.Activation(name='inception_b3_1x7_3_relu', data=inception_b3_1x7_3_scale , act_type='relu') 310 | inception_b3_pool_ave = mx.symbol.Pooling(name='inception_b3_pool_ave', data=inception_b2_concat , pooling_convention='full', pad=(1,1), kernel=(3,3), stride=(1,1), pool_type='avg') 311 | inception_b3_1x1 = mx.symbol.Convolution(name='inception_b3_1x1', data=inception_b3_pool_ave , num_filter=128, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 312 | inception_b3_1x1_bn = mx.symbol.BatchNorm(name='inception_b3_1x1_bn', data=inception_b3_1x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 313 | inception_b3_1x1_scale = inception_b3_1x1_bn 314 | inception_b3_1x1_relu = mx.symbol.Activation(name='inception_b3_1x1_relu', data=inception_b3_1x1_scale , act_type='relu') 315 | inception_b3_concat = mx.symbol.Concat(name='inception_b3_concat', *[inception_b3_1x1_2_relu,inception_b3_7x1_relu,inception_b3_1x7_3_relu,inception_b3_1x1_relu] ) 316 | inception_b4_1x1_2 = mx.symbol.Convolution(name='inception_b4_1x1_2', data=inception_b3_concat , num_filter=384, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 317 | inception_b4_1x1_2_bn = mx.symbol.BatchNorm(name='inception_b4_1x1_2_bn', data=inception_b4_1x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 318 | inception_b4_1x1_2_scale = inception_b4_1x1_2_bn 319 | inception_b4_1x1_2_relu = mx.symbol.Activation(name='inception_b4_1x1_2_relu', data=inception_b4_1x1_2_scale , act_type='relu') 320 | inception_b4_1x7_reduce = mx.symbol.Convolution(name='inception_b4_1x7_reduce', data=inception_b3_concat , num_filter=192, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 321 | inception_b4_1x7_reduce_bn = mx.symbol.BatchNorm(name='inception_b4_1x7_reduce_bn', data=inception_b4_1x7_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 322 | inception_b4_1x7_reduce_scale = inception_b4_1x7_reduce_bn 323 | inception_b4_1x7_reduce_relu = mx.symbol.Activation(name='inception_b4_1x7_reduce_relu', data=inception_b4_1x7_reduce_scale , act_type='relu') 324 | inception_b4_1x7 = mx.symbol.Convolution(name='inception_b4_1x7', data=inception_b4_1x7_reduce_relu , num_filter=224, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 325 | inception_b4_1x7_bn = mx.symbol.BatchNorm(name='inception_b4_1x7_bn', data=inception_b4_1x7 , use_global_stats=True, fix_gamma=False, eps=0.001000) 326 | inception_b4_1x7_scale = inception_b4_1x7_bn 327 | inception_b4_1x7_relu = mx.symbol.Activation(name='inception_b4_1x7_relu', data=inception_b4_1x7_scale , act_type='relu') 328 | inception_b4_7x1 = mx.symbol.Convolution(name='inception_b4_7x1', data=inception_b4_1x7_relu , num_filter=256, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 329 | inception_b4_7x1_bn = mx.symbol.BatchNorm(name='inception_b4_7x1_bn', data=inception_b4_7x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 330 | inception_b4_7x1_scale = inception_b4_7x1_bn 331 | inception_b4_7x1_relu = mx.symbol.Activation(name='inception_b4_7x1_relu', data=inception_b4_7x1_scale , act_type='relu') 332 | inception_b4_7x1_2_reduce = mx.symbol.Convolution(name='inception_b4_7x1_2_reduce', data=inception_b3_concat , num_filter=192, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 333 | inception_b4_7x1_2_reduce_bn = mx.symbol.BatchNorm(name='inception_b4_7x1_2_reduce_bn', data=inception_b4_7x1_2_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 334 | inception_b4_7x1_2_reduce_scale = inception_b4_7x1_2_reduce_bn 335 | inception_b4_7x1_2_reduce_relu = mx.symbol.Activation(name='inception_b4_7x1_2_reduce_relu', data=inception_b4_7x1_2_reduce_scale , act_type='relu') 336 | inception_b4_7x1_2 = mx.symbol.Convolution(name='inception_b4_7x1_2', data=inception_b4_7x1_2_reduce_relu , num_filter=192, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 337 | inception_b4_7x1_2_bn = mx.symbol.BatchNorm(name='inception_b4_7x1_2_bn', data=inception_b4_7x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 338 | inception_b4_7x1_2_scale = inception_b4_7x1_2_bn 339 | inception_b4_7x1_2_relu = mx.symbol.Activation(name='inception_b4_7x1_2_relu', data=inception_b4_7x1_2_scale , act_type='relu') 340 | inception_b4_1x7_2 = mx.symbol.Convolution(name='inception_b4_1x7_2', data=inception_b4_7x1_2_relu , num_filter=224, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 341 | inception_b4_1x7_2_bn = mx.symbol.BatchNorm(name='inception_b4_1x7_2_bn', data=inception_b4_1x7_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 342 | inception_b4_1x7_2_scale = inception_b4_1x7_2_bn 343 | inception_b4_1x7_2_relu = mx.symbol.Activation(name='inception_b4_1x7_2_relu', data=inception_b4_1x7_2_scale , act_type='relu') 344 | inception_b4_7x1_3 = mx.symbol.Convolution(name='inception_b4_7x1_3', data=inception_b4_1x7_2_relu , num_filter=224, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 345 | inception_b4_7x1_3_bn = mx.symbol.BatchNorm(name='inception_b4_7x1_3_bn', data=inception_b4_7x1_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 346 | inception_b4_7x1_3_scale = inception_b4_7x1_3_bn 347 | inception_b4_7x1_3_relu = mx.symbol.Activation(name='inception_b4_7x1_3_relu', data=inception_b4_7x1_3_scale , act_type='relu') 348 | inception_b4_1x7_3 = mx.symbol.Convolution(name='inception_b4_1x7_3', data=inception_b4_7x1_3_relu , num_filter=256, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 349 | inception_b4_1x7_3_bn = mx.symbol.BatchNorm(name='inception_b4_1x7_3_bn', data=inception_b4_1x7_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 350 | inception_b4_1x7_3_scale = inception_b4_1x7_3_bn 351 | inception_b4_1x7_3_relu = mx.symbol.Activation(name='inception_b4_1x7_3_relu', data=inception_b4_1x7_3_scale , act_type='relu') 352 | inception_b4_pool_ave = mx.symbol.Pooling(name='inception_b4_pool_ave', data=inception_b3_concat , pooling_convention='full', pad=(1,1), kernel=(3,3), stride=(1,1), pool_type='avg') 353 | inception_b4_1x1 = mx.symbol.Convolution(name='inception_b4_1x1', data=inception_b4_pool_ave , num_filter=128, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 354 | inception_b4_1x1_bn = mx.symbol.BatchNorm(name='inception_b4_1x1_bn', data=inception_b4_1x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 355 | inception_b4_1x1_scale = inception_b4_1x1_bn 356 | inception_b4_1x1_relu = mx.symbol.Activation(name='inception_b4_1x1_relu', data=inception_b4_1x1_scale , act_type='relu') 357 | inception_b4_concat = mx.symbol.Concat(name='inception_b4_concat', *[inception_b4_1x1_2_relu,inception_b4_7x1_relu,inception_b4_1x7_3_relu,inception_b4_1x1_relu] ) 358 | inception_b5_1x1_2 = mx.symbol.Convolution(name='inception_b5_1x1_2', data=inception_b4_concat , num_filter=384, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 359 | inception_b5_1x1_2_bn = mx.symbol.BatchNorm(name='inception_b5_1x1_2_bn', data=inception_b5_1x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 360 | inception_b5_1x1_2_scale = inception_b5_1x1_2_bn 361 | inception_b5_1x1_2_relu = mx.symbol.Activation(name='inception_b5_1x1_2_relu', data=inception_b5_1x1_2_scale , act_type='relu') 362 | inception_b5_1x7_reduce = mx.symbol.Convolution(name='inception_b5_1x7_reduce', data=inception_b4_concat , num_filter=192, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 363 | inception_b5_1x7_reduce_bn = mx.symbol.BatchNorm(name='inception_b5_1x7_reduce_bn', data=inception_b5_1x7_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 364 | inception_b5_1x7_reduce_scale = inception_b5_1x7_reduce_bn 365 | inception_b5_1x7_reduce_relu = mx.symbol.Activation(name='inception_b5_1x7_reduce_relu', data=inception_b5_1x7_reduce_scale , act_type='relu') 366 | inception_b5_1x7 = mx.symbol.Convolution(name='inception_b5_1x7', data=inception_b5_1x7_reduce_relu , num_filter=224, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 367 | inception_b5_1x7_bn = mx.symbol.BatchNorm(name='inception_b5_1x7_bn', data=inception_b5_1x7 , use_global_stats=True, fix_gamma=False, eps=0.001000) 368 | inception_b5_1x7_scale = inception_b5_1x7_bn 369 | inception_b5_1x7_relu = mx.symbol.Activation(name='inception_b5_1x7_relu', data=inception_b5_1x7_scale , act_type='relu') 370 | inception_b5_7x1 = mx.symbol.Convolution(name='inception_b5_7x1', data=inception_b5_1x7_relu , num_filter=256, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 371 | inception_b5_7x1_bn = mx.symbol.BatchNorm(name='inception_b5_7x1_bn', data=inception_b5_7x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 372 | inception_b5_7x1_scale = inception_b5_7x1_bn 373 | inception_b5_7x1_relu = mx.symbol.Activation(name='inception_b5_7x1_relu', data=inception_b5_7x1_scale , act_type='relu') 374 | inception_b5_7x1_2_reduce = mx.symbol.Convolution(name='inception_b5_7x1_2_reduce', data=inception_b4_concat , num_filter=192, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 375 | inception_b5_7x1_2_reduce_bn = mx.symbol.BatchNorm(name='inception_b5_7x1_2_reduce_bn', data=inception_b5_7x1_2_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 376 | inception_b5_7x1_2_reduce_scale = inception_b5_7x1_2_reduce_bn 377 | inception_b5_7x1_2_reduce_relu = mx.symbol.Activation(name='inception_b5_7x1_2_reduce_relu', data=inception_b5_7x1_2_reduce_scale , act_type='relu') 378 | inception_b5_7x1_2 = mx.symbol.Convolution(name='inception_b5_7x1_2', data=inception_b5_7x1_2_reduce_relu , num_filter=192, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 379 | inception_b5_7x1_2_bn = mx.symbol.BatchNorm(name='inception_b5_7x1_2_bn', data=inception_b5_7x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 380 | inception_b5_7x1_2_scale = inception_b5_7x1_2_bn 381 | inception_b5_7x1_2_relu = mx.symbol.Activation(name='inception_b5_7x1_2_relu', data=inception_b5_7x1_2_scale , act_type='relu') 382 | inception_b5_1x7_2 = mx.symbol.Convolution(name='inception_b5_1x7_2', data=inception_b5_7x1_2_relu , num_filter=224, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 383 | inception_b5_1x7_2_bn = mx.symbol.BatchNorm(name='inception_b5_1x7_2_bn', data=inception_b5_1x7_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 384 | inception_b5_1x7_2_scale = inception_b5_1x7_2_bn 385 | inception_b5_1x7_2_relu = mx.symbol.Activation(name='inception_b5_1x7_2_relu', data=inception_b5_1x7_2_scale , act_type='relu') 386 | inception_b5_7x1_3 = mx.symbol.Convolution(name='inception_b5_7x1_3', data=inception_b5_1x7_2_relu , num_filter=224, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 387 | inception_b5_7x1_3_bn = mx.symbol.BatchNorm(name='inception_b5_7x1_3_bn', data=inception_b5_7x1_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 388 | inception_b5_7x1_3_scale = inception_b5_7x1_3_bn 389 | inception_b5_7x1_3_relu = mx.symbol.Activation(name='inception_b5_7x1_3_relu', data=inception_b5_7x1_3_scale , act_type='relu') 390 | inception_b5_1x7_3 = mx.symbol.Convolution(name='inception_b5_1x7_3', data=inception_b5_7x1_3_relu , num_filter=256, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 391 | inception_b5_1x7_3_bn = mx.symbol.BatchNorm(name='inception_b5_1x7_3_bn', data=inception_b5_1x7_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 392 | inception_b5_1x7_3_scale = inception_b5_1x7_3_bn 393 | inception_b5_1x7_3_relu = mx.symbol.Activation(name='inception_b5_1x7_3_relu', data=inception_b5_1x7_3_scale , act_type='relu') 394 | inception_b5_pool_ave = mx.symbol.Pooling(name='inception_b5_pool_ave', data=inception_b4_concat , pooling_convention='full', pad=(1,1), kernel=(3,3), stride=(1,1), pool_type='avg') 395 | inception_b5_1x1 = mx.symbol.Convolution(name='inception_b5_1x1', data=inception_b5_pool_ave , num_filter=128, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 396 | inception_b5_1x1_bn = mx.symbol.BatchNorm(name='inception_b5_1x1_bn', data=inception_b5_1x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 397 | inception_b5_1x1_scale = inception_b5_1x1_bn 398 | inception_b5_1x1_relu = mx.symbol.Activation(name='inception_b5_1x1_relu', data=inception_b5_1x1_scale , act_type='relu') 399 | inception_b5_concat = mx.symbol.Concat(name='inception_b5_concat', *[inception_b5_1x1_2_relu,inception_b5_7x1_relu,inception_b5_1x7_3_relu,inception_b5_1x1_relu] ) 400 | inception_b6_1x1_2 = mx.symbol.Convolution(name='inception_b6_1x1_2', data=inception_b5_concat , num_filter=384, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 401 | inception_b6_1x1_2_bn = mx.symbol.BatchNorm(name='inception_b6_1x1_2_bn', data=inception_b6_1x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 402 | inception_b6_1x1_2_scale = inception_b6_1x1_2_bn 403 | inception_b6_1x1_2_relu = mx.symbol.Activation(name='inception_b6_1x1_2_relu', data=inception_b6_1x1_2_scale , act_type='relu') 404 | inception_b6_1x7_reduce = mx.symbol.Convolution(name='inception_b6_1x7_reduce', data=inception_b5_concat , num_filter=192, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 405 | inception_b6_1x7_reduce_bn = mx.symbol.BatchNorm(name='inception_b6_1x7_reduce_bn', data=inception_b6_1x7_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 406 | inception_b6_1x7_reduce_scale = inception_b6_1x7_reduce_bn 407 | inception_b6_1x7_reduce_relu = mx.symbol.Activation(name='inception_b6_1x7_reduce_relu', data=inception_b6_1x7_reduce_scale , act_type='relu') 408 | inception_b6_1x7 = mx.symbol.Convolution(name='inception_b6_1x7', data=inception_b6_1x7_reduce_relu , num_filter=224, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 409 | inception_b6_1x7_bn = mx.symbol.BatchNorm(name='inception_b6_1x7_bn', data=inception_b6_1x7 , use_global_stats=True, fix_gamma=False, eps=0.001000) 410 | inception_b6_1x7_scale = inception_b6_1x7_bn 411 | inception_b6_1x7_relu = mx.symbol.Activation(name='inception_b6_1x7_relu', data=inception_b6_1x7_scale , act_type='relu') 412 | inception_b6_7x1 = mx.symbol.Convolution(name='inception_b6_7x1', data=inception_b6_1x7_relu , num_filter=256, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 413 | inception_b6_7x1_bn = mx.symbol.BatchNorm(name='inception_b6_7x1_bn', data=inception_b6_7x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 414 | inception_b6_7x1_scale = inception_b6_7x1_bn 415 | inception_b6_7x1_relu = mx.symbol.Activation(name='inception_b6_7x1_relu', data=inception_b6_7x1_scale , act_type='relu') 416 | inception_b6_7x1_2_reduce = mx.symbol.Convolution(name='inception_b6_7x1_2_reduce', data=inception_b5_concat , num_filter=192, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 417 | inception_b6_7x1_2_reduce_bn = mx.symbol.BatchNorm(name='inception_b6_7x1_2_reduce_bn', data=inception_b6_7x1_2_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 418 | inception_b6_7x1_2_reduce_scale = inception_b6_7x1_2_reduce_bn 419 | inception_b6_7x1_2_reduce_relu = mx.symbol.Activation(name='inception_b6_7x1_2_reduce_relu', data=inception_b6_7x1_2_reduce_scale , act_type='relu') 420 | inception_b6_7x1_2 = mx.symbol.Convolution(name='inception_b6_7x1_2', data=inception_b6_7x1_2_reduce_relu , num_filter=192, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 421 | inception_b6_7x1_2_bn = mx.symbol.BatchNorm(name='inception_b6_7x1_2_bn', data=inception_b6_7x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 422 | inception_b6_7x1_2_scale = inception_b6_7x1_2_bn 423 | inception_b6_7x1_2_relu = mx.symbol.Activation(name='inception_b6_7x1_2_relu', data=inception_b6_7x1_2_scale , act_type='relu') 424 | inception_b6_1x7_2 = mx.symbol.Convolution(name='inception_b6_1x7_2', data=inception_b6_7x1_2_relu , num_filter=224, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 425 | inception_b6_1x7_2_bn = mx.symbol.BatchNorm(name='inception_b6_1x7_2_bn', data=inception_b6_1x7_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 426 | inception_b6_1x7_2_scale = inception_b6_1x7_2_bn 427 | inception_b6_1x7_2_relu = mx.symbol.Activation(name='inception_b6_1x7_2_relu', data=inception_b6_1x7_2_scale , act_type='relu') 428 | inception_b6_7x1_3 = mx.symbol.Convolution(name='inception_b6_7x1_3', data=inception_b6_1x7_2_relu , num_filter=224, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 429 | inception_b6_7x1_3_bn = mx.symbol.BatchNorm(name='inception_b6_7x1_3_bn', data=inception_b6_7x1_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 430 | inception_b6_7x1_3_scale = inception_b6_7x1_3_bn 431 | inception_b6_7x1_3_relu = mx.symbol.Activation(name='inception_b6_7x1_3_relu', data=inception_b6_7x1_3_scale , act_type='relu') 432 | inception_b6_1x7_3 = mx.symbol.Convolution(name='inception_b6_1x7_3', data=inception_b6_7x1_3_relu , num_filter=256, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 433 | inception_b6_1x7_3_bn = mx.symbol.BatchNorm(name='inception_b6_1x7_3_bn', data=inception_b6_1x7_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 434 | inception_b6_1x7_3_scale = inception_b6_1x7_3_bn 435 | inception_b6_1x7_3_relu = mx.symbol.Activation(name='inception_b6_1x7_3_relu', data=inception_b6_1x7_3_scale , act_type='relu') 436 | inception_b6_pool_ave = mx.symbol.Pooling(name='inception_b6_pool_ave', data=inception_b5_concat , pooling_convention='full', pad=(1,1), kernel=(3,3), stride=(1,1), pool_type='avg') 437 | inception_b6_1x1 = mx.symbol.Convolution(name='inception_b6_1x1', data=inception_b6_pool_ave , num_filter=128, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 438 | inception_b6_1x1_bn = mx.symbol.BatchNorm(name='inception_b6_1x1_bn', data=inception_b6_1x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 439 | inception_b6_1x1_scale = inception_b6_1x1_bn 440 | inception_b6_1x1_relu = mx.symbol.Activation(name='inception_b6_1x1_relu', data=inception_b6_1x1_scale , act_type='relu') 441 | inception_b6_concat = mx.symbol.Concat(name='inception_b6_concat', *[inception_b6_1x1_2_relu,inception_b6_7x1_relu,inception_b6_1x7_3_relu,inception_b6_1x1_relu] ) 442 | inception_b7_1x1_2 = mx.symbol.Convolution(name='inception_b7_1x1_2', data=inception_b6_concat , num_filter=384, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 443 | inception_b7_1x1_2_bn = mx.symbol.BatchNorm(name='inception_b7_1x1_2_bn', data=inception_b7_1x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 444 | inception_b7_1x1_2_scale = inception_b7_1x1_2_bn 445 | inception_b7_1x1_2_relu = mx.symbol.Activation(name='inception_b7_1x1_2_relu', data=inception_b7_1x1_2_scale , act_type='relu') 446 | inception_b7_1x7_reduce = mx.symbol.Convolution(name='inception_b7_1x7_reduce', data=inception_b6_concat , num_filter=192, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 447 | inception_b7_1x7_reduce_bn = mx.symbol.BatchNorm(name='inception_b7_1x7_reduce_bn', data=inception_b7_1x7_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 448 | inception_b7_1x7_reduce_scale = inception_b7_1x7_reduce_bn 449 | inception_b7_1x7_reduce_relu = mx.symbol.Activation(name='inception_b7_1x7_reduce_relu', data=inception_b7_1x7_reduce_scale , act_type='relu') 450 | inception_b7_1x7 = mx.symbol.Convolution(name='inception_b7_1x7', data=inception_b7_1x7_reduce_relu , num_filter=224, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 451 | inception_b7_1x7_bn = mx.symbol.BatchNorm(name='inception_b7_1x7_bn', data=inception_b7_1x7 , use_global_stats=True, fix_gamma=False, eps=0.001000) 452 | inception_b7_1x7_scale = inception_b7_1x7_bn 453 | inception_b7_1x7_relu = mx.symbol.Activation(name='inception_b7_1x7_relu', data=inception_b7_1x7_scale , act_type='relu') 454 | inception_b7_7x1 = mx.symbol.Convolution(name='inception_b7_7x1', data=inception_b7_1x7_relu , num_filter=256, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 455 | inception_b7_7x1_bn = mx.symbol.BatchNorm(name='inception_b7_7x1_bn', data=inception_b7_7x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 456 | inception_b7_7x1_scale = inception_b7_7x1_bn 457 | inception_b7_7x1_relu = mx.symbol.Activation(name='inception_b7_7x1_relu', data=inception_b7_7x1_scale , act_type='relu') 458 | inception_b7_7x1_2_reduce = mx.symbol.Convolution(name='inception_b7_7x1_2_reduce', data=inception_b6_concat , num_filter=192, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 459 | inception_b7_7x1_2_reduce_bn = mx.symbol.BatchNorm(name='inception_b7_7x1_2_reduce_bn', data=inception_b7_7x1_2_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 460 | inception_b7_7x1_2_reduce_scale = inception_b7_7x1_2_reduce_bn 461 | inception_b7_7x1_2_reduce_relu = mx.symbol.Activation(name='inception_b7_7x1_2_reduce_relu', data=inception_b7_7x1_2_reduce_scale , act_type='relu') 462 | inception_b7_7x1_2 = mx.symbol.Convolution(name='inception_b7_7x1_2', data=inception_b7_7x1_2_reduce_relu , num_filter=192, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 463 | inception_b7_7x1_2_bn = mx.symbol.BatchNorm(name='inception_b7_7x1_2_bn', data=inception_b7_7x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 464 | inception_b7_7x1_2_scale = inception_b7_7x1_2_bn 465 | inception_b7_7x1_2_relu = mx.symbol.Activation(name='inception_b7_7x1_2_relu', data=inception_b7_7x1_2_scale , act_type='relu') 466 | inception_b7_1x7_2 = mx.symbol.Convolution(name='inception_b7_1x7_2', data=inception_b7_7x1_2_relu , num_filter=224, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 467 | inception_b7_1x7_2_bn = mx.symbol.BatchNorm(name='inception_b7_1x7_2_bn', data=inception_b7_1x7_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 468 | inception_b7_1x7_2_scale = inception_b7_1x7_2_bn 469 | inception_b7_1x7_2_relu = mx.symbol.Activation(name='inception_b7_1x7_2_relu', data=inception_b7_1x7_2_scale , act_type='relu') 470 | inception_b7_7x1_3 = mx.symbol.Convolution(name='inception_b7_7x1_3', data=inception_b7_1x7_2_relu , num_filter=224, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 471 | inception_b7_7x1_3_bn = mx.symbol.BatchNorm(name='inception_b7_7x1_3_bn', data=inception_b7_7x1_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 472 | inception_b7_7x1_3_scale = inception_b7_7x1_3_bn 473 | inception_b7_7x1_3_relu = mx.symbol.Activation(name='inception_b7_7x1_3_relu', data=inception_b7_7x1_3_scale , act_type='relu') 474 | inception_b7_1x7_3 = mx.symbol.Convolution(name='inception_b7_1x7_3', data=inception_b7_7x1_3_relu , num_filter=256, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 475 | inception_b7_1x7_3_bn = mx.symbol.BatchNorm(name='inception_b7_1x7_3_bn', data=inception_b7_1x7_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 476 | inception_b7_1x7_3_scale = inception_b7_1x7_3_bn 477 | inception_b7_1x7_3_relu = mx.symbol.Activation(name='inception_b7_1x7_3_relu', data=inception_b7_1x7_3_scale , act_type='relu') 478 | inception_b7_pool_ave = mx.symbol.Pooling(name='inception_b7_pool_ave', data=inception_b6_concat , pooling_convention='full', pad=(1,1), kernel=(3,3), stride=(1,1), pool_type='avg') 479 | inception_b7_1x1 = mx.symbol.Convolution(name='inception_b7_1x1', data=inception_b7_pool_ave , num_filter=128, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 480 | inception_b7_1x1_bn = mx.symbol.BatchNorm(name='inception_b7_1x1_bn', data=inception_b7_1x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 481 | inception_b7_1x1_scale = inception_b7_1x1_bn 482 | inception_b7_1x1_relu = mx.symbol.Activation(name='inception_b7_1x1_relu', data=inception_b7_1x1_scale , act_type='relu') 483 | inception_b7_concat = mx.symbol.Concat(name='inception_b7_concat', *[inception_b7_1x1_2_relu,inception_b7_7x1_relu,inception_b7_1x7_3_relu,inception_b7_1x1_relu] ) 484 | reduction_b_3x3_reduce = mx.symbol.Convolution(name='reduction_b_3x3_reduce', data=inception_b7_concat , num_filter=192, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 485 | reduction_b_3x3_reduce_bn = mx.symbol.BatchNorm(name='reduction_b_3x3_reduce_bn', data=reduction_b_3x3_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 486 | reduction_b_3x3_reduce_scale = reduction_b_3x3_reduce_bn 487 | reduction_b_3x3_reduce_relu = mx.symbol.Activation(name='reduction_b_3x3_reduce_relu', data=reduction_b_3x3_reduce_scale , act_type='relu') 488 | reduction_b_3x3 = mx.symbol.Convolution(name='reduction_b_3x3', data=reduction_b_3x3_reduce_relu , num_filter=192, pad=(0, 0), kernel=(3,3), stride=(2,2), no_bias=True) 489 | reduction_b_3x3_bn = mx.symbol.BatchNorm(name='reduction_b_3x3_bn', data=reduction_b_3x3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 490 | reduction_b_3x3_scale = reduction_b_3x3_bn 491 | reduction_b_3x3_relu = mx.symbol.Activation(name='reduction_b_3x3_relu', data=reduction_b_3x3_scale , act_type='relu') 492 | reduction_b_1x7_reduce = mx.symbol.Convolution(name='reduction_b_1x7_reduce', data=inception_b7_concat , num_filter=256, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 493 | reduction_b_1x7_reduce_bn = mx.symbol.BatchNorm(name='reduction_b_1x7_reduce_bn', data=reduction_b_1x7_reduce , use_global_stats=True, fix_gamma=False, eps=0.001000) 494 | reduction_b_1x7_reduce_scale = reduction_b_1x7_reduce_bn 495 | reduction_b_1x7_reduce_relu = mx.symbol.Activation(name='reduction_b_1x7_reduce_relu', data=reduction_b_1x7_reduce_scale , act_type='relu') 496 | reduction_b_1x7 = mx.symbol.Convolution(name='reduction_b_1x7', data=reduction_b_1x7_reduce_relu , num_filter=256, pad=(0, 3), kernel=(1,7), stride=(1,1), no_bias=True) 497 | reduction_b_1x7_bn = mx.symbol.BatchNorm(name='reduction_b_1x7_bn', data=reduction_b_1x7 , use_global_stats=True, fix_gamma=False, eps=0.001000) 498 | reduction_b_1x7_scale = reduction_b_1x7_bn 499 | reduction_b_1x7_relu = mx.symbol.Activation(name='reduction_b_1x7_relu', data=reduction_b_1x7_scale , act_type='relu') 500 | reduction_b_7x1 = mx.symbol.Convolution(name='reduction_b_7x1', data=reduction_b_1x7_relu , num_filter=320, pad=(3, 0), kernel=(7,1), stride=(1,1), no_bias=True) 501 | reduction_b_7x1_bn = mx.symbol.BatchNorm(name='reduction_b_7x1_bn', data=reduction_b_7x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 502 | reduction_b_7x1_scale = reduction_b_7x1_bn 503 | reduction_b_7x1_relu = mx.symbol.Activation(name='reduction_b_7x1_relu', data=reduction_b_7x1_scale , act_type='relu') 504 | reduction_b_3x3_2 = mx.symbol.Convolution(name='reduction_b_3x3_2', data=reduction_b_7x1_relu , num_filter=320, pad=(0, 0), kernel=(3,3), stride=(2,2), no_bias=True) 505 | reduction_b_3x3_2_bn = mx.symbol.BatchNorm(name='reduction_b_3x3_2_bn', data=reduction_b_3x3_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 506 | reduction_b_3x3_2_scale = reduction_b_3x3_2_bn 507 | reduction_b_3x3_2_relu = mx.symbol.Activation(name='reduction_b_3x3_2_relu', data=reduction_b_3x3_2_scale , act_type='relu') 508 | reduction_b_pool = mx.symbol.Pooling(name='reduction_b_pool', data=inception_b7_concat , pooling_convention='full', pad=(0,0), kernel=(3,3), stride=(2,2), pool_type='max') 509 | reduction_b_concat = mx.symbol.Concat(name='reduction_b_concat', *[reduction_b_3x3_relu,reduction_b_3x3_2_relu,reduction_b_pool] ) 510 | inception_c1_1x1_2 = mx.symbol.Convolution(name='inception_c1_1x1_2', data=reduction_b_concat , num_filter=256, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 511 | inception_c1_1x1_2_bn = mx.symbol.BatchNorm(name='inception_c1_1x1_2_bn', data=inception_c1_1x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 512 | inception_c1_1x1_2_scale = inception_c1_1x1_2_bn 513 | inception_c1_1x1_2_relu = mx.symbol.Activation(name='inception_c1_1x1_2_relu', data=inception_c1_1x1_2_scale , act_type='relu') 514 | inception_c1_1x1_3 = mx.symbol.Convolution(name='inception_c1_1x1_3', data=reduction_b_concat , num_filter=384, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 515 | inception_c1_1x1_3_bn = mx.symbol.BatchNorm(name='inception_c1_1x1_3_bn', data=inception_c1_1x1_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 516 | inception_c1_1x1_3_scale = inception_c1_1x1_3_bn 517 | inception_c1_1x1_3_relu = mx.symbol.Activation(name='inception_c1_1x1_3_relu', data=inception_c1_1x1_3_scale , act_type='relu') 518 | inception_c1_1x3 = mx.symbol.Convolution(name='inception_c1_1x3', data=inception_c1_1x1_3_relu , num_filter=256, pad=(0, 1), kernel=(1,3), stride=(1,1), no_bias=True) 519 | inception_c1_1x3_bn = mx.symbol.BatchNorm(name='inception_c1_1x3_bn', data=inception_c1_1x3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 520 | inception_c1_1x3_scale = inception_c1_1x3_bn 521 | inception_c1_1x3_relu = mx.symbol.Activation(name='inception_c1_1x3_relu', data=inception_c1_1x3_scale , act_type='relu') 522 | inception_c1_3x1 = mx.symbol.Convolution(name='inception_c1_3x1', data=inception_c1_1x1_3_relu , num_filter=256, pad=(1, 0), kernel=(3,1), stride=(1,1), no_bias=True) 523 | inception_c1_3x1_bn = mx.symbol.BatchNorm(name='inception_c1_3x1_bn', data=inception_c1_3x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 524 | inception_c1_3x1_scale = inception_c1_3x1_bn 525 | inception_c1_3x1_relu = mx.symbol.Activation(name='inception_c1_3x1_relu', data=inception_c1_3x1_scale , act_type='relu') 526 | inception_c1_1x1_4 = mx.symbol.Convolution(name='inception_c1_1x1_4', data=reduction_b_concat , num_filter=384, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 527 | inception_c1_1x1_4_bn = mx.symbol.BatchNorm(name='inception_c1_1x1_4_bn', data=inception_c1_1x1_4 , use_global_stats=True, fix_gamma=False, eps=0.001000) 528 | inception_c1_1x1_4_scale = inception_c1_1x1_4_bn 529 | inception_c1_1x1_4_relu = mx.symbol.Activation(name='inception_c1_1x1_4_relu', data=inception_c1_1x1_4_scale , act_type='relu') 530 | inception_c1_3x1_2 = mx.symbol.Convolution(name='inception_c1_3x1_2', data=inception_c1_1x1_4_relu , num_filter=448, pad=(1, 0), kernel=(3,1), stride=(1,1), no_bias=True) 531 | inception_c1_3x1_2_bn = mx.symbol.BatchNorm(name='inception_c1_3x1_2_bn', data=inception_c1_3x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 532 | inception_c1_3x1_2_scale = inception_c1_3x1_2_bn 533 | inception_c1_3x1_2_relu = mx.symbol.Activation(name='inception_c1_3x1_2_relu', data=inception_c1_3x1_2_scale , act_type='relu') 534 | inception_c1_1x3_2 = mx.symbol.Convolution(name='inception_c1_1x3_2', data=inception_c1_3x1_2_relu , num_filter=512, pad=(0, 1), kernel=(1,3), stride=(1,1), no_bias=True) 535 | inception_c1_1x3_2_bn = mx.symbol.BatchNorm(name='inception_c1_1x3_2_bn', data=inception_c1_1x3_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 536 | inception_c1_1x3_2_scale = inception_c1_1x3_2_bn 537 | inception_c1_1x3_2_relu = mx.symbol.Activation(name='inception_c1_1x3_2_relu', data=inception_c1_1x3_2_scale , act_type='relu') 538 | inception_c1_1x3_3 = mx.symbol.Convolution(name='inception_c1_1x3_3', data=inception_c1_1x3_2_relu , num_filter=256, pad=(0, 1), kernel=(1,3), stride=(1,1), no_bias=True) 539 | inception_c1_1x3_3_bn = mx.symbol.BatchNorm(name='inception_c1_1x3_3_bn', data=inception_c1_1x3_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 540 | inception_c1_1x3_3_scale = inception_c1_1x3_3_bn 541 | inception_c1_1x3_3_relu = mx.symbol.Activation(name='inception_c1_1x3_3_relu', data=inception_c1_1x3_3_scale , act_type='relu') 542 | inception_c1_3x1_3 = mx.symbol.Convolution(name='inception_c1_3x1_3', data=inception_c1_1x3_2_relu , num_filter=256, pad=(1, 0), kernel=(3,1), stride=(1,1), no_bias=True) 543 | inception_c1_3x1_3_bn = mx.symbol.BatchNorm(name='inception_c1_3x1_3_bn', data=inception_c1_3x1_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 544 | inception_c1_3x1_3_scale = inception_c1_3x1_3_bn 545 | inception_c1_3x1_3_relu = mx.symbol.Activation(name='inception_c1_3x1_3_relu', data=inception_c1_3x1_3_scale , act_type='relu') 546 | inception_c1_pool_ave = mx.symbol.Pooling(name='inception_c1_pool_ave', data=reduction_b_concat , pooling_convention='full', pad=(1,1), kernel=(3,3), stride=(1,1), pool_type='avg') 547 | inception_c1_1x1 = mx.symbol.Convolution(name='inception_c1_1x1', data=inception_c1_pool_ave , num_filter=256, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 548 | inception_c1_1x1_bn = mx.symbol.BatchNorm(name='inception_c1_1x1_bn', data=inception_c1_1x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 549 | inception_c1_1x1_scale = inception_c1_1x1_bn 550 | inception_c1_1x1_relu = mx.symbol.Activation(name='inception_c1_1x1_relu', data=inception_c1_1x1_scale , act_type='relu') 551 | inception_c1_concat = mx.symbol.Concat(name='inception_c1_concat', *[inception_c1_1x1_2_relu,inception_c1_1x3_relu,inception_c1_3x1_relu,inception_c1_1x3_3_relu,inception_c1_3x1_3_relu,inception_c1_1x1_relu] ) 552 | inception_c2_1x1_2 = mx.symbol.Convolution(name='inception_c2_1x1_2', data=inception_c1_concat , num_filter=256, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 553 | inception_c2_1x1_2_bn = mx.symbol.BatchNorm(name='inception_c2_1x1_2_bn', data=inception_c2_1x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 554 | inception_c2_1x1_2_scale = inception_c2_1x1_2_bn 555 | inception_c2_1x1_2_relu = mx.symbol.Activation(name='inception_c2_1x1_2_relu', data=inception_c2_1x1_2_scale , act_type='relu') 556 | inception_c2_1x1_3 = mx.symbol.Convolution(name='inception_c2_1x1_3', data=inception_c1_concat , num_filter=384, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 557 | inception_c2_1x1_3_bn = mx.symbol.BatchNorm(name='inception_c2_1x1_3_bn', data=inception_c2_1x1_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 558 | inception_c2_1x1_3_scale = inception_c2_1x1_3_bn 559 | inception_c2_1x1_3_relu = mx.symbol.Activation(name='inception_c2_1x1_3_relu', data=inception_c2_1x1_3_scale , act_type='relu') 560 | inception_c2_1x3 = mx.symbol.Convolution(name='inception_c2_1x3', data=inception_c2_1x1_3_relu , num_filter=256, pad=(0, 1), kernel=(1,3), stride=(1,1), no_bias=True) 561 | inception_c2_1x3_bn = mx.symbol.BatchNorm(name='inception_c2_1x3_bn', data=inception_c2_1x3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 562 | inception_c2_1x3_scale = inception_c2_1x3_bn 563 | inception_c2_1x3_relu = mx.symbol.Activation(name='inception_c2_1x3_relu', data=inception_c2_1x3_scale , act_type='relu') 564 | inception_c2_3x1 = mx.symbol.Convolution(name='inception_c2_3x1', data=inception_c2_1x1_3_relu , num_filter=256, pad=(1, 0), kernel=(3,1), stride=(1,1), no_bias=True) 565 | inception_c2_3x1_bn = mx.symbol.BatchNorm(name='inception_c2_3x1_bn', data=inception_c2_3x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 566 | inception_c2_3x1_scale = inception_c2_3x1_bn 567 | inception_c2_3x1_relu = mx.symbol.Activation(name='inception_c2_3x1_relu', data=inception_c2_3x1_scale , act_type='relu') 568 | inception_c2_1x1_4 = mx.symbol.Convolution(name='inception_c2_1x1_4', data=inception_c1_concat , num_filter=384, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 569 | inception_c2_1x1_4_bn = mx.symbol.BatchNorm(name='inception_c2_1x1_4_bn', data=inception_c2_1x1_4 , use_global_stats=True, fix_gamma=False, eps=0.001000) 570 | inception_c2_1x1_4_scale = inception_c2_1x1_4_bn 571 | inception_c2_1x1_4_relu = mx.symbol.Activation(name='inception_c2_1x1_4_relu', data=inception_c2_1x1_4_scale , act_type='relu') 572 | inception_c2_3x1_2 = mx.symbol.Convolution(name='inception_c2_3x1_2', data=inception_c2_1x1_4_relu , num_filter=448, pad=(1, 0), kernel=(3,1), stride=(1,1), no_bias=True) 573 | inception_c2_3x1_2_bn = mx.symbol.BatchNorm(name='inception_c2_3x1_2_bn', data=inception_c2_3x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 574 | inception_c2_3x1_2_scale = inception_c2_3x1_2_bn 575 | inception_c2_3x1_2_relu = mx.symbol.Activation(name='inception_c2_3x1_2_relu', data=inception_c2_3x1_2_scale , act_type='relu') 576 | inception_c2_1x3_2 = mx.symbol.Convolution(name='inception_c2_1x3_2', data=inception_c2_3x1_2_relu , num_filter=512, pad=(0, 1), kernel=(1,3), stride=(1,1), no_bias=True) 577 | inception_c2_1x3_2_bn = mx.symbol.BatchNorm(name='inception_c2_1x3_2_bn', data=inception_c2_1x3_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 578 | inception_c2_1x3_2_scale = inception_c2_1x3_2_bn 579 | inception_c2_1x3_2_relu = mx.symbol.Activation(name='inception_c2_1x3_2_relu', data=inception_c2_1x3_2_scale , act_type='relu') 580 | inception_c2_1x3_3 = mx.symbol.Convolution(name='inception_c2_1x3_3', data=inception_c2_1x3_2_relu , num_filter=256, pad=(0, 1), kernel=(1,3), stride=(1,1), no_bias=True) 581 | inception_c2_1x3_3_bn = mx.symbol.BatchNorm(name='inception_c2_1x3_3_bn', data=inception_c2_1x3_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 582 | inception_c2_1x3_3_scale = inception_c2_1x3_3_bn 583 | inception_c2_1x3_3_relu = mx.symbol.Activation(name='inception_c2_1x3_3_relu', data=inception_c2_1x3_3_scale , act_type='relu') 584 | inception_c2_3x1_3 = mx.symbol.Convolution(name='inception_c2_3x1_3', data=inception_c2_1x3_2_relu , num_filter=256, pad=(1, 0), kernel=(3,1), stride=(1,1), no_bias=True) 585 | inception_c2_3x1_3_bn = mx.symbol.BatchNorm(name='inception_c2_3x1_3_bn', data=inception_c2_3x1_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 586 | inception_c2_3x1_3_scale = inception_c2_3x1_3_bn 587 | inception_c2_3x1_3_relu = mx.symbol.Activation(name='inception_c2_3x1_3_relu', data=inception_c2_3x1_3_scale , act_type='relu') 588 | inception_c2_pool_ave = mx.symbol.Pooling(name='inception_c2_pool_ave', data=inception_c1_concat , pooling_convention='full', pad=(1,1), kernel=(3,3), stride=(1,1), pool_type='avg') 589 | inception_c2_1x1 = mx.symbol.Convolution(name='inception_c2_1x1', data=inception_c2_pool_ave , num_filter=256, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 590 | inception_c2_1x1_bn = mx.symbol.BatchNorm(name='inception_c2_1x1_bn', data=inception_c2_1x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 591 | inception_c2_1x1_scale = inception_c2_1x1_bn 592 | inception_c2_1x1_relu = mx.symbol.Activation(name='inception_c2_1x1_relu', data=inception_c2_1x1_scale , act_type='relu') 593 | inception_c2_concat = mx.symbol.Concat(name='inception_c2_concat', *[inception_c2_1x1_2_relu,inception_c2_1x3_relu,inception_c2_3x1_relu,inception_c2_1x3_3_relu,inception_c2_3x1_3_relu,inception_c2_1x1_relu] ) 594 | inception_c3_1x1_2 = mx.symbol.Convolution(name='inception_c3_1x1_2', data=inception_c2_concat , num_filter=256, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 595 | inception_c3_1x1_2_bn = mx.symbol.BatchNorm(name='inception_c3_1x1_2_bn', data=inception_c3_1x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 596 | inception_c3_1x1_2_scale = inception_c3_1x1_2_bn 597 | inception_c3_1x1_2_relu = mx.symbol.Activation(name='inception_c3_1x1_2_relu', data=inception_c3_1x1_2_scale , act_type='relu') 598 | inception_c3_1x1_3 = mx.symbol.Convolution(name='inception_c3_1x1_3', data=inception_c2_concat , num_filter=384, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 599 | inception_c3_1x1_3_bn = mx.symbol.BatchNorm(name='inception_c3_1x1_3_bn', data=inception_c3_1x1_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 600 | inception_c3_1x1_3_scale = inception_c3_1x1_3_bn 601 | inception_c3_1x1_3_relu = mx.symbol.Activation(name='inception_c3_1x1_3_relu', data=inception_c3_1x1_3_scale , act_type='relu') 602 | inception_c3_1x3 = mx.symbol.Convolution(name='inception_c3_1x3', data=inception_c3_1x1_3_relu , num_filter=256, pad=(0, 1), kernel=(1,3), stride=(1,1), no_bias=True) 603 | inception_c3_1x3_bn = mx.symbol.BatchNorm(name='inception_c3_1x3_bn', data=inception_c3_1x3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 604 | inception_c3_1x3_scale = inception_c3_1x3_bn 605 | inception_c3_1x3_relu = mx.symbol.Activation(name='inception_c3_1x3_relu', data=inception_c3_1x3_scale , act_type='relu') 606 | inception_c3_3x1 = mx.symbol.Convolution(name='inception_c3_3x1', data=inception_c3_1x1_3_relu , num_filter=256, pad=(1, 0), kernel=(3,1), stride=(1,1), no_bias=True) 607 | inception_c3_3x1_bn = mx.symbol.BatchNorm(name='inception_c3_3x1_bn', data=inception_c3_3x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 608 | inception_c3_3x1_scale = inception_c3_3x1_bn 609 | inception_c3_3x1_relu = mx.symbol.Activation(name='inception_c3_3x1_relu', data=inception_c3_3x1_scale , act_type='relu') 610 | inception_c3_1x1_4 = mx.symbol.Convolution(name='inception_c3_1x1_4', data=inception_c2_concat , num_filter=384, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 611 | inception_c3_1x1_4_bn = mx.symbol.BatchNorm(name='inception_c3_1x1_4_bn', data=inception_c3_1x1_4 , use_global_stats=True, fix_gamma=False, eps=0.001000) 612 | inception_c3_1x1_4_scale = inception_c3_1x1_4_bn 613 | inception_c3_1x1_4_relu = mx.symbol.Activation(name='inception_c3_1x1_4_relu', data=inception_c3_1x1_4_scale , act_type='relu') 614 | inception_c3_3x1_2 = mx.symbol.Convolution(name='inception_c3_3x1_2', data=inception_c3_1x1_4_relu , num_filter=448, pad=(1, 0), kernel=(3,1), stride=(1,1), no_bias=True) 615 | inception_c3_3x1_2_bn = mx.symbol.BatchNorm(name='inception_c3_3x1_2_bn', data=inception_c3_3x1_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 616 | inception_c3_3x1_2_scale = inception_c3_3x1_2_bn 617 | inception_c3_3x1_2_relu = mx.symbol.Activation(name='inception_c3_3x1_2_relu', data=inception_c3_3x1_2_scale , act_type='relu') 618 | inception_c3_1x3_2 = mx.symbol.Convolution(name='inception_c3_1x3_2', data=inception_c3_3x1_2_relu , num_filter=512, pad=(0, 1), kernel=(1,3), stride=(1,1), no_bias=True) 619 | inception_c3_1x3_2_bn = mx.symbol.BatchNorm(name='inception_c3_1x3_2_bn', data=inception_c3_1x3_2 , use_global_stats=True, fix_gamma=False, eps=0.001000) 620 | inception_c3_1x3_2_scale = inception_c3_1x3_2_bn 621 | inception_c3_1x3_2_relu = mx.symbol.Activation(name='inception_c3_1x3_2_relu', data=inception_c3_1x3_2_scale , act_type='relu') 622 | inception_c3_1x3_3 = mx.symbol.Convolution(name='inception_c3_1x3_3', data=inception_c3_1x3_2_relu , num_filter=256, pad=(0, 1), kernel=(1,3), stride=(1,1), no_bias=True) 623 | inception_c3_1x3_3_bn = mx.symbol.BatchNorm(name='inception_c3_1x3_3_bn', data=inception_c3_1x3_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 624 | inception_c3_1x3_3_scale = inception_c3_1x3_3_bn 625 | inception_c3_1x3_3_relu = mx.symbol.Activation(name='inception_c3_1x3_3_relu', data=inception_c3_1x3_3_scale , act_type='relu') 626 | inception_c3_3x1_3 = mx.symbol.Convolution(name='inception_c3_3x1_3', data=inception_c3_1x3_2_relu , num_filter=256, pad=(1, 0), kernel=(3,1), stride=(1,1), no_bias=True) 627 | inception_c3_3x1_3_bn = mx.symbol.BatchNorm(name='inception_c3_3x1_3_bn', data=inception_c3_3x1_3 , use_global_stats=True, fix_gamma=False, eps=0.001000) 628 | inception_c3_3x1_3_scale = inception_c3_3x1_3_bn 629 | inception_c3_3x1_3_relu = mx.symbol.Activation(name='inception_c3_3x1_3_relu', data=inception_c3_3x1_3_scale , act_type='relu') 630 | inception_c3_pool_ave = mx.symbol.Pooling(name='inception_c3_pool_ave', data=inception_c2_concat , pooling_convention='full', pad=(1,1), kernel=(3,3), stride=(1,1), pool_type='avg') 631 | inception_c3_1x1 = mx.symbol.Convolution(name='inception_c3_1x1', data=inception_c3_pool_ave , num_filter=256, pad=(0, 0), kernel=(1,1), stride=(1,1), no_bias=True) 632 | inception_c3_1x1_bn = mx.symbol.BatchNorm(name='inception_c3_1x1_bn', data=inception_c3_1x1 , use_global_stats=True, fix_gamma=False, eps=0.001000) 633 | inception_c3_1x1_scale = inception_c3_1x1_bn 634 | inception_c3_1x1_relu = mx.symbol.Activation(name='inception_c3_1x1_relu', data=inception_c3_1x1_scale , act_type='relu') 635 | inception_c3_concat = mx.symbol.Concat(name='inception_c3_concat', *[inception_c3_1x1_2_relu,inception_c3_1x3_relu,inception_c3_3x1_relu,inception_c3_1x3_3_relu,inception_c3_3x1_3_relu,inception_c3_1x1_relu] ) 636 | pool_8x8_s1 = mx.symbol.Pooling(name='pool_8x8_s1', data=inception_c3_concat , pooling_convention='full', global_pool=True, kernel=(1,1), pool_type='avg') 637 | pool_8x8_s1_drop = mx.symbol.Dropout(name='pool_8x8_s1_drop', data=pool_8x8_s1 , p=0.200000) 638 | flatten_0=mx.symbol.Flatten(name='flatten_0', data=pool_8x8_s1_drop) 639 | classifier = mx.symbol.FullyConnected(name='classifier', data=flatten_0 , num_hidden=1000, no_bias=False) 640 | prob = mx.symbol.SoftmaxOutput(name='prob', data=classifier ) 641 | -------------------------------------------------------------------------------- /inception_v4/score.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | from common import modelzoo, find_mxnet 3 | import mxnet as mx 4 | import time 5 | import os,sys 6 | import logging 7 | import numpy as np 8 | import ipdb 9 | 10 | def save_npy(np_array, out): 11 | np.save(out, np_array) 12 | 13 | def score(prefix, epoch, data_val, metrics, gpus, batch_size, rgb_mean=None, mean_img=None, 14 | image_shape='3,224,224', data_nthreads=4, label_name='prob_label', max_num_examples=None): 15 | # create data iterator 16 | data_shape = tuple([int(i) for i in image_shape.split(',')]) 17 | if mean_img is not None: 18 | mean_args = {'mean_img':mean_img} 19 | elif rgb_mean is not None: 20 | rgb_mean = [float(i) for i in rgb_mean.split(',')] 21 | mean_args = {'mean_r':rgb_mean[0], 'mean_g':rgb_mean[1], 22 | 'mean_b':rgb_mean[2]} 23 | 24 | data = mx.io.ImageRecordIter( 25 | path_imgrec = data_val, 26 | label_width = 1, 27 | preprocess_threads = data_nthreads, 28 | batch_size = batch_size, 29 | data_shape = data_shape, 30 | label_name = label_name, 31 | rand_crop = False, 32 | rand_mirror = False, 33 | resize=331, 34 | scale=1.0/128.0, 35 | #std=128.0, 36 | **mean_args) 37 | if isinstance(prefix, str): 38 | # download model 39 | dir_path = os.path.dirname(os.path.realpath(__file__)) 40 | sym, arg_params, aux_params = mx.model.load_checkpoint(prefix, epoch) 41 | ''' 42 | internals = sym.get_internals() 43 | output_name = ['conv1_output', 44 | 'conv1_bn_output', 45 | 'conv2_1_dw_output', 46 | 'conv2_1_dw_bn_output', 47 | 'fc7_output'] 48 | output_blobs = [] 49 | for name in output_name: 50 | tmp = internals[name] 51 | output_blobs.append(tmp) 52 | output_blobs.append(sym) 53 | ''' 54 | #sym = mx.sym.Group(output_blobs) 55 | 56 | # create module 57 | if gpus == '': 58 | devs = mx.cpu() 59 | else: 60 | devs = [mx.gpu(int(i)) for i in gpus.split(',')] 61 | 62 | mod = mx.mod.Module(symbol=sym, context=devs, label_names=[label_name,]) 63 | mod.bind(for_training=False, 64 | data_shapes=data.provide_data, 65 | label_shapes=data.provide_label) 66 | mod.set_params(arg_params, aux_params) 67 | if not isinstance(metrics, list): 68 | metrics = [metrics,] 69 | tic = time.time() 70 | num = 0 71 | for batch in data: 72 | mod.forward(batch, is_train=False) 73 | 74 | if False: 75 | data = batch.data[0].asnumpy() 76 | save_npy(data, './data.npy') 77 | label = batch.label[0].asnumpy() 78 | save_npy(label, './label.npy') 79 | 80 | outputs = mod.get_outputs() 81 | for i in range(len(output_name)): 82 | output_blob = outputs[i].asnumpy() 83 | save_npy(output_blob, output_name[i] + '.npy') 84 | sys.exit(1) 85 | for m in metrics: 86 | mod.update_metric(m, batch.label) 87 | num += batch_size 88 | if max_num_examples is not None and num > max_num_examples: 89 | break 90 | return (num / (time.time() - tic), ) 91 | 92 | 93 | if __name__ == '__main__': 94 | parser = argparse.ArgumentParser(description='score a model on a dataset') 95 | parser.add_argument('--prefix', type=str, required=True, 96 | help = 'the model prefix name.') 97 | parser.add_argument('--epoch', type=int, required=True, help='epoch load') 98 | parser.add_argument('--gpus', type=str, default='0') 99 | parser.add_argument('--batch-size', type=int, default=64) 100 | parser.add_argument('--rgb-mean', type=str, default='0,0,0') 101 | parser.add_argument('--data-val', type=str, required=True) 102 | parser.add_argument('--image-shape', type=str, default='3,224,224') 103 | parser.add_argument('--data-nthreads', type=int, default=4, 104 | help='number of threads for data decoding') 105 | args = parser.parse_args() 106 | 107 | logger = logging.getLogger() 108 | logger.setLevel(logging.DEBUG) 109 | 110 | metrics = [mx.metric.create('acc'), 111 | mx.metric.create('top_k_accuracy', top_k = 5)] 112 | 113 | (speed,) = score(metrics = metrics, **vars(args)) 114 | logging.info('Finished with %f images per second', speed) 115 | 116 | for m in metrics: 117 | logging.info(m.get()) 118 | -------------------------------------------------------------------------------- /inception_v4/score.sh: -------------------------------------------------------------------------------- 1 | # TOP1 79.835 2 | # TOP5 94.695 3 | python score.py --prefix /data2/obj_detect/imagenet_models/inception_v4/deploy_inception_v4 --epoch 0 --gpus 2,3 --batch-size 64 --rgb-mean 128,128,128 --image-shape 3,299,299 --data-val /data_shared/datasets/ILSVRC2015/rec/val_480_q100.rec 4 | 5 | --------------------------------------------------------------------------------