diff --git a/mindspore/lite/tools/converter/graphdef_transform.cc b/mindspore/lite/tools/converter/graphdef_transform.cc index 36e46fdfa5..6f682e2b89 100644 --- a/mindspore/lite/tools/converter/graphdef_transform.cc +++ b/mindspore/lite/tools/converter/graphdef_transform.cc @@ -15,7 +15,6 @@ */ #include "tools/converter/graphdef_transform.h" -#include #include #include "schema/model_generated.h" #include "src/common/log_adapter.h" @@ -35,6 +34,7 @@ #include "tools/converter/legacy_optimizer/graph/topological_sort_pass.h" #include "tools/converter/legacy_optimizer/graph/tensor_quant_pass.h" #include "tools/converter/legacy_optimizer/graph/infer_quant_param_pass.h" +#include "tools/converter/legacy_optimizer/graph/set_unused_quant_param_to_default_pass.h" using std::string; namespace mindspore::lite { @@ -154,6 +154,7 @@ int GraphDefTransform::Transform(const converter::Flags &ctx) { quantNodeOptimizer.AddPass(dTypeTransPass); quantNodeOptimizer.AddPass(new (std::nothrow) QuantCastFusionPass()); quantNodeOptimizer.AddPass(new (std::nothrow) IsolatedNodeRemovePass()); + quantNodeOptimizer.AddPass(new (std::nothrow) SetUnusedQuantParamToDefaultPass()); status = quantNodeOptimizer.Run(graphDefT); if (status != RET_OK && status != RET_NO_CHANGE) { MS_LOG(ERROR) << "Run quantNodeOptimizer graphPasses Failed"; diff --git a/mindspore/lite/tools/converter/legacy_optimizer/graph/CMakeLists.txt b/mindspore/lite/tools/converter/legacy_optimizer/graph/CMakeLists.txt index 38aa6a9fca..58b2ea6ee2 100755 --- a/mindspore/lite/tools/converter/legacy_optimizer/graph/CMakeLists.txt +++ b/mindspore/lite/tools/converter/legacy_optimizer/graph/CMakeLists.txt @@ -12,6 +12,7 @@ file(GLOB GRAPH_PASS ${CMAKE_CURRENT_SOURCE_DIR}/infershape_pass.cc ${CMAKE_CURRENT_SOURCE_DIR}/tensor_quant_pass.cc ${CMAKE_CURRENT_SOURCE_DIR}/infer_quant_param_pass.cc + ${CMAKE_CURRENT_SOURCE_DIR}/set_unused_quant_param_to_default_pass.cc ) set_property(SOURCE ${GRAPH_PASS} PROPERTY COMPILE_DEFINITIONS SUBMODULE_ID=mindspore::SubModuleId::SM_LITE) add_library(graph_pass_mid OBJECT ${GRAPH_PASS}) diff --git a/mindspore/lite/tools/converter/legacy_optimizer/graph/set_unused_quant_param_to_default_pass.cc b/mindspore/lite/tools/converter/legacy_optimizer/graph/set_unused_quant_param_to_default_pass.cc new file mode 100644 index 0000000000..8d578b3d4b --- /dev/null +++ b/mindspore/lite/tools/converter/legacy_optimizer/graph/set_unused_quant_param_to_default_pass.cc @@ -0,0 +1,34 @@ +/** + * Copyright 2019 Huawei Technologies Co., Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "tools/converter/legacy_optimizer/graph/set_unused_quant_param_to_default_pass.h" +#include "tools/converter/converter_context.h" +#include "tools/common/tensor_util.h" + +namespace mindspore::lite { +STATUS SetUnusedQuantParamToDefaultPass::Run(schema::MetaGraphT *graph) { + for (auto &tensor : graph->allTensors) { + for (auto &quant_param : tensor->quantParams) { + quant_param->min = 0; + quant_param->max = 0; + quant_param->narrowRange = true; + quant_param->numBits = 8; + quant_param->dstDtype = TypeId::kNumberTypeFloat32; + } + } + return RET_OK; +} + +} // namespace mindspore::lite diff --git a/mindspore/lite/tools/converter/legacy_optimizer/graph/set_unused_quant_param_to_default_pass.h b/mindspore/lite/tools/converter/legacy_optimizer/graph/set_unused_quant_param_to_default_pass.h new file mode 100644 index 0000000000..4cf95a255d --- /dev/null +++ b/mindspore/lite/tools/converter/legacy_optimizer/graph/set_unused_quant_param_to_default_pass.h @@ -0,0 +1,34 @@ +/** + * Copyright 2019 Huawei Technologies Co., Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef LITE_UNUSED_QUANT_PARAM_DATA_REMOVE_PASS_H +#define LITE_UNUSED_QUANT_PARAM_DATA_REMOVE_PASS_H +#include +#include "tools/converter/optimizer.h" +#include "tools/common/graph_util.h" +namespace mindspore { +namespace lite { +class SetUnusedQuantParamToDefaultPass : public GraphPass { + public: + SetUnusedQuantParamToDefaultPass() {} + + ~SetUnusedQuantParamToDefaultPass() override = default; + + STATUS Run(schema::MetaGraphT *graph) override; +}; +} // namespace lite +} // namespace mindspore + +#endif // LITE_UNUSED_QUANT_PARAM_DATA_REMOVE_PASS_H