| 580 | /* ================= CheckNonFinite ================= */ |
| 581 | MGB_DYN_TYPE_OBJ_FINAL_IMPL(CheckNonFinite); |
| 582 | CheckNonFinite::CheckNonFinite( |
| 583 | const VarNodeArrayView& inp, const Param& param, |
| 584 | const OperatorNodeConfig& config) |
| 585 | : Super(OperatorNodeBaseCtorParam{ |
| 586 | inp[0]->owner_graph(), config, "check_non_finite", inp}), |
| 587 | m_scale(param.scale) { |
| 588 | mgb_assert(!inp.empty()); |
| 589 | |
| 590 | for (auto&& i : inp) { |
| 591 | add_input({i}); |
| 592 | add_output(None) |
| 593 | ->dtype(dtype::Float32()) |
| 594 | .add_flag(VarNode::Flag::ALLOW_EMPTY_SHAPE); |
| 595 | } |
| 596 | add_output(None)->dtype(dtype::Int32()).add_flag(VarNode::Flag::ALLOW_EMPTY_SHAPE); |
| 597 | cg::add_workspace_output(this); |
| 598 | } |
| 599 | |
| 600 | SymbolVarArray CheckNonFinite::make( |
| 601 | const VarNodeArrayView& inp, const Param& param, |