diff --git a/mace/ops/eltwise.cc b/mace/ops/eltwise.cc index f035eeee579907fea2ddb77d04ca5c982c903b67..1e246c18ff17ca98574a3365c577684a3badbab0 100644 --- a/mace/ops/eltwise.cc +++ b/mace/ops/eltwise.cc @@ -1192,12 +1192,23 @@ class EltwiseOp : public Operation { for (int i = 0; i < input_size; ++i) { if (ws->HasTensor(operator_def_->input(i)) && ws->GetTensor(operator_def_->input(i))->is_weight()) { - MACE_CHECK(TransformFilter( - context, - operator_def_.get(), - i, - OpenCLBufferType::ARGUMENT, - mem_type) == MaceStatus::MACE_SUCCESS); + if (ws->GetTensor(operator_def_->input(i))->dim_size() == 1) { + MACE_CHECK(TransformFilter( + context, + operator_def_.get(), + i, + OpenCLBufferType::ARGUMENT, + mem_type) == MaceStatus::MACE_SUCCESS); + } else if (ws->GetTensor(operator_def_->input(i))->dim_size() == 4) { + MACE_CHECK(TransformFilter( + context, + operator_def_.get(), + i, + OpenCLBufferType::IN_OUT_CHANNEL, + mem_type) == MaceStatus::MACE_SUCCESS); + } else { + MACE_NOT_IMPLEMENTED; + } } } }