33 : _memory_group(
std::move(memory_manager)), _max_kernel(), _shift_exp_sum_kernel(), _norm_kernel(), _max(), _sum(), _tmp()
55 _memory_group.
manage(&_tmp);
56 _memory_group.
manage(&_max);
57 _memory_group.
manage(&_sum);
61 _shift_exp_sum_kernel.
configure(input, &_max, &_tmp, &_sum);
62 _norm_kernel.
configure(&_tmp, &_sum, output);
void dispatch(IGCKernel &kernel, bool flush=true)
Schedule the execution of the passed kernel if possible.
virtual DataType data_type() const =0
Data type used for each element of the tensor.
1 channel, 1 F32 per channel
void memory_barrier()
Defines a barrier ordering memory transactions.
#define ARM_COMPUTE_ERROR_ON(cond)
If the condition is true then an error message is printed and an exception thrown.
Interface for GLES Compute tensor.
void init(const TensorInfo &input, size_t alignment=0)
Initialize a tensor based on the passed TensorInfo.
Copyright (c) 2017-2021 Arm Limited.
1 channel, 1 F16 per channel
void manage(IMemoryManageable *obj) override
Sets a object to be managed by the given memory group.
static GCScheduler & get()
Access the scheduler singleton.
#define ARM_COMPUTE_UNUSED(...)
To avoid unused variables warnings.
virtual const TensorShape & tensor_shape() const =0
Size for each dimension of the tensor.
#define ARM_COMPUTE_ERROR_ON_MSG(cond, msg)
GCSoftmaxLayer(std::shared_ptr< IMemoryManager > memory_manager=nullptr)
Constructor.
virtual ITensorInfo * info() const =0
Interface to be implemented by the child class to return the tensor's metadata.
#define ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(t, c,...)
virtual void allocate()=0
Interface to be implemented by the child class to allocate the tensor.
Memory group resources scope handling class.
Interface to enqueue GLES kernels and get/set the GLES CommandQueue.
Store the tensor's metadata.
void run() override
Run the kernels contained in the function.
void configure(const IGCTensor *input, IGCTensor *output, float beta=1.0f, int32_t axis=0)
Set the input and output tensors.
void configure(const IGCTensor *input, IGCTensor *output)
Set the input and output tensors.
void configure(const IGCTensor *input, const IGCTensor *max, IGCTensor *output, IGCTensor *sum)
Set the input and output tensors.
ITensorAllocator * allocator()
Return a pointer to the tensor's allocator.
void configure(const IGCTensor *input, const IGCTensor *sum, IGCTensor *output)
Set the input and output tensors.
virtual size_t num_channels() const =0
The number of channels for each tensor element.
TensorShape & set(size_t dimension, size_t value, bool apply_dim_correction=true, bool increase_dim_unit=true)
Accessor to set the value of one of the dimensions.