예제 #1
0
    def resnet_model_fn_helper(self, mode):
        """Tests that the EstimatorSpec is given the appropriate arguments."""
        tf.train.create_global_step()

        features, labels = self.input_fn()
        spec = imagenet_main.resnet_model_fn(
            features, labels, mode, {
                'resnet_size': 50,
                'data_format': 'channels_last',
                'batch_size': _BATCH_SIZE,
            })

        predictions = spec.predictions
        self.assertAllEqual(predictions['probabilities'].shape,
                            (_BATCH_SIZE, _LABEL_CLASSES))
        self.assertEqual(predictions['probabilities'].dtype, tf.float32)
        self.assertAllEqual(predictions['classes'].shape, (_BATCH_SIZE, ))
        self.assertEqual(predictions['classes'].dtype, tf.int64)

        if mode != tf.estimator.ModeKeys.PREDICT:
            loss = spec.loss
            self.assertAllEqual(loss.shape, ())
            self.assertEqual(loss.dtype, tf.float32)

        if mode == tf.estimator.ModeKeys.EVAL:
            eval_metric_ops = spec.eval_metric_ops
            self.assertAllEqual(eval_metric_ops['accuracy'][0].shape, ())
            self.assertAllEqual(eval_metric_ops['accuracy'][1].shape, ())
            self.assertEqual(eval_metric_ops['accuracy'][0].dtype, tf.float32)
            self.assertEqual(eval_metric_ops['accuracy'][1].dtype, tf.float32)
예제 #2
0
  def resnet_model_fn_helper(self, mode):
    """Tests that the EstimatorSpec is given the appropriate arguments."""
    tf.train.create_global_step()

    features, labels = self.input_fn()
    spec = imagenet_main.resnet_model_fn(features, labels, mode)

    predictions = spec.predictions
    self.assertAllEqual(predictions['probabilities'].shape,
                        (FLAGS.train_batch_size, _LABEL_CLASSES))
    self.assertEqual(predictions['probabilities'].dtype, tf.float32)
    self.assertAllEqual(predictions['classes'].shape, (FLAGS.train_batch_size,))
    self.assertEqual(predictions['classes'].dtype, tf.int64)

    if mode != tf.estimator.ModeKeys.PREDICT:
      loss = spec.loss
      self.assertAllEqual(loss.shape, ())
      self.assertEqual(loss.dtype, tf.float32)

    if mode == tf.estimator.ModeKeys.EVAL:
      eval_metric_ops = spec.eval_metric_ops
      self.assertAllEqual(eval_metric_ops['accuracy'][0].shape, ())
      self.assertAllEqual(eval_metric_ops['accuracy'][1].shape, ())
      self.assertEqual(eval_metric_ops['accuracy'][0].dtype, tf.float32)
      self.assertEqual(eval_metric_ops['accuracy'][1].dtype, tf.float32)