// // CastTf.cpp // MNNConverter // // Created by MNN on 2019/01/31. // Copyright © 2018, Alibaba Group Holding Limited // #include "TfUtils.hpp" #include "tfOpConverter.hpp" DECLARE_OP_CONVERTER(CastTf); MNN::OpType CastTf::opType() { return MNN::OpType_Cast; } MNN::OpParameter CastTf::type() { return MNN::OpParameter_CastParam; } void CastTf::run(MNN::OpT *dstOp, TmpNode *srcNode) { auto parameter = new MNN::CastParamT; tensorflow::AttrValue value; parameter->dstT = MNN::DataType_DT_INVALID; parameter->srcT = MNN::DataType_DT_INVALID; if (find_attr_value(srcNode->tfNode, "DstT", value)) { parameter->dstT = (MNN::DataType)value.type(); } if (find_attr_value(srcNode->tfNode, "SrcT", value)) { parameter->srcT = (MNN::DataType)value.type(); } DCHECK(parameter->srcT != MNN::DataType_DT_INVALID && parameter->dstT != MNN::DataType_DT_INVALID) << "Cast Parameter ERROR!!! ===> " << srcNode->opName; dstOp->main.value = parameter; } REGISTER_CONVERTER(CastTf, Cast);