未验证 提交 bcb2903e 编写于 作者: T Tao Luo 提交者: GitHub

enhance shape error message of mul_op (#19998)

test=develop
上级 d62360fe
...@@ -47,23 +47,27 @@ class MulOp : public framework::OperatorWithKernel { ...@@ -47,23 +47,27 @@ class MulOp : public framework::OperatorWithKernel {
<< " x_num_col_dims=" << x_num_col_dims << " x_num_col_dims=" << x_num_col_dims
<< " y_num_col_dims=" << y_num_col_dims; << " y_num_col_dims=" << y_num_col_dims;
PADDLE_ENFORCE_GT( PADDLE_ENFORCE_GT(x_dims.size(), x_num_col_dims,
x_dims.size(), x_num_col_dims, "ShapeError: The input tensor X's dimensions of MulOp "
"The input tensor X's rank of MulOp should be larger than " "should be larger than x_num_col_dims. But received X's "
"x_num_col_dims."); "dimensions = %d, X's shape = [%s], x_num_col_dims = %d.",
PADDLE_ENFORCE_GT( x_dims.size(), x_dims, x_num_col_dims);
y_dims.size(), y_num_col_dims, PADDLE_ENFORCE_GT(y_dims.size(), y_num_col_dims,
"The input tensor Y's rank of MulOp should be larger than " "ShapeError: The input tensor Y's dimensions of MulOp "
"y_num_col_dims: %ld vs %ld", "should be larger than y_num_col_dims. But received Y's "
y_dims.size(), y_num_col_dims); "dimensions = %d, Y's shape = [%s], y_num_col_dims = %d.",
y_dims.size(), y_dims, y_num_col_dims);
auto x_mat_dims = framework::flatten_to_2d(x_dims, x_num_col_dims); auto x_mat_dims = framework::flatten_to_2d(x_dims, x_num_col_dims);
auto y_mat_dims = framework::flatten_to_2d(y_dims, y_num_col_dims); auto y_mat_dims = framework::flatten_to_2d(y_dims, y_num_col_dims);
PADDLE_ENFORCE_EQ(x_mat_dims[1], y_mat_dims[0], PADDLE_ENFORCE_EQ(
"First matrix's width must be equal with second matrix's " x_mat_dims[1], y_mat_dims[0],
"height. %s, %s", "ShapeError: After flatten the input tensor X and Y to 2-D dimensions "
x_mat_dims[1], y_mat_dims[0]); "matrix X1 and Y1, the matrix X1's width must be equal with matrix "
"Y1's height. But received X's shape = [%s], X1's shape = [%s], X1's "
"width = %s; Y's shape = [%s], Y1's shape = [%s], Y1's height = %s.",
x_dims, x_mat_dims, x_mat_dims[1], y_dims, y_mat_dims, y_mat_dims[0]);
std::vector<int64_t> output_dims; std::vector<int64_t> output_dims;
output_dims.reserve( output_dims.reserve(
static_cast<size_t>(x_num_col_dims + y_dims.size() - y_num_col_dims)); static_cast<size_t>(x_num_col_dims + y_dims.size() - y_num_col_dims));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册