Merge pull request #25821 from yongtang:25790-tf.keras
PiperOrigin-RevId: 234655827
This commit is contained in:
commit
0b4cfb42a6
@ -468,6 +468,54 @@ class Dimension(object):
|
|||||||
"""
|
"""
|
||||||
return self // other
|
return self // other
|
||||||
|
|
||||||
|
def __rdiv__(self, other):
|
||||||
|
"""Use `__floordiv__` via `x // y` instead.
|
||||||
|
|
||||||
|
This function exists only to have a better error message. Instead of:
|
||||||
|
`TypeError: unsupported operand type(s) for /: 'int' and 'Dimension'`,
|
||||||
|
this function will explicitly call for usage of `//` instead.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
other: Another `Dimension`.
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
TypeError.
|
||||||
|
"""
|
||||||
|
raise TypeError("unsupported operand type(s) for /: '{}' and 'Dimension', "
|
||||||
|
"please use // instead".format(type(other).__name__))
|
||||||
|
|
||||||
|
def __truediv__(self, other):
|
||||||
|
"""Use `__floordiv__` via `x // y` instead.
|
||||||
|
|
||||||
|
This function exists only to have a better error message. Instead of:
|
||||||
|
`TypeError: unsupported operand type(s) for /: 'Dimension' and 'int'`,
|
||||||
|
this function will explicitly call for usage of `//` instead.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
other: Another `Dimension`.
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
TypeError.
|
||||||
|
"""
|
||||||
|
raise TypeError("unsupported operand type(s) for /: 'Dimension' and '{}', "
|
||||||
|
"please use // instead".format(type(other).__name__))
|
||||||
|
|
||||||
|
def __rtruediv__(self, other):
|
||||||
|
"""Use `__floordiv__` via `x // y` instead.
|
||||||
|
|
||||||
|
This function exists only to have a better error message. Instead of:
|
||||||
|
`TypeError: unsupported operand type(s) for /: 'int' and 'Dimension'`,
|
||||||
|
this function will explicitly call for usage of `//` instead.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
other: Another `Dimension`.
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
TypeError.
|
||||||
|
"""
|
||||||
|
raise TypeError("unsupported operand type(s) for /: '{}' and 'Dimension', "
|
||||||
|
"please use // instead".format(type(other).__name__))
|
||||||
|
|
||||||
def __mod__(self, other):
|
def __mod__(self, other):
|
||||||
"""Returns `self` modulo `other`.
|
"""Returns `self` modulo `other`.
|
||||||
|
|
||||||
|
@ -35,6 +35,16 @@ class DimensionDivTest(test_util.TensorFlowTestCase):
|
|||||||
for y in values:
|
for y in values:
|
||||||
self.assertEqual((x / y).value, (x // y).value)
|
self.assertEqual((x / y).value, (x // y).value)
|
||||||
|
|
||||||
|
def testRDivFail(self):
|
||||||
|
# Note: This test is related to GitHub issue 25790.
|
||||||
|
"""Without from __future__ import division, __rdiv__ is used."""
|
||||||
|
if six.PY2: # Old division exists only in Python 2
|
||||||
|
two = tensor_shape.Dimension(2)
|
||||||
|
message = (r"unsupported operand type\(s\) for /: "
|
||||||
|
r"'int' and 'Dimension', please use // instead")
|
||||||
|
with self.assertRaisesRegexp(TypeError, message):
|
||||||
|
_ = 6 / two
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
googletest.main()
|
googletest.main()
|
||||||
|
@ -205,6 +205,23 @@ class DimensionTest(test_util.TensorFlowTestCase):
|
|||||||
reconstructed = ctor(*args)
|
reconstructed = ctor(*args)
|
||||||
self.assertEquals(reconstructed, dim)
|
self.assertEquals(reconstructed, dim)
|
||||||
|
|
||||||
|
def testDiv(self):
|
||||||
|
# Note: This test is related to GitHub issue 25790.
|
||||||
|
six = tensor_shape.Dimension(6)
|
||||||
|
two = tensor_shape.Dimension(2)
|
||||||
|
message = (r"unsupported operand type\(s\) for /: "
|
||||||
|
r"'Dimension' and 'Dimension', please use // instead")
|
||||||
|
with self.assertRaisesRegexp(TypeError, message):
|
||||||
|
_ = six / two
|
||||||
|
message = (r"unsupported operand type\(s\) for /: "
|
||||||
|
r"'Dimension' and 'int', please use // instead")
|
||||||
|
with self.assertRaisesRegexp(TypeError, message):
|
||||||
|
_ = six / 2
|
||||||
|
message = (r"unsupported operand type\(s\) for /: "
|
||||||
|
r"'int' and 'Dimension', please use // instead")
|
||||||
|
with self.assertRaisesRegexp(TypeError, message):
|
||||||
|
_ = 6 / two
|
||||||
|
|
||||||
|
|
||||||
class ShapeTest(test_util.TensorFlowTestCase):
|
class ShapeTest(test_util.TensorFlowTestCase):
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user