|
|
@ -80,7 +80,9 @@ static DDim GetDims(const Scope& scope, const std::string& name) {
|
|
|
|
Variable* var = scope.FindVar(name);
|
|
|
|
Variable* var = scope.FindVar(name);
|
|
|
|
if (var == nullptr) {
|
|
|
|
if (var == nullptr) {
|
|
|
|
return DDim({-1});
|
|
|
|
return DDim({-1});
|
|
|
|
} else if (var->IsType<LoDTensor>()) {
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (var->IsType<LoDTensor>()) {
|
|
|
|
return var->Get<LoDTensor>().dims();
|
|
|
|
return var->Get<LoDTensor>().dims();
|
|
|
|
} else if (var->IsType<SelectedRows>()) {
|
|
|
|
} else if (var->IsType<SelectedRows>()) {
|
|
|
|
return var->Get<SelectedRows>().GetCompleteDims();
|
|
|
|
return var->Get<SelectedRows>().GetCompleteDims();
|
|
|
@ -89,6 +91,21 @@ static DDim GetDims(const Scope& scope, const std::string& name) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static LoD GetLoD(const Scope& scope, const std::string& name) {
|
|
|
|
|
|
|
|
Variable* var = scope.FindVar(name);
|
|
|
|
|
|
|
|
auto default_lod = LoD({{}});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (var == nullptr) {
|
|
|
|
|
|
|
|
return default_lod;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (var->IsType<LoDTensor>()) {
|
|
|
|
|
|
|
|
return var->Get<LoDTensor>().lod();
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
return default_lod;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
std::string OperatorBase::Input(const std::string& name) const {
|
|
|
|
std::string OperatorBase::Input(const std::string& name) const {
|
|
|
|
auto& ins = Inputs(name);
|
|
|
|
auto& ins = Inputs(name);
|
|
|
|
PADDLE_ENFORCE_LE(ins.size(), 1UL,
|
|
|
|
PADDLE_ENFORCE_LE(ins.size(), 1UL,
|
|
|
@ -130,7 +147,8 @@ std::string OperatorBase::DebugStringEx(const Scope* scope) const {
|
|
|
|
for (size_t i = 0; i < input.second.size(); ++i) {
|
|
|
|
for (size_t i = 0; i < input.second.size(); ++i) {
|
|
|
|
ss << input.second[i];
|
|
|
|
ss << input.second[i];
|
|
|
|
if (scope) {
|
|
|
|
if (scope) {
|
|
|
|
ss << "(" << GetDims(*scope, input.second[i]) << ")";
|
|
|
|
ss << "[" << GetDims(*scope, input.second[i]) << "]";
|
|
|
|
|
|
|
|
ss << "(" << GetLoD(*scope, input.second[i]) << ")";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (i != input.second.size() - 1) {
|
|
|
|
if (i != input.second.size() - 1) {
|
|
|
|
ss << ", ";
|
|
|
|
ss << ", ";
|
|
|
@ -149,7 +167,8 @@ std::string OperatorBase::DebugStringEx(const Scope* scope) const {
|
|
|
|
for (size_t i = 0; i < output.second.size(); ++i) {
|
|
|
|
for (size_t i = 0; i < output.second.size(); ++i) {
|
|
|
|
ss << output.second[i];
|
|
|
|
ss << output.second[i];
|
|
|
|
if (scope) {
|
|
|
|
if (scope) {
|
|
|
|
ss << "(" << GetDims(*scope, output.second[i]) << ")";
|
|
|
|
ss << "[" << GetDims(*scope, output.second[i]) << "]";
|
|
|
|
|
|
|
|
ss << "(" << GetLoD(*scope, output.second[i]) << ")";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (i != output.second.size() - 1) {
|
|
|
|
if (i != output.second.size() - 1) {
|
|
|
|
ss << ", ";
|
|
|
|
ss << ", ";
|
|
|
|