|
|
@@ -17,6 +17,7 @@ |
|
|
#ifndef MINDSPORE_CCSRC_OPTIMIZER_IRPASS_SPECIAL_OP_ELIMINATE_H_ |
|
|
#ifndef MINDSPORE_CCSRC_OPTIMIZER_IRPASS_SPECIAL_OP_ELIMINATE_H_ |
|
|
#define MINDSPORE_CCSRC_OPTIMIZER_IRPASS_SPECIAL_OP_ELIMINATE_H_ |
|
|
#define MINDSPORE_CCSRC_OPTIMIZER_IRPASS_SPECIAL_OP_ELIMINATE_H_ |
|
|
|
|
|
|
|
|
|
|
|
#include <securec.h> |
|
|
#include <vector> |
|
|
#include <vector> |
|
|
#include <memory> |
|
|
#include <memory> |
|
|
#include <algorithm> |
|
|
#include <algorithm> |
|
|
@@ -30,7 +31,6 @@ |
|
|
namespace mindspore { |
|
|
namespace mindspore { |
|
|
namespace opt { |
|
|
namespace opt { |
|
|
namespace irpass { |
|
|
namespace irpass { |
|
|
|
|
|
|
|
|
class SpecialOpEliminater { |
|
|
class SpecialOpEliminater { |
|
|
public: |
|
|
public: |
|
|
SpecialOpEliminater() |
|
|
SpecialOpEliminater() |
|
|
@@ -172,7 +172,7 @@ class ZeroLikeFillZero : public AnfVisitor { |
|
|
tensor::TensorPtr new_tensor_ptr = std::make_shared<tensor::Tensor>(tensor_type_ptr->type_id(), tensor_shape); |
|
|
tensor::TensorPtr new_tensor_ptr = std::make_shared<tensor::Tensor>(tensor_type_ptr->type_id(), tensor_shape); |
|
|
size_t mem_size = GetTypeByte(tensor_type_ptr) * IntToSize(new_tensor_ptr->ElementsNum()); |
|
|
size_t mem_size = GetTypeByte(tensor_type_ptr) * IntToSize(new_tensor_ptr->ElementsNum()); |
|
|
char *data = reinterpret_cast<char *>(new_tensor_ptr->data_c(true)); |
|
|
char *data = reinterpret_cast<char *>(new_tensor_ptr->data_c(true)); |
|
|
std::memset(data, 0, mem_size); |
|
|
|
|
|
|
|
|
(void)memset_s(data, mem_size, 0, mem_size); |
|
|
|
|
|
|
|
|
auto new_cnode = NewValueNode(new_tensor_ptr); |
|
|
auto new_cnode = NewValueNode(new_tensor_ptr); |
|
|
new_cnode->set_abstract(new_tensor_ptr->ToAbstract()); |
|
|
new_cnode->set_abstract(new_tensor_ptr->ToAbstract()); |
|
|
|