59 lines
1.3 KiB
C++
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);
|