| 102 | } // namespace |
| 103 | |
| 104 | void CpuMaxUnpoolingLayerKernel::configure(const ITensorInfo *src, |
| 105 | const ITensorInfo *indices, |
| 106 | ITensorInfo *dst, |
| 107 | const PoolingLayerInfo &pool_info) |
| 108 | { |
| 109 | ARM_COMPUTE_TRACE_EVENT(ARM_COMPUTE_PROF_CAT_CPU, ARM_COMPUTE_PROF_LVL_CPU, |
| 110 | "CpuMaxUnpoolingLayerKernel::configure"); |
| 111 | ARM_COMPUTE_ERROR_ON_NULLPTR(src, dst, indices); |
| 112 | ARM_COMPUTE_ERROR_THROW_ON(validate_arguments(src, indices, dst, pool_info)); |
| 113 | ARM_COMPUTE_UNUSED(indices); |
| 114 | |
| 115 | const auto uk = CpuMaxUnpoolingLayerKernel::get_implementation( |
| 116 | DataTypeISASelectorData{src->data_type(), CPUInfo::get().get_isa()}); |
| 117 | ARM_COMPUTE_ERROR_ON_NULLPTR(uk); |
| 118 | _run_method = uk->ukernel; |
| 119 | |
| 120 | const TensorShape output_shape = compute_unpool_shape(*src, pool_info); |
| 121 | auto_init_if_empty(*dst, src->clone()->set_tensor_shape(output_shape)); |
| 122 | |
| 123 | auto window = calculate_max_window(*src, Steps()); |
| 124 | ICpuKernel::configure(window); |
| 125 | } |
| 126 | |
| 127 | Status CpuMaxUnpoolingLayerKernel::validate(const ITensorInfo *src, |
| 128 | const ITensorInfo *indices, |
nothing calls this directly
no test coverage detected