39 lines
1.0 KiB
C++
39 lines
1.0 KiB
C++
//
|
|
// 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);
|