提交 b95bea68 authored 作者: Nicolas Bouchard's avatar Nicolas Bouchard

Fix cast

上级 455ce72d
......@@ -2050,14 +2050,14 @@ class Deg2Rad(UnaryScalarOp):
if gz.type in complex_types:
raise NotImplementedError()
if x.type in float_types:
return gz * numpy.pi / 180,
return gz * numpy.asarray(numpy.pi / 180, gz.type),
else:
return None,
def c_code(self, node, name, (x,), (z,), sub):
if node.inputs[0].type in complex_types:
raise NotImplementedError('type not supported', type)
return "%(z)s = %(x)s * M_PI / 180.0;" % locals()
return "%(z)s = %(x)s * (M_PI / 180.0);" % locals()
deg2rad = Deg2Rad(upgrade_to_float, name='deg2rad')
......@@ -2069,14 +2069,14 @@ class Rad2Deg(UnaryScalarOp):
if gz.type in complex_types:
raise NotImplementedError()
if x.type in float_types:
return gz * 180. / numpy.pi,
return gz * numpy.asarray(180. / numpy.pi, gz.type),
else:
return None,
def c_code(self, node, name, (x,), (z,), sub):
if node.inputs[0].type in complex_types:
raise NotImplementedError('type not supported', type)
return "%(z)s = %(x)s * 180.0 / M_PI;" % locals()
return "%(z)s = %(x)s * (180.0 / M_PI);" % locals()
rad2deg = Rad2Deg(upgrade_to_float, name='rad2deg')
......
......@@ -2580,7 +2580,7 @@ def exp2(a):
@_scal_elemwise_with_nfunc('expm1', 1, 1)
def expm1(a):
"""e^`a - 1`"""
"""e^`a` - 1"""
@_scal_elemwise_with_nfunc('negative', 1, 1)
......
......@@ -1057,29 +1057,38 @@ _good_broadcast_unary_wide = dict(
empty=(numpy.asarray([]),),)
_grad_broadcast_unary_wide = dict(normal=(rand_ranged(-1000, 1000, (2, 3)),),)
if theano.config.floatX == 'float32':
angle_eps = 1e-4
else:
angle_eps = 1e-10
Deg2RadTester = makeBroadcastTester(
op=tensor.deg2rad,
expected=numpy.deg2rad,
good=_good_broadcast_unary_normal_no_complex,
grad=_grad_broadcast_unary_normal_no_complex)
grad=_grad_broadcast_unary_normal_no_complex,
eps=angle_eps)
Deg2RadInplaceTester = makeBroadcastTester(
op=inplace.deg2rad_inplace,
expected=numpy.deg2rad,
good=_good_broadcast_unary_normal_no_complex,
grad=_grad_broadcast_unary_normal_no_complex,
inplace=True)
inplace=True,
eps=angle_eps)
Rad2DegTester = makeBroadcastTester(
op=tensor.rad2deg,
expected=numpy.rad2deg,
good=_good_broadcast_unary_normal_no_complex,
grad=_grad_broadcast_unary_normal_no_complex)
grad=_grad_broadcast_unary_normal_no_complex,
eps=angle_eps)
Rad2DegInplaceTester = makeBroadcastTester(
op=inplace.rad2deg_inplace,
expected=numpy.rad2deg,
good=_good_broadcast_unary_normal_no_complex,
grad=_grad_broadcast_unary_normal_no_complex,
inplace=True)
inplace=True,
eps=angle_eps)
SinTester = makeBroadcastTester(op=tensor.sin,
expected=numpy.sin,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论