diff --git a/paddle/fluid/operators/concat_op.cc b/paddle/fluid/operators/concat_op.cc index 029b05bb662440bcf94521376b56d234a828ddf5..ad7a84009c9eba3bdc94594de55d60ad4b92ebc7 100644 --- a/paddle/fluid/operators/concat_op.cc +++ b/paddle/fluid/operators/concat_op.cc @@ -80,8 +80,19 @@ class ConcatOp : public framework::OperatorWithKernel { protected: framework::OpKernelType GetExpectedKernelType( const framework::ExecutionContext &ctx) const override { - auto input_data_type = - framework::GetDataTypeOfVar(ctx.MultiInputVar("X")[0]); + auto vars = ctx.MultiInputVar("X"); + auto input_data_type = framework::proto::VarType::Type(0); + bool flag = 0; + for (auto *var : vars) { + if (var->IsInitialized()) { + input_data_type = framework::GetDataTypeOfVar(var); + flag = 1; + break; + } + } + if (flag == 0) { + PADDLE_THROW("All Inputs of Concat OP are Empty!"); + } #ifdef PADDLE_WITH_MKLDNN if (platform::CanMKLDNNBeUsed(ctx)) {