Files
alibaba--mnn/tools/converter/source/tensorflow/MatMulTf.cpp
T
2026-07-13 13:33:03 +08:00

59 lines
1.3 KiB
C++

//
// MatMulTf.cpp
// MNNConverter
//
// Created by MNN on 2019/01/31.
// Copyright © 2018, Alibaba Group Holding Limited
//
#include "TfUtils.hpp"
#include "tfOpConverter.hpp"
#include "graph.pb.h"
DECLARE_OP_CONVERTER(MatMulTf);
MNN::OpType MatMulTf::opType() {
return MNN::OpType_MatMul;
}
MNN::OpParameter MatMulTf::type() {
return MNN::OpParameter_MatMul;
}
void MatMulTf::run(MNN::OpT *dstOp, TmpNode *srcNode) {
auto matmulParam = new MNN::MatMulT;
tensorflow::AttrValue value;
if (find_attr_value(srcNode->tfNode, "T", value)) {
matmulParam->T = (MNN::DataType)value.type();
}
if (find_attr_value(srcNode->tfNode, "transpose_a", value)) {
matmulParam->transposeA = value.b();
}
if (find_attr_value(srcNode->tfNode, "transpose_b", value)) {
matmulParam->transposeB = value.b();
}
dstOp->main.value = matmulParam;
}
REGISTER_CONVERTER(MatMulTf, MatMul);
DECLARE_OP_CONVERTER(MatBandPartTf);
MNN::OpType MatBandPartTf::opType() {
return MNN::OpType_MatrixBandPart;
}
MNN::OpParameter MatBandPartTf::type() {
return MNN::OpParameter_NONE;
}
void MatBandPartTf::run(MNN::OpT *dstOp, TmpNode *srcNode) {
//Do nothing
}
REGISTER_CONVERTER(MatBandPartTf, MatrixBandPart);
REGISTER_CONVERTER(MatBandPartTf, BatchMatrixBandPart);