From c65bdd95656fa4abee93d02429b8694787667f0e Mon Sep 17 00:00:00 2001 From: qijun Date: Mon, 16 Oct 2017 15:49:44 -0700 Subject: [PATCH] fix SelectedRows rows() method gpu runtime error --- paddle/pybind/pybind.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/paddle/pybind/pybind.cc b/paddle/pybind/pybind.cc index 23e76011c9..f313eda964 100644 --- a/paddle/pybind/pybind.cc +++ b/paddle/pybind/pybind.cc @@ -153,7 +153,17 @@ PYBIND11_PLUGIN(core) { .def("set_height", &SelectedRows::set_height) .def("height", &SelectedRows::height) .def("set_rows", &SelectedRows::set_rows) - .def("rows", &SelectedRows::rows, py::return_value_policy::reference); + .def("rows", [](SelectedRows &self) { +#ifndef PADDLE_WITH_CUDA + return self.rows(); +#else + auto rows = self.rows(); + std::vector new_rows; + new_rows.reserve(rows.size()); + std::copy(rows.begin(), rows.end(), std::back_inserter(new_rows)); + return new_rows; +#endif + }); py::class_(m, "Variable", R"DOC(Variable Class. -- GitLab