!11678 Reactor pynative

From: @zjun3021
Reviewed-by: 
Signed-off-by:
pull/11678/MERGE
mindspore-ci-bot 4 years ago committed by Gitee
commit be17d5c54c

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -367,8 +367,11 @@ class _PynativeExecutor:
def grad(self, grad, obj, weights, *args, **kwargs):
self._executor.grad_net(grad, obj, weights, *args, *(kwargs.values()))
def clear(self, cell_id=""):
self._executor.clear(cell_id)
def del_cell(self, cell_id=""):
self._executor.clear_cell(cell_id)
def clear_grad(self, obj, *args, **kwargs):
self._executor.clear_grad(obj, *args, *(kwargs.values()))
def sync(self):
self._executor.sync()

@ -267,7 +267,7 @@ class Cell(Cell_):
def __del__(self):
if context.get_context is not None and context.get_context("mode") == context.PYNATIVE_MODE:
_pynative_exec.clear(str(id(self)))
_pynative_exec.del_cell(str(id(self)))
if hasattr(self, "_create_time"):
_executor.del_net_res(str(self._create_time))

@ -370,7 +370,7 @@ class GradOperation(GradOperation_):
self._pynative_forward_run(args, kwargs, fn)
_pynative_exec.grad(grad_, fn, weights, *args, **kwargs)
out = _pynative_exec(fn, *args, **kwargs)
_pynative_exec.clear()
_pynative_exec.clear_grad(fn, *args, **kwargs)
return out
self.grad_fn = after_grad
self.fn = fn

@ -65,7 +65,7 @@ OpExecInfoPtr ConstructOpExecInfo() {
py::none py_none;
py::args args = py::make_tuple(conv_obj, op_name, op_inputs);
py::list args_input = args[PY_INPUTS];
return PynativeExecutor::GetInstance()->GenerateOpExecInfo(args);
return PynativeExecutor::GetInstance()->forward_executor()->GenerateOpExecInfo(args);
}
TEST_F(TestPynativeExecute, TestCreateContext) {

Loading…
Cancel
Save