未验证 提交 1cf64e00 编写于 作者: Z Zhen Wang 提交者: GitHub

improve error messages of fake_dequantize_op. test=develop (#23556)

上级 467ce0bc
...@@ -88,10 +88,9 @@ class FakeDequantizeMaxAbsOp : public framework::OperatorWithKernel { ...@@ -88,10 +88,9 @@ class FakeDequantizeMaxAbsOp : public framework::OperatorWithKernel {
: OperatorWithKernel(type, inputs, outputs, attrs) {} : OperatorWithKernel(type, inputs, outputs, attrs) {}
void InferShape(framework::InferShapeContext* ctx) const override { void InferShape(framework::InferShapeContext* ctx) const override {
PADDLE_ENFORCE(ctx->HasInput("X"), OP_INOUT_CHECK(ctx->HasInput("X"), "Input", "X", "FakeDequantizeMaxAbs");
"Input(X) of FakeDequantizeMaxAbsOp should not be null."); OP_INOUT_CHECK(ctx->HasOutput("Out"), "Output", "Out",
PADDLE_ENFORCE(ctx->HasOutput("Out"), "FakeDequantizeMaxAbs");
"Output(Out) of FakeDequantizeMaxAbsOp should not be null.");
ctx->ShareDim("X", /*->*/ "Out"); ctx->ShareDim("X", /*->*/ "Out");
ctx->ShareLoD("X", /*->*/ "Out"); ctx->ShareLoD("X", /*->*/ "Out");
...@@ -125,15 +124,12 @@ class FakeChannelWiseDequantizeMaxAbsOp : public framework::OperatorWithKernel { ...@@ -125,15 +124,12 @@ class FakeChannelWiseDequantizeMaxAbsOp : public framework::OperatorWithKernel {
using framework::OperatorWithKernel::OperatorWithKernel; using framework::OperatorWithKernel::OperatorWithKernel;
void InferShape(framework::InferShapeContext* ctx) const override { void InferShape(framework::InferShapeContext* ctx) const override {
PADDLE_ENFORCE( OP_INOUT_CHECK(ctx->HasInput("X"), "Input", "X",
ctx->HasInput("X"), "FakeChannelWiseDequantizeMaxAbs");
"Input(X) of FakeChannelWiseDequantizeMaxAbsOp should not be null."); OP_INOUT_CHECK(ctx->HasInputs("Scales"), "Input", "Scales",
PADDLE_ENFORCE(ctx->HasInputs("Scales"), "FakeChannelWiseDequantizeMaxAbs");
"Input(Scales) of FakeChannelWiseDequantizeMaxAbsOp " OP_INOUT_CHECK(ctx->HasOutput("Out"), "Output", "Out",
"should not be null."); "FakeChannelWiseDequantizeMaxAbs");
PADDLE_ENFORCE(
ctx->HasOutput("Out"),
"Output(Out) of FakeChannelWiseDequantizeMaxAbsOp should not be null.");
ctx->ShareDim("X", /*->*/ "Out"); ctx->ShareDim("X", /*->*/ "Out");
ctx->ShareLoD("X", /*->*/ "Out"); ctx->ShareLoD("X", /*->*/ "Out");
......
...@@ -71,19 +71,25 @@ class FakeChannelWiseDequantizeMaxAbsKernel : public framework::OpKernel<T> { ...@@ -71,19 +71,25 @@ class FakeChannelWiseDequantizeMaxAbsKernel : public framework::OpKernel<T> {
if (scale_num == 1) { if (scale_num == 1) {
PADDLE_ENFORCE_EQ( PADDLE_ENFORCE_EQ(
scales[0]->numel(), in->dims()[0], scales[0]->numel(), in->dims()[0],
"The number of first scale values must be the same with " platform::errors::PreconditionNotMet(
"first dimension value of Input(X) when the `Scales` has only one " "The number of first scale values must be the same with "
"element."); "first dimension value of Input(X) when the `Scales` has only "
"one element, but %ld != %ld here.",
scales[0]->numel(), in->dims()[0]));
max_range *= (std::pow(2, quant_bits[0] - 1) - 1); max_range *= (std::pow(2, quant_bits[0] - 1) - 1);
} else if (scale_num == 2) { } else if (scale_num == 2) {
PADDLE_ENFORCE_EQ( PADDLE_ENFORCE_EQ(
scales[0]->numel(), in->dims()[1], scales[0]->numel(), in->dims()[1],
"The number of first scale values must be the same with " platform::errors::PreconditionNotMet(
"second dimension value of Input(X) when the `Scales` has two " "The number of first scale values must be the same with "
"elements."); "second dimension value of Input(X) when the `Scales` has two "
PADDLE_ENFORCE_EQ( "elements, but %ld != %ld here.",
scales[1]->numel(), 1, scales[0]->numel(), in->dims()[1]));
"The second scale tensor should only have one value at now."); PADDLE_ENFORCE_EQ(scales[1]->numel(), 1,
platform::errors::PreconditionNotMet(
"The second scale tensor should only have one "
"value at now, but it has %ld values here.",
scales[1]->numel()));
max_range *= (std::pow(2, quant_bits[0] - 1) - 1) * max_range *= (std::pow(2, quant_bits[0] - 1) - 1) *
(std::pow(2, quant_bits[1] - 1) - 1); (std::pow(2, quant_bits[1] - 1) - 1);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册