diff --git a/tensorflow/c/kernels/BUILD b/tensorflow/c/kernels/BUILD index fb1c7deb054..d61b2817b40 100644 --- a/tensorflow/c/kernels/BUILD +++ b/tensorflow/c/kernels/BUILD @@ -28,16 +28,15 @@ tf_kernel_library( name = "summary_op", prefix = "summary_op", deps = [ - "//tensorflow/c/kernels:tensor_shape_utils", "//tensorflow/c:kernels", "//tensorflow/c:tf_tensor", "//tensorflow/c:tf_status", + "//tensorflow/c/kernels:tensor_shape_utils", "//tensorflow/core:framework", "//tensorflow/core:lib", ], ) - tf_gen_op_libs( op_lib_names = ["bitcast"], deps = [ @@ -81,15 +80,15 @@ tf_cc_test( "//tensorflow/core:lib", "//tensorflow/core:test", "//tensorflow/core:test_main", - "//tensorflow/core:testlib" + "//tensorflow/core:testlib", ], ) cc_library( name = "tensor_shape_utils", - srcs = ["tensor_shape_utils.cc",], - hdrs = ["tensor_shape_utils.h",], - deps = [ "//tensorflow/c:tf_tensor",], + srcs = ["tensor_shape_utils.cc"], + hdrs = ["tensor_shape_utils.h"], + deps = [ "//tensorflow/c:tf_tensor"], visibility = ["//visibility:private"], ) @@ -116,7 +115,7 @@ filegroup( name = "android_all_op_kernels", srcs = [ "bitcast_op.cc", - "summary_op.cc" + "summary_op.cc", ], ) # LINT.ThenChange(//tensorflow/contrib/makefile/tf_op_files.txt) @@ -125,6 +124,6 @@ filegroup( name = "android_all_ops", srcs = [ "ops/bitcast.cc", - "ops/summary.cc" + "ops/summary.cc", ], ) diff --git a/tensorflow/c/kernels/summary_op.cc b/tensorflow/c/kernels/summary_op.cc index 925521c7c73..3ce3a1256a9 100644 --- a/tensorflow/c/kernels/summary_op.cc +++ b/tensorflow/c/kernels/summary_op.cc @@ -78,7 +78,7 @@ void ScalarSummaryOp_Compute(void* kernel, TF_OpKernelContext* ctx) { } if (!IsSameSize(params.tags, params.values)) { std::ostringstream err; - err << "tags and values not the same shape: " + err << "tags and values are not the same shape: " << tensorflow::ShapeDebugString(params.tags) << " != " << tensorflow::ShapeDebugString(params.values) << SingleTag(params.tags); diff --git a/tensorflow/c/kernels/summary_op_test.cc b/tensorflow/c/kernels/summary_op_test.cc index b19c19ad225..8e05f32a3ed 100644 --- a/tensorflow/c/kernels/summary_op_test.cc +++ b/tensorflow/c/kernels/summary_op_test.cc @@ -53,7 +53,7 @@ void ExpectSummaryMatches(const Summary& actual, const string& expected_str) { } -void TestScalarSummaryOp(Tensor* tags, Tensor* values, string expected_summary, +void TestScalarSummaryOp(Tensor* tags, Tensor* values, string expected_output, error::Code expected_code) { // Initialize node used to fetch OpKernel Status status; @@ -92,9 +92,12 @@ void TestScalarSummaryOp(Tensor* tags, Tensor* values, string expected_summary, Summary summary; ASSERT_TRUE(ParseProtoUnlimited(&summary, ctx.mutable_output(0)-> scalar()())); - ExpectSummaryMatches(summary, expected_summary); - + ExpectSummaryMatches(summary, expected_output); } + else { + EXPECT_TRUE(absl::StrContains(ctx.status().ToString(), expected_output)) + << ctx.status(); + } } TEST(ScalarSummaryOpTest, SimpleFloat) { @@ -153,7 +156,8 @@ TEST(ScalarSummaryOpTest, Error_WrongDimsTags) { tags.matrix()(1, 0) = "tag2"; values.vec()(0) = 1.0f; values.vec()(1) = -2.0f; - TestScalarSummaryOp(&tags, &values, R"()", error::INVALID_ARGUMENT); + TestScalarSummaryOp(&tags, &values, "tags and values are not the same shape", + error::INVALID_ARGUMENT); } TEST(ScalarSummaryOpTest, Error_WrongValuesTags) { @@ -163,7 +167,8 @@ TEST(ScalarSummaryOpTest, Error_WrongValuesTags) { tags.vec()(1) = "tag2"; values.matrix()(0, 0) = 1.0f; values.matrix()(1, 0) = -2.0f; - TestScalarSummaryOp(&tags, &values, R"()", error::INVALID_ARGUMENT); + TestScalarSummaryOp(&tags, &values, "tags and values are not the same shape", + error::INVALID_ARGUMENT); } TEST(ScalarSummaryOpTest, Error_WrongWithSingleTag) { @@ -172,7 +177,8 @@ TEST(ScalarSummaryOpTest, Error_WrongWithSingleTag) { tags.vec()(0) = "tag1"; values.matrix()(0, 0) = 1.0f; values.matrix()(1, 0) = -2.0f; - TestScalarSummaryOp(&tags, &values, R"()", error::INVALID_ARGUMENT); + TestScalarSummaryOp(&tags, &values, "tags and values are not the same shape", + error::INVALID_ARGUMENT); } diff --git a/tensorflow/core/kernels/summary_op_test.cc b/tensorflow/core/kernels/summary_op_test.cc index 1e5089bdeab..9c9e87581c6 100644 --- a/tensorflow/core/kernels/summary_op_test.cc +++ b/tensorflow/core/kernels/summary_op_test.cc @@ -45,111 +45,6 @@ static void EXPECT_SummaryMatches(const Summary& actual, EXPECT_EQ(expected.DebugString(), actual.DebugString()); } -class SummaryScalarOpTest : public OpsTestBase { - protected: - void MakeOp(DataType dt) { - TF_ASSERT_OK(NodeDefBuilder("myop", "ScalarSummary") - .Input(FakeInput()) - .Input(FakeInput(dt)) - .Finalize(node_def())); - TF_ASSERT_OK(InitOp()); - } -}; - -TEST_F(SummaryScalarOpTest, SimpleFloat) { - MakeOp(DT_FLOAT); - - // Feed and run - AddInputFromArray(TensorShape({3}), {"tag1", "tag2", "tag3"}); - AddInputFromArray(TensorShape({3}), {1.0f, -0.73f, 10000.0f}); - TF_ASSERT_OK(RunOpKernel()); - - // Check the output size. - Tensor* out_tensor = GetOutput(0); - ASSERT_EQ(0, out_tensor->dims()); - Summary summary; - ParseProtoUnlimited(&summary, out_tensor->scalar()()); - EXPECT_SummaryMatches(summary, R"( - value { tag: 'tag1' simple_value: 1.0 } - value { tag: 'tag2' simple_value: -0.73 } - value { tag: 'tag3' simple_value: 10000.0 } - )"); -} - -TEST_F(SummaryScalarOpTest, SimpleDouble) { - MakeOp(DT_DOUBLE); - - // Feed and run - AddInputFromArray(TensorShape({3}), {"tag1", "tag2", "tag3"}); - AddInputFromArray(TensorShape({3}), {1.0, -0.73, 10000.0}); - TF_ASSERT_OK(RunOpKernel()); - - // Check the output size. - Tensor* out_tensor = GetOutput(0); - ASSERT_EQ(0, out_tensor->dims()); - Summary summary; - ParseProtoUnlimited(&summary, out_tensor->scalar()()); - EXPECT_SummaryMatches(summary, R"( - value { tag: 'tag1' simple_value: 1.0 } - value { tag: 'tag2' simple_value: -0.73 } - value { tag: 'tag3' simple_value: 10000.0 } - )"); -} - -TEST_F(SummaryScalarOpTest, SimpleHalf) { - MakeOp(DT_HALF); - - // Feed and run - AddInputFromList(TensorShape({3}), {"tag1", "tag2", "tag3"}); - AddInputFromList(TensorShape({3}), {1.0, -2.0, 10000.0}); - TF_ASSERT_OK(RunOpKernel()); - - // Check the output size. - Tensor* out_tensor = GetOutput(0); - ASSERT_EQ(0, out_tensor->dims()); - Summary summary; - ParseProtoUnlimited(&summary, out_tensor->scalar()()); - EXPECT_SummaryMatches(summary, R"( - value { tag: 'tag1' simple_value: 1.0 } - value { tag: 'tag2' simple_value: -2.0 } - value { tag: 'tag3' simple_value: 10000.0 } - )"); -} - -TEST_F(SummaryScalarOpTest, Error_MismatchedSize) { - MakeOp(DT_FLOAT); - - // Feed and run - AddInputFromArray(TensorShape({2}), {"tag1", "tag2"}); - AddInputFromArray(TensorShape({3}), {1.0f, -0.73f, 10000.0f}); - Status s = RunOpKernel(); - EXPECT_TRUE(absl::StrContains(s.ToString(), "not the same shape")) << s; -} - -TEST_F(SummaryScalarOpTest, Error_WrongDimsTags) { - MakeOp(DT_FLOAT); - - // Feed and run - AddInputFromArray(TensorShape({2, 1}), {"tag1", "tag2"}); - AddInputFromArray(TensorShape({2}), {1.0f, -0.73f}); - Status s = RunOpKernel(); - EXPECT_TRUE( - absl::StrContains(s.ToString(), "tags and values not the same shape")) - << s; -} - -TEST_F(SummaryScalarOpTest, Error_WrongDimsValues) { - MakeOp(DT_FLOAT); - - // Feed and run - AddInputFromArray(TensorShape({2}), {"tag1", "tag2"}); - AddInputFromArray(TensorShape({2, 1}), {1.0f, -0.73f}); - Status s = RunOpKernel(); - EXPECT_TRUE( - absl::StrContains(s.ToString(), "tags and values not the same shape")) - << s; -} - // -------------------------------------------------------------------------- // SummaryHistoOp // --------------------------------------------------------------------------