未验证 提交 26bdea0f 编写于 作者: 张春乔 提交者: GitHub

fix div 0 error in floormod (#49997)

* fix mod 0 error

* fix div 0 error in floormod
上级 a1f28a48
......@@ -501,6 +501,7 @@ struct MinGradXYFunctor {
template <typename T, typename Enable = void>
struct RemainderFunctor {
inline HOSTDEVICE T operator()(const T a, const T b) const {
PADDLE_ENFORCE(b != 0, DIV_ERROR_INFO);
T res = a % b;
// Accoding to #PR26732: in dividen % divsor
......
# Copyright (c) 2023 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import unittest
import paddle
import paddle.fluid as fluid
class TestFloorModOp(unittest.TestCase):
def test_dygraph(self):
with fluid.dygraph.guard(fluid.CPUPlace()):
# mod by zero
x = paddle.to_tensor([59], dtype='int32')
y = paddle.to_tensor([0], dtype='int32')
try:
paddle.floor_mod(x, y)
except Exception as e:
print("Error: Mod by zero encounter in floor_mod\n")
if __name__ == '__main__':
unittest.main()
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册