Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

Commit

Permalink
test_error_fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Tommliu committed May 20, 2020
1 parent 9cdf2ca commit 74fd79e
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 9 deletions.
8 changes: 5 additions & 3 deletions python/mxnet/ndarray/ndarray.py
Original file line number Diff line number Diff line change
Expand Up @@ -3560,13 +3560,15 @@ def _ufunc_helper(lhs, rhs, fn_array, fn_scalar, lfn_scalar, rfn_scalar=None):
if isinstance(rhs, numeric_types):
return fn_scalar(lhs, rhs)
else:
is_int = isinstance(lhs, integer_types)
if rfn_scalar is None:
# commutative function
return lfn_scalar(rhs, float(lhs))
return lfn_scalar(rhs, scalar=float(lhs), is_int=is_int)
else:
return rfn_scalar(rhs, float(lhs))
return rfn_scalar(rhs, scalar=float(lhs), is_int=is_int)
elif isinstance(rhs, numeric_types):
return lfn_scalar(lhs, float(rhs))
is_int = isinstance(rhs, integer_types)
return lfn_scalar(lhs, scalar=float(rhs), is_int=is_int)
elif isinstance(rhs, NDArray):
return fn_array(lhs, rhs)
else:
Expand Down
3 changes: 2 additions & 1 deletion src/operator/numpy/np_true_divide-inl.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ void TrueDivideScalarCompute(const nnvm::NodeAttrs &attrs,
using namespace mxnet_op;
using namespace mshadow::expr;
Stream<xpu> *s = ctx.get_stream<xpu>();
const double alpha = nnvm::get<double>(attrs.parsed);
const NumpyBinaryScalarParam& param = nnvm::get<NumpyBinaryScalarParam>(attrs.parsed);
const double alpha = param.scalar;
const TBlob& data = inputs[0];
const TBlob& out = outputs[0];
if (out.type_flag_ == data.type_flag_) {
Expand Down
6 changes: 2 additions & 4 deletions src/operator/numpy/np_true_divide.cc
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,7 @@ NNVM_REGISTER_OP(_backward_npi_broadcast_div)
NNVM_REGISTER_OP(_npi_true_divide_scalar)
.set_num_inputs(1)
.set_num_outputs(1)
.set_attr_parser([](NodeAttrs* attrs) {
attrs->parsed = std::stod(attrs->dict["scalar"]);
})
.set_attr_parser(ParamParser<NumpyBinaryScalarParam>)
.set_attr<mxnet::FInferShape>("FInferShape", ElemwiseShape<1, 1>)
.set_attr<nnvm::FInferType>("FInferType", TrueDivideType<1>)
.set_attr<nnvm::FInplaceOption>("FInplaceOption",
Expand All @@ -121,7 +119,7 @@ NNVM_REGISTER_OP(_npi_true_divide_scalar)
.set_attr<FCompute>("FCompute<cpu>", TrueDivideScalarCompute<cpu, op::mshadow_op::true_divide>)
.set_attr<nnvm::FGradient>("FGradient", ElemwiseGradUseNone{"_backward_div_scalar"})
.add_argument("data", "NDArray-or-Symbol", "source input")
.add_argument("scalar", "float", "scalar input");
.add_arguments(NumpyBinaryScalarParam::__FIELDS__());

NNVM_REGISTER_OP(_npi_rtrue_divide_scalar)
.set_num_inputs(1)
Expand Down
2 changes: 1 addition & 1 deletion src/operator/tensor/elemwise_binary_scalar_op.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ struct NumpyBinaryScalarParam : public dmlc::Parameter<NumpyBinaryScalarParam> {
.set_default(1)
.describe("Scalar input value");
DMLC_DECLARE_FIELD(is_int)
.set_default(false)
.set_default(true)
.describe("Indicate whether scalar input is int type");
}

Expand Down

0 comments on commit 74fd79e

Please sign in to comment.