Esempio n. 1
0
    def build_model(self, keras=False):
        with tf.Graph().as_default():
            config = hparams_config.get_efficientdet_config()
            inputs_shape = [1, 512, 512, 3]
            inputs = dict()
            for i in range(config.min_level, config.max_level + 1):
                inputs[i] = tf.ones(shape=inputs_shape, name='input', dtype=tf.float32)

            if not keras:
                legacy_arch.build_class_and_box_outputs(inputs, config)
            else:
                efficientdet_arch_keras.build_class_and_box_outputs(inputs, config)
            return [n.name for n in tf.global_variables()]
Esempio n. 2
0
  def build_model(self, keras=False):
    with tf.Graph().as_default():
      config = hparams_config.get_efficientdet_config('efficientdet-d0')
      inputs_shape = [1, 512, 512, 3]
      legacy_inputs, keras_inputs = dict(), []
      for i in range(config.min_level, config.max_level + 1):
        keras_inputs.append(
            tf.ones(shape=inputs_shape, name='input', dtype=tf.float32))
        legacy_inputs[i] = keras_inputs[-1]

      if keras:
        efficientdet_keras.build_class_and_box_outputs(keras_inputs, config)
      else:
        legacy_arch.build_class_and_box_outputs(legacy_inputs, config)
      return [n.name for n in tf.global_variables()]
 def test_output(self):
     config = hparams_config.get_efficientdet_config('efficientdet-d0')
     inputs_shape = [1, 512, 512, 3]
     config.max_level = config.min_level + 1
     with tf.Session(graph=tf.Graph()) as sess:
         inputs = dict()
         for i in range(config.min_level, config.max_level + 1):
             inputs[i] = tf.ones(shape=inputs_shape,
                                 name='input',
                                 dtype=tf.float32)
         tf.random.set_random_seed(SEED)
         output1 = efficientdet_arch_keras.build_class_and_box_outputs(
             inputs, config)
         sess.run(tf.global_variables_initializer())
         class_output1, box_output1 = sess.run(output1)
     with tf.Session(graph=tf.Graph()) as sess:
         inputs = dict()
         for i in range(config.min_level, config.max_level + 1):
             inputs[i] = tf.ones(shape=inputs_shape,
                                 name='input',
                                 dtype=tf.float32)
         tf.random.set_random_seed(SEED)
         output2 = legacy_arch.build_class_and_box_outputs(inputs, config)
         sess.run(tf.global_variables_initializer())
         class_output2, box_output2 = sess.run(output2)
     for i in range(config.min_level, config.max_level + 1):
         self.assertAllEqual(class_output1[i], class_output2[i])
         self.assertAllEqual(box_output1[i], box_output2[i])
Esempio n. 4
0
    def test_output(self):
        config = hparams_config.get_efficientdet_config('efficientdet-d0')
        inputs_shape = [1, 512, 512, 3]
        config.max_level = config.min_level + 1
        with tf.Session(graph=tf.Graph()) as sess:
            tf.random.set_random_seed(SEED)
            keras_inputs = []
            for i in range(config.min_level, config.max_level + 1):
                keras_inputs.append(
                    tf.ones(shape=inputs_shape, name='input',
                            dtype=tf.float32))

            output1 = efficientdet_keras.build_class_and_box_outputs(
                keras_inputs, config)
            sess.run(tf.global_variables_initializer())
            keras_class, keras_box = sess.run(output1)
        with tf.Session(graph=tf.Graph()) as sess:
            tf.random.set_random_seed(SEED)
            legacy_inputs = dict()
            for i in range(config.min_level, config.max_level + 1):
                legacy_inputs[i] = tf.ones(shape=inputs_shape,
                                           name='input',
                                           dtype=tf.float32)
            output2 = legacy_arch.build_class_and_box_outputs(
                legacy_inputs, config)
            sess.run(tf.global_variables_initializer())
            legacy_class, legacy_box = sess.run(output2)

        for i in range(config.min_level, config.max_level + 1):
            self.assertAllClose(keras_class[i - config.min_level],
                                legacy_class[i])
            self.assertAllClose(keras_box[i - config.min_level], legacy_box[i])
 def test_model_output(self):
     inputs_shape = [1, 512, 512, 3]
     config = hparams_config.get_efficientdet_config('efficientdet-d0')
     with tf.Session(graph=tf.Graph()) as sess:
         feats = tf.ones(inputs_shape)
         tf.random.set_random_seed(SEED)
         feats, _ = efficientdet_arch_keras.build_backbone(feats, config)
         feats = efficientdet_arch_keras.build_feature_network(
             feats, config)
         feats = efficientdet_arch_keras.build_class_and_box_outputs(
             feats, config)
         sess.run(tf.global_variables_initializer())
         class_output1, box_output1 = sess.run(feats)
     with tf.Session(graph=tf.Graph()) as sess:
         feats = tf.ones(inputs_shape)
         tf.random.set_random_seed(SEED)
         feats = legacy_arch.build_backbone(feats, config)
         feats = legacy_arch.build_feature_network(feats, config)
         feats = legacy_arch.build_class_and_box_outputs(feats, config)
         sess.run(tf.global_variables_initializer())
         class_output2, box_output2 = sess.run(feats)
     for i in range(3, 8):
         self.assertAllEqual(class_output1[i], class_output2[i])
         self.assertAllEqual(box_output1[i], box_output2[i])