Browse Source

fix-bug-of-null-output-addr-of-tensor-in-valuenode

tags/v1.1.0
lvliang 5 years ago
parent
commit
28e3121fbc
2 changed files with 12 additions and 2 deletions
  1. +0
    -2
      mindspore/_extends/builtin_operations.py
  2. +12
    -0
      mindspore/ccsrc/pipeline/pynative/pynative_execute.cc

+ 0
- 2
mindspore/_extends/builtin_operations.py View File

@@ -157,8 +157,6 @@ def tuple_to_array(x):


def stop_gradient(x): def stop_gradient(x):
"""Implement `stop_gradient`.""" """Implement `stop_gradient`."""
if isinstance(x, Tensor):
return Tensor(x.asnumpy())
return x return x






+ 12
- 0
mindspore/ccsrc/pipeline/pynative/pynative_execute.cc View File

@@ -314,6 +314,18 @@ py::object RunOpInVM(const OpExecInfoPtr &op_exec_info, PynativeStatusCode *stat
py::tuple err_ret(0); py::tuple err_ret(0);
return std::move(err_ret); return std::move(err_ret);
} }
if (op_exec_info->op_name == "stop_gradient" && py::isinstance<tensor::Tensor>(result)) {
py::tuple tuple_result(1);
auto tensor = py::cast<tensor::TensorPtr>(result);
MS_EXCEPTION_IF_NULL(tensor);
auto new_tensor = std::make_shared<tensor::Tensor>(tensor->data_type(), tensor->shape(), tensor->data_ptr());
new_tensor->set_device_address(tensor->device_address());
new_tensor->set_sync_status(tensor->sync_status());
tuple_result[0] = new_tensor;
*status = PYNATIVE_SUCCESS;
MS_LOG(INFO) << "RunOpInVM end";
return std::move(tuple_result);
}


// execute op // execute op
py::tuple tuple_result = py::make_tuple(result); py::tuple tuple_result = py::make_tuple(result);


Loading…
Cancel
Save