Ejemplo n.º 1
0
 def testMobilenetV3Small(self, use_groupnorm):
   _, endpoints = mobilenet_v3.mobilenet(
       tf.placeholder(tf.float32, (1, 224, 224, 3)),
       conv_defs=mobilenet_v3.V3_SMALL,
       use_groupnorm=use_groupnorm)
   self.assertEqual(endpoints['layer_15'].shape, [1, 1, 1, 1024])
   self.assertVariablesHaveNormalizerFn(use_groupnorm)
Ejemplo n.º 2
0
 def testMobilenetV3Large(self, use_groupnorm):
   logits, endpoints = mobilenet_v3.mobilenet(
       tf.placeholder(tf.float32, (1, 224, 224, 3)),
       use_groupnorm=use_groupnorm)
   self.assertEqual(endpoints['layer_19'].shape, [1, 1, 1, 1280])
   self.assertEqual(logits.shape, [1, 1001])
   self.assertVariablesHaveNormalizerFn(use_groupnorm)
Ejemplo n.º 3
0
 def testMobilenetV3WithOutReduceMean(self):
     _, _ = mobilenet_v3.mobilenet(tf.compat.v1.placeholder(
         tf.float32, (1, 224, 224, 3)),
                                   conv_defs=mobilenet_v3.V3_SMALL,
                                   use_reduce_mean_for_pooling=False)
     g = tf.get_default_graph()
     reduce_mean = [v for v in g.get_operations() if 'ReduceMean' in v.name]
     self.assertEmpty(reduce_mean)
Ejemplo n.º 4
0
 def testMobilenetV3BaseOnly(self):
     result, endpoints = mobilenet_v3.mobilenet(
         tf.compat.v1.placeholder(tf.float32, (1, 224, 224, 3)),
         conv_defs=mobilenet_v3.V3_LARGE,
         base_only=True,
         final_endpoint='layer_17')
     # Get the latest layer before average pool.
     self.assertEqual(endpoints['layer_17'].shape, [1, 7, 7, 960])
     self.assertEqual(result, endpoints['layer_17'])
Ejemplo n.º 5
0
 def testMobilenetV3BaseOnly_VariableInput(self):
     result, endpoints = mobilenet_v3.mobilenet(
         tf.placeholder(tf.float32, (None, None, None, 3)),
         conv_defs=mobilenet_v3.V3_LARGE,
         base_only=True,
         final_endpoint='layer_17')
     # Get the latest layer before average pool.
     self.assertEqual(endpoints['layer_17'].shape.as_list(),
                      [None, None, None, 960])
     self.assertEqual(result, endpoints['layer_17'])
Ejemplo n.º 6
0
 def testMobilenetV3WithOutReduceMean(self, use_groupnorm):
   _, _ = mobilenet_v3.mobilenet(
       tf.placeholder(tf.float32, (1, 224, 224, 3)),
       conv_defs=mobilenet_v3.V3_SMALL,
       use_groupnorm=use_groupnorm,
       use_reduce_mean_for_pooling=False)
   g = tf.get_default_graph()
   reduce_mean = [v for v in g.get_operations() if 'ReduceMean' in v.name]
   self.assertEmpty(reduce_mean)
   self.assertVariablesHaveNormalizerFn(use_groupnorm)
Ejemplo n.º 7
0
 def testMobilenetV3BaseOnly(self, use_groupnorm):
   result, endpoints = mobilenet_v3.mobilenet(
       tf.placeholder(tf.float32, (1, 224, 224, 3)),
       conv_defs=mobilenet_v3.V3_LARGE,
       use_groupnorm=use_groupnorm,
       base_only=True,
       final_endpoint='layer_17')
   # Get the latest layer before average pool.
   self.assertEqual(endpoints['layer_17'].shape, [1, 7, 7, 960])
   self.assertEqual(result, endpoints['layer_17'])
   self.assertVariablesHaveNormalizerFn(use_groupnorm)
