提交 46a13e37 编写于 作者: Y Yu Yang 提交者: fengjiayi

Polish Accuracy Op (#5191)

* Accuracy does not support float/double, only support integers
* Polish error message when an operator does not support some device.
上级 008f40ce
...@@ -390,7 +390,8 @@ void OperatorWithKernel::Run(const Scope& scope, ...@@ -390,7 +390,8 @@ void OperatorWithKernel::Run(const Scope& scope,
auto& all_op_kernels = AllOpKernels(); auto& all_op_kernels = AllOpKernels();
auto kernels_iter = all_op_kernels.find(type_); auto kernels_iter = all_op_kernels.find(type_);
if (kernels_iter == all_op_kernels.end()) { if (kernels_iter == all_op_kernels.end()) {
PADDLE_THROW("op[%s] has no kernel", type_); PADDLE_THROW(
"There are no kernels which are registered in the %s operator.", type_);
} }
// check if op[type] have kernel for kernel_key // check if op[type] have kernel for kernel_key
...@@ -399,7 +400,7 @@ void OperatorWithKernel::Run(const Scope& scope, ...@@ -399,7 +400,7 @@ void OperatorWithKernel::Run(const Scope& scope,
auto kernel_iter = kernels.find(kernel_key); auto kernel_iter = kernels.find(kernel_key);
if (kernel_iter == kernels.end()) { if (kernel_iter == kernels.end()) {
PADDLE_THROW("op[%s] has no kernel with kernel_key[%s]", type_, kernel_key); PADDLE_THROW("The operator %s does not support %s", type_, kernel_key);
} }
kernel_iter->second->Compute(ctx); kernel_iter->second->Compute(ctx);
......
...@@ -70,7 +70,5 @@ information, or not. But the output only shares the LoD with input `Inference`. ...@@ -70,7 +70,5 @@ information, or not. But the output only shares the LoD with input `Inference`.
namespace ops = paddle::operators; namespace ops = paddle::operators;
REGISTER_OP_WITHOUT_GRADIENT(accuracy, ops::AccuracyOp, ops::AccuracyOpMaker); REGISTER_OP_WITHOUT_GRADIENT(accuracy, ops::AccuracyOp, ops::AccuracyOpMaker);
REGISTER_OP_CPU_KERNEL( REGISTER_OP_CPU_KERNEL(
accuracy, ops::AccuracyKernel<paddle::platform::CPUPlace, float>, accuracy, ops::AccuracyKernel<paddle::platform::CPUPlace, int>,
ops::AccuracyKernel<paddle::platform::CPUPlace, int>,
ops::AccuracyKernel<paddle::platform::CPUPlace, double>,
ops::AccuracyKernel<paddle::platform::CPUPlace, int64_t>); ops::AccuracyKernel<paddle::platform::CPUPlace, int64_t>);
...@@ -81,7 +81,5 @@ class AccuracyOpCUDAKernel : public framework::OpKernel<T> { ...@@ -81,7 +81,5 @@ class AccuracyOpCUDAKernel : public framework::OpKernel<T> {
} // namespace operators } // namespace operators
} // namespace paddle } // namespace paddle
REGISTER_OP_GPU_KERNEL(accuracy, paddle::operators::AccuracyOpCUDAKernel<float>, REGISTER_OP_GPU_KERNEL(accuracy, paddle::operators::AccuracyOpCUDAKernel<int>,
paddle::operators::AccuracyOpCUDAKernel<double>,
paddle::operators::AccuracyOpCUDAKernel<int>,
paddle::operators::AccuracyOpCUDAKernel<int64_t>); paddle::operators::AccuracyOpCUDAKernel<int64_t>);
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册