提交 03e5e722 authored 作者: James Bergstra's avatar James Bergstra

added back some CeilTester corner cases

上级 73d6971b
...@@ -670,23 +670,29 @@ _good_broadcast_unary_normal_float = dict( ...@@ -670,23 +670,29 @@ _good_broadcast_unary_normal_float = dict(
complex=[randcomplex(2,3)], complex=[randcomplex(2,3)],
empty=[numpy.asarray([])]) empty=[numpy.asarray([])])
def copy_except(dct, *args): def copymod(dct, without=[], **kwargs):
"""Return dct but with the keys named by args removed. """Return dct but with the keys named by args removed, and with
kwargs added.
""" """
rval = copy(dct) rval = copy(dct)
for a in args: for a in without:
if a in rval: if a in rval:
del rval[a] del rval[a]
for kw, val in kwargs.items():
dct[kw] = val
return rval return rval
_good_broadcast_unary_normal_float_no_empty = copy_except( _good_broadcast_unary_normal_float_no_empty = copymod(
_good_broadcast_unary_normal_float, 'empty') _good_broadcast_unary_normal_float,
without=['empty'])
_good_broadcast_unary_normal_float_no_empty_no_complex = copy_except( _good_broadcast_unary_normal_float_no_empty_no_complex = copymod(
_good_broadcast_unary_normal_float_no_empty, 'complex') _good_broadcast_unary_normal_float_no_empty,
without=['complex'])
_good_broadcast_unary_normal_float_no_complex = copy_except( _good_broadcast_unary_normal_float_no_complex = copymod(
_good_broadcast_unary_normal_float, 'complex') _good_broadcast_unary_normal_float,
without=['complex'])
_good_broadcast_unary_normal = dict( _good_broadcast_unary_normal = dict(
normal=[numpy.asarray(rand_ranged(-5, 5, (2, 3)),dtype=config.floatX)], normal=[numpy.asarray(rand_ranged(-5, 5, (2, 3)),dtype=config.floatX)],
...@@ -750,16 +756,22 @@ CeilTester = makeBroadcastTester(op=tensor.ceil, ...@@ -750,16 +756,22 @@ CeilTester = makeBroadcastTester(op=tensor.ceil,
numpy.ceil(a), numpy.ceil(a),
a.dtype), a.dtype),
good=_good_broadcast_unary_normal_no_complex, good=_good_broadcast_unary_normal_no_complex,
# corner cases includes a lot of integers: points where Ceil is not grad=copymod(_grad_broadcast_unary_normal,
# continuous (not differentiable) without=['corner_case'],
grad=copy_except(_grad_broadcast_unary_normal, 'corner_case')) # corner_case includes ints where ceil is not differentiable
extra=[numpy.asarray([-2.5, -1.5, -1.51, 0.49, .98, 1.02],
dtype=floatX)]))
CeilInplaceTester = makeBroadcastTester(op=inplace.ceil_inplace, CeilInplaceTester = makeBroadcastTester(op=inplace.ceil_inplace,
expected=lambda a: numpy.asarray(numpy.ceil(a), a.dtype), expected=lambda a: numpy.asarray(numpy.ceil(a), a.dtype),
good=_good_broadcast_unary_normal_no_complex, good=_good_broadcast_unary_normal_no_complex,
# corner cases includes a lot of integers: points where Ceil is not # corner cases includes a lot of integers: points where Ceil is not
# continuous (not differentiable) # continuous (not differentiable)
grad=copy_except(_grad_broadcast_unary_normal, 'corner_case'), grad=copymod(_grad_broadcast_unary_normal,
without=['corner_case'],
# corner_case includes ints where ceil is not differentiable
extra=[numpy.asarray([-2.5, -1.5, -1.51, 0.49, .98, 1.02],
dtype=floatX)]),
inplace=True) inplace=True)
FloorTester = makeBroadcastTester(op=tensor.floor, FloorTester = makeBroadcastTester(op=tensor.floor,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论