未验证 提交 d68fb792 编写于 作者: H Hongyu Liu 提交者: GitHub

Merge pull request #16890 from colourful-tree/dev

fix teacher_student op infer
...@@ -37,12 +37,14 @@ class TeacherStudentSigmoidLossOp : public framework::OperatorWithKernel { ...@@ -37,12 +37,14 @@ class TeacherStudentSigmoidLossOp : public framework::OperatorWithKernel {
PADDLE_ENFORCE_EQ(x_dims.size(), 2UL, "Input(X)'s rank should be 2."); PADDLE_ENFORCE_EQ(x_dims.size(), 2UL, "Input(X)'s rank should be 2.");
PADDLE_ENFORCE_EQ(label_dims.size(), 2UL, PADDLE_ENFORCE_EQ(label_dims.size(), 2UL,
"Input(Label)'s rank should be 2."); "Input(Label)'s rank should be 2.");
PADDLE_ENFORCE_EQ(x_dims[0], label_dims[0], if (ctx->IsRuntime()) {
"The 1st dimension of Input(X) and Input(Label) should " PADDLE_ENFORCE_EQ(x_dims[0], label_dims[0],
"be equal."); "The 1st dimension of Input(X) and Input(Label) should "
PADDLE_ENFORCE_EQ(label_dims[1], 1UL, "be equal.");
"The 2nd dimension of " PADDLE_ENFORCE_EQ(label_dims[1], 1UL,
"Input(Label) should be 1."); "The 2nd dimension of "
"Input(Label) should be 1.");
}
ctx->SetOutputDim("Y", {x_dims[0], 1}); ctx->SetOutputDim("Y", {x_dims[0], 1});
ctx->ShareLoD("X", /*->*/ "Y"); ctx->ShareLoD("X", /*->*/ "Y");
} }
...@@ -99,17 +101,20 @@ class TeacherStudentSigmoidLossGradientOp ...@@ -99,17 +101,20 @@ class TeacherStudentSigmoidLossGradientOp
PADDLE_ENFORCE_EQ(x_dims.size(), 2, "Input(X)'s rank should be 2."); PADDLE_ENFORCE_EQ(x_dims.size(), 2, "Input(X)'s rank should be 2.");
PADDLE_ENFORCE_EQ(dy_dims.size(), 2, "Input(Y@Grad)'s rank should be 2."); PADDLE_ENFORCE_EQ(dy_dims.size(), 2, "Input(Y@Grad)'s rank should be 2.");
PADDLE_ENFORCE_EQ(label_dims.size(), 2, "Input(Label)'s rank should be 2."); PADDLE_ENFORCE_EQ(label_dims.size(), 2, "Input(Label)'s rank should be 2.");
PADDLE_ENFORCE_EQ(x_dims[0], label_dims[0], if (ctx->IsRuntime()) {
"The 1st dimension of Input(X) and Input(Label) should " PADDLE_ENFORCE_EQ(x_dims[0], label_dims[0],
"be equal."); "The 1st dimension of Input(X) and Input(Label) should "
PADDLE_ENFORCE_EQ(x_dims[0], dy_dims[0], "be equal.");
"The 1st dimension of Input(X) and Input(Y@Grad) should " PADDLE_ENFORCE_EQ(
"be equal."); x_dims[0], dy_dims[0],
PADDLE_ENFORCE_EQ(dy_dims[1], 1, "The 1st dimension of Input(X) and Input(Y@Grad) should "
"The 2nd dimension of Input(Y@Grad) should be 1."); "be equal.");
PADDLE_ENFORCE_EQ(label_dims[1], 1, PADDLE_ENFORCE_EQ(dy_dims[1], 1,
"When Attr(soft_label) == false, the 2nd dimension of " "The 2nd dimension of Input(Y@Grad) should be 1.");
"Input(Label) should be 1."); PADDLE_ENFORCE_EQ(label_dims[1], 1,
"When Attr(soft_label) == false, the 2nd dimension of "
"Input(Label) should be 1.");
}
ctx->SetOutputDim(framework::GradVarName("X"), x_dims); ctx->SetOutputDim(framework::GradVarName("X"), x_dims);
ctx->ShareLoD("X", framework::GradVarName("X")); ctx->ShareLoD("X", framework::GradVarName("X"));
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册