Ejemplo n.º 8
0
 def testMobilenetV3Small(self):
     _, endpoints = mobilenet_v3.mobilenet(tf.compat.v1.placeholder(
         tf.float32, (1, 224, 224, 3)),
                                           conv_defs=mobilenet_v3.V3_SMALL)
     self.assertEqual(endpoints['layer_15'].shape, [1, 1, 1, 1024])
Ejemplo n.º 9
0
 def testMobilenetV3Large(self):
     logits, endpoints = mobilenet_v3.mobilenet(
         tf.compat.v1.placeholder(tf.float32, (1, 224, 224, 3)))
     self.assertEqual(endpoints['layer_19'].shape, [1, 1, 1, 1280])
     self.assertEqual(logits.shape, [1, 1001])
Ejemplo n.º 10
0
def _mobilenet_v3_large_224(*args, **kwargs):
    kwargs['depth_multiplier'] = 1.0
    kwargs['conv_defs'] = mobilenet_v3.V3_LARGE
    return mobilenet_v3.mobilenet(*args, **kwargs)
Ejemplo n.º 11
0
def _mobilenet_v3_small_224(*args, **kwargs):
    kwargs['depth_multiplier'] = 1.0
    kwargs['conv_defs'] = mobilenet_v3.V3_SMALL
    return mobilenet_v3.mobilenet(*args, **kwargs)
Ejemplo n.º 12
0
# For simplicity we just decode jpeg inside tensorflow.
# But one can provide any input obviously.
file_input = tf.placeholder(tf.string, ())

image = tf.image.decode_jpeg(tf.read_file(file_input))

images = tf.expand_dims(image, 0)
images = tf.cast(images, tf.float32) / 128. - 1
images.set_shape((None, None, None, 3))
images = tf.image.resize_images(images, (224, 224))

# 测试MobileNetV2,MobileNetV3
# Note: arg_scope is optional for inference.
with tf.contrib.slim.arg_scope(mobilenet_v3.training_scope(is_training=False)):
    logits, endpoints = mobilenet_v3.mobilenet(images)

# 测试MobileNetV1
#with tf.contrib.slim.arg_scope(mobilenet_v1.mobilenet_v1_arg_scope(is_training=False)):
#logits, endpoints = mobilenet_v1.mobilenet_v1(images)
# Restore using exponential moving average since it produces (1.5-2%) higher
# accuracy
ema = tf.train.ExponentialMovingAverage(0.999)
vars = ema.variables_to_restore()

saver = tf.train.Saver(vars)

from datasets import imagenet
import os
import time
Ejemplo n.º 13
0
  def testMobilenetV3BaseOnly(self):
    result, endpoints = mobilenet_v3.mobilenet(
        tf.compat.v1.placeholder(tf.float32, (1, 224, 224, 3)),
        conv_defs=mobilenet_v3.V3_LARGE,
        base_only=True,
        final_endpoint='layer_17')
    # Get the latest layer before average pool.
    self.assertEqual(endpoints['layer_17'].shape, [1, 7, 7, 960])
    self.assertEqual(result, endpoints['layer_17'])

  def testMobilenetV3BaseOnly_VariableInput(self):
    result, endpoints = mobilenet_v3.mobilenet(
        tf.placeholder(tf.float32, (None, None, None, 3)),
        conv_defs=mobilenet_v3.V3_LARGE,
        base_only=True,
        final_endpoint='layer_17')
    # Get the latest layer before average pool.
    self.assertEqual(endpoints['layer_17'].shape.as_list(),
                     [None, None, None, 960])
    self.assertEqual(result, endpoints['layer_17'])
"""
if __name__ == '__main__':
    #absltest.main()
    logits, endpoints = mobilenet_v3.mobilenet(
        tf.compat.v1.placeholder(tf.float32, (1, 800, 800, 3)))
    print(logits)
    print(endpoints)
    #self.assertEqual(endpoints['layer_19'].shape, [1, 1, 1, 1280])
    #self.assertEqual(logits.shape, [1, 1001])