|
- /**
- * Copyright 2019-2020 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 <math.h>
- #include <stdint.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <iostream>
- #include <vector>
-
- #include "common.h"
- #include "model.h"
-
- #define MAX_HEAD_SIZE 50
-
- using namespace std;
- using namespace ge;
-
- void update_op_format(Operator ops, Format format) {
- printf("set format begin.........\n");
- ge::TensorDesc tensor_desc_x = ops.GetInputDesc("x");
- ge::TensorDesc tensor_desc_y = ops.GetOutputDesc("y");
- Format f_x0 = tensor_desc_x.GetFormat();
- Format f_y0 = tensor_desc_x.GetFormat();
- printf("before set x format:%d \n", f_x0);
- printf("before set y format:%d \n", f_y0);
- printf("format to be set is :%d \n", format);
- tensor_desc_x.SetFormat(format);
- tensor_desc_y.SetFormat(format);
- ops.UpdateInputDesc("x", tensor_desc_x);
- ops.UpdateOutputDesc("y", tensor_desc_y);
- Format f_x = tensor_desc_x.GetFormat();
- Format f_y = tensor_desc_y.GetFormat();
- printf("after set x format:%d \n", f_x);
- printf("after set y format:%d \n", f_y);
- }
-
- /// getDimInfo: get dim info from data file
- /// param:
- /// fp: the testing datafile object
- ///
- /// return :
- /// dim_info: array to store the info of the dim in datafile, like [4,3,3,6,3,162(3*3*6*3)],4 is dim size,3,3,6,3 is the
- /// dim shape data_size: the size of the testing data including the data file
- void getDimInfo(FILE *fp, std::vector<uint64_t> &dim_info) {
- // get dim info from hisi testing data file
- uint32_t *dim_buffer = (uint32_t *)malloc(MAX_HEAD_SIZE * sizeof(uint32_t));
- fread(dim_buffer, sizeof(uint32_t), MAX_HEAD_SIZE, fp);
- dim_info.push_back(*dim_buffer); // get dim size
-
- // get data shape to compute the datasize
- uint64_t data_size = 1;
- uint32_t i = 1;
- for (; i <= dim_info[0]; i++) {
- dim_info.push_back(*(dim_buffer + i));
- data_size *= *(dim_buffer + i);
- }
- dim_info.push_back(data_size);
-
- free(dim_buffer);
- }
-
- /// readTestDataFile: read test date from hisi .t datafile
- /// param:
- /// infile: the path of hisi .t datafile
- /// return:
- /// dim_info: array to store the info of the dim in datafile, like [4,3,3,6,3],4 is dim size,3,3,6,3 is the dim shape
- void *readTestDataFile(std::string infile, std::vector<uint64_t> &dim_info) {
- FILE *fp;
- fp = fopen(infile.c_str(), "r");
-
- if (fp == NULL) {
- printf("ERROR: cant't open file %s\n", infile.c_str());
- return NULL;
- } else {
- getDimInfo(fp, dim_info);
- uint64_t data_size = dim_info[dim_info.size() - 1];
-
- fclose(fp);
-
- fp = fopen(infile.c_str(), "r");
- if (fp == NULL) {
- printf("ERROR: cant't open file %s\n", infile.c_str());
- return NULL;
- }
- uint32_t *memory = (uint32_t *)malloc((dim_info[0] + 1 + data_size) * sizeof(uint32_t));
- fread(memory, sizeof(uint32_t), (dim_info[0] + 1 + data_size), fp);
- fclose(fp);
- return memory + (dim_info[0] + 1);
- }
- }
-
- void *readUint8TestDataFile(std::string infile, int size) {
- FILE *fp;
- fp = fopen(infile.c_str(), "r");
-
- if (fp == NULL) {
- printf("ERROR: cant't open file %s\n", infile.c_str());
- return NULL;
- }
- uint8_t *memory = (uint8_t *)malloc((size) * sizeof(uint8_t));
- fread(memory, sizeof(uint8_t), (size), fp);
- fclose(fp);
- return memory;
- }
-
- /// allclose
- /// param:
- /// a:compared file a
- /// b:compared file b
- /// count: the count size which will compare
- /// rtol:
- /// atol:
- /// return:
- /// true or false
- bool allclose(float *a, float *b, uint64_t count, float rtol = 1e-05, float atol = 1e-08) {
- uint32_t i = 0;
-
- for (; i < count; ++i) {
- if (fabs(a[i] - b[i]) > (atol + rtol * fabs(b[i]))) {
- printf("compara failed: i= %d, a[i]=%f, b[i]=%f,atol=%f,rtol=%f\n", i, a[i], b[i], atol, rtol);
- return false;
- }
- }
-
- return true;
- }
-
- /// compFp32WithTData: compare the data with the data in hisi .t file
- /// param:
- /// actual_output_data: the result of ge
- /// expected_data_file: the path of hisi .t result file
- /// rtol:
- /// atol:
- /// return:
- /// true of false
- bool compFp32WithTData(float *actual_output_data, std::string expected_data_file, float rtol = 1e-05, float atol = 1e-08) {
- std::vector<uint64_t> dim_info;
- float *expected_output_data = (float *)readTestDataFile(expected_data_file, dim_info);
-
- uint32_t i = 1;
- uint64_t data_size = 1;
- for (; i <= dim_info[0]; i++) {
- data_size *= dim_info[i];
- }
- return allclose(actual_output_data, expected_output_data, data_size, rtol, atol);
- }
-
- int SwitchDatatype(DataType dt) {
- int size = 1;
- if (dt == ge::DT_FLOAT) size = 4;
- if (dt == ge::DT_INT32) size = 4;
- if (dt == ge::DT_FLOAT16) size = 2;
- if (dt == ge::DT_INT64) size = 8;
- return size;
- }
-
- ge::Tensor genTensor(std::vector<int64_t> tensor_shape, Format format, DataType dt) {
- int size = 1;
- for (int i = 0; i < tensor_shape.size(); i++) {
- size = size * tensor_shape[i];
- }
-
- int data_type_size = SwitchDatatype(dt);
-
- size = abs(size * data_type_size);
- vector<uint8_t> data_value;
-
- if (size == 0) {
- TensorDesc input_tensor_desc = TensorDesc(ge::Shape(tensor_shape), format, dt);
- input_tensor_desc.SetRealDimCnt(tensor_shape.size());
- Tensor gen_tensor = Tensor(input_tensor_desc, data_value);
- return gen_tensor;
- }
- for (int i = 0; i < size; i++) {
- data_value.push_back(1);
- }
- TensorDesc input_tensor_desc = TensorDesc(ge::Shape(tensor_shape), format, dt);
- input_tensor_desc.SetRealDimCnt(tensor_shape.size());
- Tensor gen_tensor = Tensor(input_tensor_desc, data_value);
- return gen_tensor;
- }
-
- ge::Tensor genTensor_withVaule(std::vector<int64_t> tensor_shape, float value) {
- int size = 1;
- for (int i = 0; i < tensor_shape.size(); i++) {
- size = size * tensor_shape[i];
- }
-
- float *data_value = new float[size];
- for (int i = 0; i < size; i++) {
- *(data_value + i) = value;
- }
- Tensor gen_ge_tensor;
- TensorDesc input_tensor_desc = TensorDesc(ge::Shape(tensor_shape), FORMAT_NCHW);
- gen_ge_tensor.SetTensorDesc(input_tensor_desc);
- gen_ge_tensor.SetData((uint8_t *)data_value, size * 4);
-
- return gen_ge_tensor;
- }
-
- Tensor genTesnor_Shape_as_data(std::vector<int64_t> tensor_shape) {
- Format format = FORMAT_NCHW;
- DataType dt = DT_INT32;
- int size = tensor_shape.size();
- int32_t *tensor_data = new int32_t[size];
- std::cout << "shape tensor size:" << size << endl;
- for (int i = 0; i < size; i++) {
- *(tensor_data + i) = tensor_shape[i];
- }
-
- Tensor gen_tensor;
- TensorDesc input_tensor_desc = TensorDesc(ge::Shape({size}), FORMAT_NCHW, DT_INT32);
- gen_tensor.SetData((uint8_t *)tensor_data, size * GetDatTypeSize(dt));
- gen_tensor.SetTensorDesc(input_tensor_desc);
-
- return gen_tensor;
- }
-
- /// train_flag is 0 when infer; train_flag is 1 when train; train_flag is 0 default
- /// run_mode_path is not 0,1,2 when TBE; run_mode_path is 1 when FE; run_mode_path is 0 default
- /// run_mode_path is 2 now when AICPU, ge.enabledlocalFmkop is 1
- ge::Status GEInitialize_api(string train_flag, string run_mode_path) {
- ge::Status ret;
- if (run_mode_path == "0") {
- const std::map<string, string> config = {
- {"device_id", "0,2,4,6"},
- {"rank_table_file", "hccl from csa/paas"},
- {"ge.graphRunMode", train_flag},
- {"ge.aicpuFlag", "1"},
- {"ge.feFlag", "1"},
- {DDK_VERSION_FLAG, "1.60.T17.B830"},
- {"ge.soLoadPath",
- "/usr/local/HiAI/runtime/lib64/plugin/opskernel/libfe.so:/usr/local/HiAI/runtime/lib64/plugin/opskernel/"
- "libaicpu_plugin.so"}};
- ret = ge::GEInitialize(config);
- } else if (run_mode_path == "1") {
- const std::map<string, string> config = {
- {"device_id", "0,2,4,6"},
- {"rank_table_file", "hccl from csa/paas"},
- {"ge.graphRunMode", train_flag},
- {"ge.feFlag", "1"},
- {DDK_VERSION_FLAG, "1.60.T17.B830"},
- {TBE_PLUGIN_PATH_FLAG, "/usr/local/HiAI/runtime/lib64/tbe_plugin/bert"},
- {"ge.soLoadPath", "/usr/local/HiAI/runtime/lib64/plugin/opskernel/libfe.so"}};
- ret = ge::GEInitialize(config);
- } else if (run_mode_path == "2") {
- const std::map<string, string> config = {{"device_id", "0,2,4,6"},
- {"rank_table_file", "hccl from csa/paas"},
- {"ge.graphRunMode", train_flag},
- {LOCAL_FMKOP_FLAG, "1"}};
- ret = ge::GEInitialize(config);
- } else {
- const std::map<string, string> config = {
- {"device_id", "0,2,4,6"},
- {"rank_table_file", "hccl from csa/paas"},
- {"ge.graphRunMode", train_flag},
- {DDK_VERSION_FLAG, "1.60.T17.B830"},
- {TBE_PLUGIN_PATH_FLAG, "/usr/local/HiAI/runtime/lib64/tbe_plugin/" + run_mode_path}};
- ret = ge::GEInitialize(config);
- }
- std::cout << "GEInitialize_ret is " << ret << std::endl;
-
- return ret;
- }
-
- /// train_flag is infer default
- /// run_mode: is multi group of [fe,aicpu,bert,deeplabv3,mobilenetv2,single_path_nas,ssd]
- /// but bert,deeplabv3,mobilenetv2,single_path_nas,ssd can only set one value from array
- /// eg:"fe,aicpu,bert" or "fe", default is “fe”
- /// "fe,aicpu,bert" remain open fe aicpu and bert
- ge::Status GEInitialize_api_new(string train_flag, string run_mode) {
- ge::Status ret;
- vector<string> modes;
-
- char *strs = new char[run_mode.length() + 1];
- strcpy(strs, run_mode.c_str());
- const char *delim = ",";
- char *p = strtok(strs, delim);
- while (p) {
- string s = p; // transform substr to string
- modes.push_back(s); // save to result array
- p = strtok(NULL, delim);
- }
-
- std::map<string, string> config = {
- {"device_id", "0,2,4,6"},
- {"rank_table_file", "hccl from csa/paas"},
- {DDK_VERSION_FLAG, "1.60.T17.B830"},
- {"ge.opsProtoLibPath", "/usr/local/HiAI/runtime/ops/op_proto/built-in/libopsproto.so"}};
- if (train_flag == "infer")
- config.insert(pair<string, string>("ge.graphRunMode", "0"));
- else if (train_flag == "train")
- config.insert(pair<string, string>("ge.graphRunMode", "1"));
- else
- std::cout << "GeInitialize give the error param" << std::endl;
-
- for (int i = 0; i < modes.size(); i++) {
- if (modes[i] == "fe") {
- config.insert(pair<string, string>("ge.feFlag", "1"));
- if (config.find("ge.soLoadPath") != config.end()) {
- config["ge.soLoadPath"] =
- "/usr/local/HiAI/runtime/lib64/plugin/opskernel/libfe.so:/usr/local/HiAI/runtime/lib64/plugin/opskernel/"
- "libaicpu_plugin.so:/usr/local/HiAI/runtime/lib64/plugin/opskernel/libge_local_engine.so:/usr/local/HiAI/"
- "runtime/lib64/plugin/opskernel/librts_engine.so";
- } else {
- config.insert(pair<string, string>(
- "ge.soLoadPath",
- "/usr/local/HiAI/runtime/lib64/plugin/opskernel/libfe.so:/usr/local/HiAI/runtime/lib64/plugin/opskernel/"
- "libge_local_engine.so:/usr/local/HiAI/runtime/lib64/plugin/opskernel/librts_engine.so"));
- }
- } else if (modes[i] == "aicpu") {
- config.insert(pair<string, string>("ge.aicpuFlag", "1"));
- if (config.find("ge.soLoadPath") != config.end()) {
- config["ge.soLoadPath"] =
- "/usr/local/HiAI/runtime/lib64/plugin/opskernel/libfe.so:/usr/local/HiAI/runtime/lib64/plugin/opskernel/"
- "libaicpu_plugin.so:/usr/local/HiAI/runtime/lib64/plugin/opskernel/libge_local_engine.so:/usr/local/HiAI/"
- "runtime/lib64/plugin/opskernel/librts_engine.so";
- } else {
- config.insert(pair<string, string>(
- "ge.soLoadPath",
- "/usr/local/HiAI/runtime/lib64/plugin/opskernel/libaicpu_plugin.so:/usr/local/HiAI/runtime/lib64/plugin/"
- "opskernel/libge_local_engine.so:/usr/local/HiAI/runtime/lib64/plugin/opskernel/librts_engine.so"));
- }
- } else if (modes[i] == "bert" || modes[i] == "deeplabv3" || modes[i] == "mobilenetv2" ||
- modes[i] == "single_path_nas" || modes[i] == "ssd") {
- config.insert(pair<string, string>(TBE_PLUGIN_PATH_FLAG, "/usr/local/HiAI/runtime/lib64/tbe_plugin/" + modes[i]));
- } else if (modes[i] == "plugin") {
-
- } else
- std::cout << "GeInitialize give the error param" << std::endl;
- }
- ret = ge::GEInitialize(config);
-
- std::cout << "GEInitialize_ret is " << ret << std::endl;
-
- return ret;
- }
-
- ge::Status GEFinalize_api() {
- ge::Status ret = ge::GEFinalize();
- std::cout << "GEFinalize ret is " << ret << std::endl;
-
- return ret;
- }
-
- /// set train_flag
- /// if run_mode_path is "fe" remain FE process; "fe,plugin" is FE and TBE plugin process
- /// "aicpu" is open aicpu plugin
- int RunGraph_initData(Graph &graph, string op_name, map<string, std::vector<int64_t>> attr_test, string train_flag,
- string run_mode_path) {
- std::map<string, string> options = {{RUN_FLAG, "1"}};
- uint32_t graph_id = 0;
-
- ge::Status ret = GEInitialize_api_new(train_flag, run_mode_path);
- EXPECT_EQ(ret, ge::SUCCESS);
-
- ge::Session *session = new Session(options);
- ASSERT_TRUE(session != NULL);
-
- std::vector<Tensor> input;
- if (attr_test.find("input1") != attr_test.end()) {
- Tensor input_tensor = genTensor(attr_test["input1"]);
- input.push_back(input_tensor);
- }
- if (attr_test.find("input2") != attr_test.end()) {
- Tensor input_tensor = genTensor(attr_test["input2"]);
- input.push_back(input_tensor);
- }
- if (attr_test.find("input3") != attr_test.end()) {
- Tensor input_tensor = genTensor(attr_test["input3"]);
- input.push_back(input_tensor);
- }
- std::vector<Tensor> output;
-
- ret = session->AddGraph(graph_id, graph);
- EXPECT_EQ(ret, ge::SUCCESS);
- if (train_flag == "1") {
- setenv("GE_TRAIN", "1", true);
- ret = session->RunGraph(graph_id, input, output);
- setenv("GE_TRAIN", "0", true);
- } else {
- ret = session->RunGraph(graph_id, input, output);
- }
- delete session;
- GEFinalize_api();
-
- if (ret != ge::SUCCESS) {
- std::cout << " run graph failed" << std::endl;
- return -1;
- } else {
- return 0;
- }
- }
-
- ge::Status session_add_and_run_graph(ge::Session *session, uint32_t graph_id, Graph &graph, std::vector<Tensor> inputs,
- std::vector<Tensor> &outputs) {
- ge::Status ret = session->AddGraph(graph_id, graph);
- EXPECT_EQ(ret, ge::SUCCESS);
- ret = session->RunGraph(graph_id, inputs, outputs);
-
- return ret;
- }
-
- ge::Session *create_session() {
- // Init session
- std::map<string, string> options = {{"a", "b"}, {TRAIN_FLAG, "1"}};
- ge::Session *session = new Session(options);
- ASSERT_TRUE(session != NULL);
-
- return session;
- }
-
- ge::Session *create_aipp_session() {
- // Init session
- std::map<string, string> options = {{"a", "b"}, {TRAIN_FLAG, "1"}, {"ge.insertOpFile", "/root/host/ge/aipp.cfg"}};
- ge::Session *session = new Session(options);
- ASSERT_TRUE(session != NULL);
-
- return session;
- }
-
- int buildCheckPointGraph(Graph &graph, map<string, TensorDesc> variables) {
- std::vector<Operator> inputs{};
- std::vector<Operator> outputs{};
-
- for (map<string, TensorDesc>::iterator it = variables.begin(); it != variables.end(); ++it) {
- auto var = op::Variable(string(it->first));
- var.update_output_desc_y(it->second);
- inputs.push_back(var);
- graph.AddOp(var);
- }
-
- auto save = op::Save().create_dynamic_input_tensors(inputs.size());
- for (int i = 0; i < inputs.size(); i++) {
- save.set_dynamic_input_tensors(i, inputs[i]);
- }
-
- graph.SetInputs(inputs).SetOutputs(outputs);
- return 0;
- }
-
- int buildInitGraph(Graph &graph, std::vector<TensorDesc> desc_var, std::vector<std::string> name_var,
- std::vector<float> values_var) {
- std::vector<Operator> inputs{};
- std::vector<Operator> outputs{};
-
- for (int i = 0; i < desc_var.size(); i++) {
- desc_var[i].SetRealDimCnt(desc_var[i].GetShape().GetDimNum());
- auto tensor_data = genTensor_withVaule(desc_var[i].GetShape().GetDims(), values_var[i]);
- auto var_constant = op::Constant().set_attr_value(tensor_data);
- var_constant.update_output_desc_y(desc_var[i]);
-
- auto var_init = op::Variable(string(name_var[i]));
- var_init.update_output_desc_y(desc_var[i]);
- auto var_assign = op::Assign().set_input_ref(var_init).set_input_value(var_constant);
- inputs.push_back(var_init);
- }
- graph.SetInputs(inputs).SetOutputs(outputs);
- return 0;
- }
-
- int buildInitGraph_other_dataType(Graph &graph, std::vector<TensorDesc> desc_var, std::vector<std::string> name_var) {
- std::vector<Operator> inputs{};
- std::vector<Operator> outputs{};
-
- for (int i = 0; i < desc_var.size(); i++) {
- desc_var[i].SetRealDimCnt(desc_var[i].GetShape().GetDimNum());
- auto tensor_data = genTensor(desc_var[i].GetShape().GetDims(), desc_var[i].GetFormat(), desc_var[i].GetDataType());
- auto var_constant = op::Constant().set_attr_value(tensor_data);
- var_constant.update_output_desc_y(desc_var[i]);
-
- auto var_init = op::Variable(string(name_var[i]));
- var_init.update_output_desc_y(desc_var[i]);
- auto var_assign = op::Assign().set_input_ref(var_init).set_input_value(var_constant);
- inputs.push_back(var_init);
-
- graph.AddOp(var_constant);
- graph.AddOp(var_init);
- graph.AddOp(var_assign);
- }
- graph.SetInputs(inputs).SetOutputs(outputs);
- return 0;
- }
-
- bool build_multi_input_multi_output_graph(Graph &graph) {
- auto data1 = op::Data("Data1").set_attr_index(0);
- auto data2 = op::Data("Data2").set_attr_index(1);
-
- vector<uint64_t> dim_info;
-
- auto relu1 = op::Relu("Relu1").set_input_x(data1);
- auto relu2 = op::Relu("Relu2").set_input_x(data2);
-
- auto eltwise = op::Eltwise("Eltwise")
- .create_dynamic_input_x(2)
- .set_dynamic_input_x(0, relu1)
- .set_dynamic_input_x(1, relu2)
- .set_attr_N(2)
- .set_attr_mode(1)
- .set_attr_coeff({1, 1});
-
- auto eltwise1 = op::Eltwise("Eltwise1")
- .create_dynamic_input_x(2)
- .set_dynamic_input_x(0, eltwise)
- .set_dynamic_input_x(1, eltwise)
- .set_attr_N(2)
- .set_attr_mode(1)
- .set_attr_coeff({1, 1});
-
- auto eltwise2 = op::Eltwise("Eltwise2")
- .create_dynamic_input_x(2)
- .set_dynamic_input_x(0, eltwise)
- .set_dynamic_input_x(1, eltwise)
- .set_attr_N(2)
- .set_attr_mode(1)
- .set_attr_coeff({1, 1});
-
- std::vector<Operator> inputs{data1, data2};
- std::vector<Operator> outputs{eltwise1, eltwise2};
- graph.SetInputs(inputs).SetOutputs(outputs);
- return true;
- }
-
- void build_big_graph(Graph &graph, map<string, std::vector<int64_t>> attr) {
- auto data = op::Data("Data").set_attr_index(0);
- auto weight = op::Const("weight1").set_attr_value(genTensor(attr["weight"]));
- vector<int64_t> weight_shape(attr["weight"].begin(), attr["weight"].end());
- TensorDesc weight_desc(ge::Shape(weight_shape), FORMAT_NCHW, DT_FLOAT);
- weight.update_output_desc_y(weight_desc);
- auto conv_1 = op::Conv2D("conv1").set_input_x(data).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
-
- auto conv_2 = op::Conv2D("conv2").set_input_x(conv_1).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_3 = op::Conv2D("conv3").set_input_x(conv_2).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_4 = op::Conv2D("conv4").set_input_x(conv_3).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_5 = op::Conv2D("conv5").set_input_x(conv_4).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_6 = op::Conv2D("conv6").set_input_x(conv_5).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_7 = op::Conv2D("conv7").set_input_x(conv_6).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_8 = op::Conv2D("conv8").set_input_x(conv_7).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_9 = op::Conv2D("conv9").set_input_x(conv_8).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_10 = op::Conv2D("conv10").set_input_x(conv_9).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_11 = op::Conv2D("conv11").set_input_x(conv_10).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_12 = op::Conv2D("conv12").set_input_x(conv_11).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_13 = op::Conv2D("conv13").set_input_x(conv_12).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_14 = op::Conv2D("conv14").set_input_x(conv_13).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_15 = op::Conv2D("conv15").set_input_x(conv_14).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_16 = op::Conv2D("conv16").set_input_x(conv_15).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_17 = op::Conv2D("conv17").set_input_x(conv_16).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_18 = op::Conv2D("conv18").set_input_x(conv_17).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_19 = op::Conv2D("conv19").set_input_x(conv_18).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_20 = op::Conv2D("conv20").set_input_x(conv_19).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_21 = op::Conv2D("conv21").set_input_x(conv_20).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_22 = op::Conv2D("conv22").set_input_x(conv_21).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_23 = op::Conv2D("conv23").set_input_x(conv_22).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_24 = op::Conv2D("conv24").set_input_x(conv_23).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_25 = op::Conv2D("conv25").set_input_x(conv_24).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_26 = op::Conv2D("conv26").set_input_x(conv_25).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_27 = op::Conv2D("conv27").set_input_x(conv_26).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_28 = op::Conv2D("conv28").set_input_x(conv_27).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_29 = op::Conv2D("conv29").set_input_x(conv_28).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_30 = op::Conv2D("conv30").set_input_x(conv_29).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_31 = op::Conv2D("conv31").set_input_x(conv_30).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_32 = op::Conv2D("conv32").set_input_x(conv_31).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_33 = op::Conv2D("conv33").set_input_x(conv_32).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_34 = op::Conv2D("conv34").set_input_x(conv_33).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_35 = op::Conv2D("conv35").set_input_x(conv_34).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_36 = op::Conv2D("conv36").set_input_x(conv_35).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_37 = op::Conv2D("conv37").set_input_x(conv_36).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_38 = op::Conv2D("conv38").set_input_x(conv_37).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_39 = op::Conv2D("conv39").set_input_x(conv_38).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_40 = op::Conv2D("conv40").set_input_x(conv_39).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_41 = op::Conv2D("conv41").set_input_x(conv_40).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_42 = op::Conv2D("conv42").set_input_x(conv_41).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_43 = op::Conv2D("conv43").set_input_x(conv_42).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_44 = op::Conv2D("conv44").set_input_x(conv_43).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_45 = op::Conv2D("conv45").set_input_x(conv_44).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_46 = op::Conv2D("conv46").set_input_x(conv_45).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_47 = op::Conv2D("conv47").set_input_x(conv_46).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_48 = op::Conv2D("conv48").set_input_x(conv_47).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_49 = op::Conv2D("conv49").set_input_x(conv_48).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_50 = op::Conv2D("conv50").set_input_x(conv_49).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_51 = op::Conv2D("conv51").set_input_x(conv_50).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_52 = op::Conv2D("conv52").set_input_x(conv_51).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_53 = op::Conv2D("conv53").set_input_x(conv_52).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_54 = op::Conv2D("conv54").set_input_x(conv_53).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_55 = op::Conv2D("conv55").set_input_x(conv_54).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_56 = op::Conv2D("conv56").set_input_x(conv_55).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_57 = op::Conv2D("conv57").set_input_x(conv_56).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_58 = op::Conv2D("conv58").set_input_x(conv_57).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_59 = op::Conv2D("conv59").set_input_x(conv_58).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_60 = op::Conv2D("conv60").set_input_x(conv_59).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_61 = op::Conv2D("conv61").set_input_x(conv_60).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_62 = op::Conv2D("conv62").set_input_x(conv_61).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_63 = op::Conv2D("conv63").set_input_x(conv_62).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_64 = op::Conv2D("conv64").set_input_x(conv_63).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_65 = op::Conv2D("conv65").set_input_x(conv_64).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_66 = op::Conv2D("conv66").set_input_x(conv_65).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_67 = op::Conv2D("conv67").set_input_x(conv_66).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_68 = op::Conv2D("conv68").set_input_x(conv_67).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_69 = op::Conv2D("conv69").set_input_x(conv_68).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_70 = op::Conv2D("conv70").set_input_x(conv_69).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_71 = op::Conv2D("conv71").set_input_x(conv_70).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_72 = op::Conv2D("conv72").set_input_x(conv_71).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_73 = op::Conv2D("conv73").set_input_x(conv_72).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_74 = op::Conv2D("conv74").set_input_x(conv_73).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_75 = op::Conv2D("conv75").set_input_x(conv_74).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_76 = op::Conv2D("conv76").set_input_x(conv_75).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_77 = op::Conv2D("conv77").set_input_x(conv_76).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_78 = op::Conv2D("conv78").set_input_x(conv_77).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_79 = op::Conv2D("conv79").set_input_x(conv_78).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_80 = op::Conv2D("conv80").set_input_x(conv_79).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_81 = op::Conv2D("conv81").set_input_x(conv_80).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_82 = op::Conv2D("conv82").set_input_x(conv_81).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_83 = op::Conv2D("conv83").set_input_x(conv_82).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_84 = op::Conv2D("conv84").set_input_x(conv_83).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_85 = op::Conv2D("conv85").set_input_x(conv_84).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_86 = op::Conv2D("conv86").set_input_x(conv_85).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_87 = op::Conv2D("conv87").set_input_x(conv_86).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_88 = op::Conv2D("conv88").set_input_x(conv_87).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_89 = op::Conv2D("conv89").set_input_x(conv_88).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_90 = op::Conv2D("conv90").set_input_x(conv_89).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_91 = op::Conv2D("conv91").set_input_x(conv_80).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_92 = op::Conv2D("conv92").set_input_x(conv_91).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_93 = op::Conv2D("conv93").set_input_x(conv_92).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_94 = op::Conv2D("conv94").set_input_x(conv_93).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_95 = op::Conv2D("conv95").set_input_x(conv_94).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_96 = op::Conv2D("conv96").set_input_x(conv_95).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_97 = op::Conv2D("conv97").set_input_x(conv_96).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_98 = op::Conv2D("conv98").set_input_x(conv_97).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_99 = op::Conv2D("conv99").set_input_x(conv_98).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_100 = op::Conv2D("conv100").set_input_x(conv_99).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_101 = op::Conv2D("conv101").set_input_x(conv_100).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_102 = op::Conv2D("conv102").set_input_x(conv_101).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_103 = op::Conv2D("conv103").set_input_x(conv_102).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_104 = op::Conv2D("conv104").set_input_x(conv_103).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_105 = op::Conv2D("conv105").set_input_x(conv_104).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_106 = op::Conv2D("conv106").set_input_x(conv_105).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_107 = op::Conv2D("conv107").set_input_x(conv_106).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_108 = op::Conv2D("conv108").set_input_x(conv_107).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_109 = op::Conv2D("conv109").set_input_x(conv_108).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_110 = op::Conv2D("conv110").set_input_x(conv_109).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_111 = op::Conv2D("conv111").set_input_x(conv_110).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_112 = op::Conv2D("conv112").set_input_x(conv_111).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_113 = op::Conv2D("conv113").set_input_x(conv_112).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_114 = op::Conv2D("conv114").set_input_x(conv_113).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_115 = op::Conv2D("conv115").set_input_x(conv_114).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_116 = op::Conv2D("conv116").set_input_x(conv_115).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_117 = op::Conv2D("conv117").set_input_x(conv_116).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_118 = op::Conv2D("conv118").set_input_x(conv_117).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_119 = op::Conv2D("conv119").set_input_x(conv_118).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_120 = op::Conv2D("conv120").set_input_x(conv_119).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_121 = op::Conv2D("conv121").set_input_x(conv_120).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_122 = op::Conv2D("conv122").set_input_x(conv_121).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_123 = op::Conv2D("conv123").set_input_x(conv_122).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_124 = op::Conv2D("conv124").set_input_x(conv_123).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_125 = op::Conv2D("conv125").set_input_x(conv_124).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_126 = op::Conv2D("conv126").set_input_x(conv_125).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_127 = op::Conv2D("conv127").set_input_x(conv_126).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_128 = op::Conv2D("conv128").set_input_x(conv_127).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_129 = op::Conv2D("conv129").set_input_x(conv_128).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
- auto conv_130 = op::Conv2D("conv130").set_input_x(conv_129).set_input_filter(weight).set_attr_pads({0,0,0,0}).set_attr_strides({1,1,1,1});
-
- std::vector<Operator> inputs{data};
- std::vector<Operator> outputs{conv_130};
- graph.SetInputs(inputs).SetOutputs(outputs);
- }
-
- int GetDatTypeSize(DataType dt) {
- int dailation = 1;
- if (dt == ge::DT_FLOAT)
- dailation = 4;
- else if (dt == ge::DT_FLOAT16)
- dailation = 2;
- else if (dt == ge::DT_INT16)
- dailation = 2;
- else if (dt == ge::DT_UINT16)
- dailation = 2;
- else if (dt == ge::DT_INT32)
- dailation = 4;
- else if (dt == ge::DT_UINT32)
- dailation = 4;
- else if (dt == ge::DT_INT64)
- dailation = 8;
- else if (dt == ge::DT_UINT64)
- dailation = 8;
- else if (dt == ge::DT_INT8)
- dailation = 1;
-
- return dailation;
- }
-
- int buildConvGraph_new(Graph &graph, std::vector<TensorDesc> desc_var, std::vector<std::string> name_var, int flag,
- Format format) {
- auto data_x_shape = op::Data("xShape").set_attr_index(0);
- auto var = op::Variable(name_var[0]);
- auto var1 = op::Variable(name_var[1]); //add one seat of ApplyMomentum()
- auto label1 = op::Variable(name_var[2]); //add one seat of ApplyMomentum()
- auto conv2dgrad = op::Conv2DBackpropFilterD("output_1");
- auto test2 = op::ApplyMomentum();
-
- var.update_output_desc_y(desc_var[0]);
- var1.update_output_desc_y(desc_var[1]);
- label1.update_output_desc_y(desc_var[2]);
-
- graph.AddOp(var);
- graph.AddOp(var1);
- graph.AddOp(label1);
-
- auto conv2d = op::Conv2D().set_input_x(data_x_shape).set_input_filter(var).set_attr_strides({1, 1, 1, 1}).set_attr_pads({0,0,0,0});
- update_op_format(conv2d, format);
- ge::TensorDesc tensor_desc_w = conv2d.GetInputDesc("filter");
- tensor_desc_w.SetFormat(format);
- conv2d.UpdateInputDesc("filter", tensor_desc_w);
-
- if (flag >= 1) {
- conv2dgrad.set_input_x(data_x_shape)
- .set_attr_filter_size(desc_var[0].GetShape().GetDims())
- .set_input_out_backprop(conv2d)
- .set_attr_strides({1, 1, 1, 1})
- .set_attr_pads({0, 0, 0, 0});
- update_op_format(conv2dgrad, format);
- graph.AddOp(conv2dgrad);
- }
- if (flag >= 2) {
- // set conv2dgrad var
- test2.set_input_accum(var1)
- .set_input_grad(conv2dgrad)
- .set_input_lr(label1)
- .set_input_momentum(label1)
- .set_input_var(var);
- graph.AddOp(test2);
- }
-
- std::vector<Operator> inputs{data_x_shape}; // set all val
- std::vector<Operator> outputs{conv2d};
- graph.SetInputs(inputs).SetOutputs(outputs);
- graph.AddOp(conv2d);
-
- return 0;
- }
-
- /// load bin data_fail
- /// input_path: path of bin data_file
- /// shapes: the shape of Tensor
- /// ft: the format of Tensor
- /// dt: the dataType of Tensor
- Tensor load_variable_input_data(string input_path, std::vector<int64_t> shapes, Format ft, DataType dt) {
- vector<uint64_t> dim_info1;
-
- uint8_t *input_data = (uint8_t *)readTestDataFile(input_path, dim_info1); // common.h
- TensorDesc input_tensor_desc = TensorDesc(ge::Shape(shapes), ft, dt);
- input_tensor_desc.SetRealDimCnt(shapes.size());
- Tensor input_tensor = Tensor(input_tensor_desc, input_data, GetDatTypeSize(dt) * dim_info1[dim_info1[0] + 1]);
- return input_tensor;
- }
|