| @@ -28,9 +28,14 @@ namespace TensorFlowNET.UnitTest | |||||
| { | { | ||||
| var input = np.array(0f, 1f, 2f, 3f, 4f, 5f, 6f, 7f, 8f); | var input = np.array(0f, 1f, 2f, 3f, 4f, 5f, 6f, 7f, 8f); | ||||
| var image = tf.reshape(input, new int[] { 3, 3, 1 }); | var image = tf.reshape(input, new int[] { 3, 3, 1 }); | ||||
| var img = tf.image.adjust_contrast(image, 2.0f); | |||||
| var init = tf.global_variables_initializer(); | |||||
| var sess = tf.Session(); | |||||
| sess.run(init); | |||||
| var adjust_contrast = tf.image.adjust_contrast(image, 2.0f); | |||||
| var result = sess.run(adjust_contrast); | |||||
| var res = np.array(-4f, -2f, 0f, 2f, 4f, 6f, 8f, 10f, 12f).reshape((3,3,1)); | var res = np.array(-4f, -2f, 0f, 2f, 4f, 6f, 8f, 10f, 12f).reshape((3,3,1)); | ||||
| Assert.AreEqual(img.numpy(), res); | |||||
| Assert.AreEqual(result.numpy(), res); | |||||
| } | } | ||||
| [Ignore] | [Ignore] | ||||
| @@ -48,25 +53,31 @@ namespace TensorFlowNET.UnitTest | |||||
| [TestMethod] | [TestMethod] | ||||
| public void combined_non_max_suppression() | public void combined_non_max_suppression() | ||||
| { | { | ||||
| var boxesX = tf.constant(new float[,] { { 200, 100, 150, 100 }, { 220, 120, 150, 100 }, { 190, 110, 150, 100 },{ 210, 112, 150, 100 } }); | |||||
| var boxesX = tf.constant(new float[,] { { 200, 100, 150, 100 }, { 220, 120, 150, 100 }, { 190, 110, 150, 100 }, { 210, 112, 150, 100 } }); | |||||
| var boxes1 = tf.reshape(boxesX, (1, 4, 1, 4)); | var boxes1 = tf.reshape(boxesX, (1, 4, 1, 4)); | ||||
| var scoresX = tf.constant(new float[,] { { 0.2f, 0.7f, 0.1f },{ 0.1f, 0.8f, 0.1f },{ 0.3f, 0.6f, 0.1f },{ 0.05f, 0.9f, 0.05f } }); | |||||
| var scoresX = tf.constant(new float[,] { { 0.2f, 0.7f, 0.1f }, { 0.1f, 0.8f, 0.1f }, { 0.3f, 0.6f, 0.1f }, { 0.05f, 0.9f, 0.05f } }); | |||||
| var scores1 = tf.reshape(scoresX, (1, 4, 3)); | var scores1 = tf.reshape(scoresX, (1, 4, 3)); | ||||
| var (boxes, scores, classes, valid_detections) = tf.image.combined_non_max_suppression(boxes1, scores1, 10, 10, 0.5f, 0.2f, clip_boxes:false); | |||||
| var init = tf.global_variables_initializer(); | |||||
| var sess = tf.Session(); | |||||
| sess.run(init); | |||||
| var (boxes, scores, classes, valid_detections) = tf.image.combined_non_max_suppression(boxes1, scores1, 10, 10, 0.5f, 0.2f, clip_boxes: false); | |||||
| var result = sess.run((boxes, scores, classes, valid_detections)); | |||||
| var boxes_gt = tf.constant(new float[,] { { 210f, 112f, 150f, 100f }, { 200f, 100f, 150f, 100f }, { 190f, 110f, 150f, 100f }, | var boxes_gt = tf.constant(new float[,] { { 210f, 112f, 150f, 100f }, { 200f, 100f, 150f, 100f }, { 190f, 110f, 150f, 100f }, | ||||
| { 0f, 0f, 0f, 0f},{ 0f, 0f, 0f, 0f},{ 0f, 0f, 0f, 0f},{ 0f, 0f, 0f , 0f},{ 0f, 0f, 0f, 0f},{ 0f , 0f, 0f, 0f},{ 0f, 0f, 0f, 0f} }); | { 0f, 0f, 0f, 0f},{ 0f, 0f, 0f, 0f},{ 0f, 0f, 0f, 0f},{ 0f, 0f, 0f , 0f},{ 0f, 0f, 0f, 0f},{ 0f , 0f, 0f, 0f},{ 0f, 0f, 0f, 0f} }); | ||||
| boxes_gt = tf.reshape(boxes_gt,(1, 10, 4)); | |||||
| Assert.AreEqual(boxes.numpy(), boxes_gt.numpy()); | |||||
| boxes_gt = tf.reshape(boxes_gt, (1, 10, 4)); | |||||
| Assert.AreEqual(result.Item1.numpy(), boxes_gt.numpy()); | |||||
| var scores_gt = tf.constant(new float[,] { { 0.9f, 0.7f, 0.3f, 0f, 0f, 0f, 0f, 0f, 0f, 0f } }); | var scores_gt = tf.constant(new float[,] { { 0.9f, 0.7f, 0.3f, 0f, 0f, 0f, 0f, 0f, 0f, 0f } }); | ||||
| scores_gt = tf.reshape(scores_gt, (1, 10)); | scores_gt = tf.reshape(scores_gt, (1, 10)); | ||||
| Assert.AreEqual(scores.numpy(), scores_gt.numpy()); | |||||
| Assert.AreEqual(result.Item2.numpy(), scores_gt.numpy()); | |||||
| var classes_gt = tf.constant(new float[,] { { 1f, 1f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f } }); | var classes_gt = tf.constant(new float[,] { { 1f, 1f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f } }); | ||||
| classes_gt = tf.reshape(classes_gt, (1, 10)); | classes_gt = tf.reshape(classes_gt, (1, 10)); | ||||
| Assert.AreEqual(classes.numpy(), classes_gt.numpy()); | |||||
| Assert.AreEqual(result.Item3.numpy(), classes_gt.numpy()); | |||||
| var valid_detections_gt = tf.constant(new int[,] { { 3 } }); | var valid_detections_gt = tf.constant(new int[,] { { 3 } }); | ||||
| valid_detections_gt = tf.reshape(valid_detections_gt, (1)); | valid_detections_gt = tf.reshape(valid_detections_gt, (1)); | ||||
| Assert.AreEqual(valid_detections.numpy(), valid_detections_gt.numpy()); | |||||
| Assert.AreEqual(result.Item4.numpy(), valid_detections_gt.numpy()); | |||||
| } | } | ||||
| [TestMethod] | [TestMethod] | ||||