Skip to content

Commit 81078a8

Browse files
authored
[Eager]Fix tensor.name is empty behavior (#42587)
* [Eager]Fix tensor.name is empty behavior * fix unittest
1 parent c22c2c5 commit 81078a8

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

paddle/fluid/pybind/eager_properties.cc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ extern PyTypeObject* p_tensor_type;
3737

3838
PyObject* tensor_properties_get_name(TensorObject* self, void* closure) {
3939
EAGER_TRY
40+
// NOTE(dev): [why not use egr::Controller::Instance::GernerateUniqueName()?]
41+
// Beacause Controller must holder a tracer, but 'tensor.name' maybe called
42+
// everywhere such as static mode in @to_static, which means tracer is None.
43+
static egr::UniqueNameGenerator name_generator;
44+
if (self->tensor.name().empty()) {
45+
self->tensor.set_name(name_generator.Generate());
46+
}
4047
return ToPyObject(self->tensor.name());
4148
EAGER_CATCH_AND_THROW_RETURN_NULL
4249
}

python/paddle/fluid/tests/unittests/dygraph_to_static/test_spec_names.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
from paddle.nn import Layer
1717
import numpy as np
1818
import unittest
19-
from paddle.fluid.framework import _enable_legacy_dygraph
20-
_enable_legacy_dygraph()
2119

2220

2321
class Net(Layer):

0 commit comments

Comments
 (0)