未验证 提交 76c4ae85 编写于 作者: Q qingqing01 提交者: GitHub

Fix reshape op. (#10253)

上级 2f9fa9b7
...@@ -93,8 +93,14 @@ class ReshapeOp : public framework::OperatorWithKernel { ...@@ -93,8 +93,14 @@ class ReshapeOp : public framework::OperatorWithKernel {
if (unk_dim_idx != -1) { if (unk_dim_idx != -1) {
output_shape[unk_dim_idx] = -in_size / capacity; output_shape[unk_dim_idx] = -in_size / capacity;
PADDLE_ENFORCE_EQ(output_shape[unk_dim_idx] * capacity, -in_size, // in_size < 0 and is un-determinate in compile time, skip the check,
"Invalid shape is given."); // for example, in_dims = [-1, 8, 1, 1], shape = [-1, 3, 8],
// capacity = -24, in_size = -8, output_shape[0] = 0
// the following check will fail.
if (in_size > 0) {
PADDLE_ENFORCE_EQ(output_shape[unk_dim_idx] * capacity, -in_size,
"Invalid shape is given.");
}
} else { } else {
PADDLE_ENFORCE_EQ(capacity, in_size, "Invalid shape is given."); PADDLE_ENFORCE_EQ(capacity, in_size, "Invalid shape is given.");
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册