Open Deep Learning API
Loading...
Searching...
No Matches
odla_ops_nn.h
Go to the documentation of this file.
1//===- odla_ops_nn.h ------------------------------------------------------===//
2//
3// Copyright (C) 2019-2020 Alibaba Group Holding Limited.
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16// =============================================================================
17
18#ifndef _ODLA_OPERATOR_OPS_NN_H_
19#define _ODLA_OPERATOR_OPS_NN_H_
20
21#include <ODLA/odla_common.h>
22#include <ODLA/odla_value.h>
23
28#ifdef __cplusplus
29extern "C" {
30#endif
31
33typedef enum {
43
45typedef enum {
50
52typedef enum {
58
59typedef enum {
60 ODLA_REDUCE_NONE,
61 ODLA_REDUCE_MEAN,
62 ODLA_REDUCE_SUM,
63} odla_reduction_mode;
64
66typedef enum {
73
75typedef enum {
82
84typedef enum {
89
91
107extern ODLA_API_EXPORT odla_value ODLA_API_CALL
109 const odla_uint32* window_dims, const odla_uint32* strides,
110 const odla_uint32* paddings_front,
111 const odla_uint32* paddings_back, odla_bool padding_included,
112 odla_value_shape output_dims, const odla_value_id value_id);
113
115
125extern ODLA_API_EXPORT odla_value ODLA_API_CALL
126odla_Hardmax(odla_value input, odla_int32 axis, const odla_value_id value_id);
127
142extern ODLA_API_EXPORT odla_value ODLA_API_CALL
144 odla_int32 window_size, odla_float32 alpha, odla_float32 beta,
145 odla_float32 bias, const odla_value_id value_id);
146
148
173 odla_value input, odla_memory_layout input_layout, odla_value mean,
174 odla_value var, odla_float32 epsilon, odla_value scale, odla_value offset,
175 odla_float32 scalar_scale, odla_float32 scalar_offset,
176 const odla_value_id value_id);
177
179
189extern ODLA_API_EXPORT odla_value ODLA_API_CALL
190odla_Celu(odla_value input, odla_float32 alpha, const odla_value_id value_id);
191
193
213extern ODLA_API_EXPORT odla_value ODLA_API_CALL
215 odla_value kernel, odla_memory_layout kernel_layout,
216 const odla_uint32* strides, const odla_uint32* dilations,
217 const odla_uint32* paddings_front, const odla_uint32* paddings_back,
218 odla_value bias, odla_value_shape output_dims,
219 const odla_value_id value_id);
220
222
242extern ODLA_API_EXPORT odla_value ODLA_API_CALL
244 odla_uint32 group, odla_value kernel,
245 odla_memory_layout kernel_layout, const odla_uint32* strides,
246 const odla_uint32* dilations, const odla_uint32* paddings_front,
247 const odla_uint32* paddings_back, odla_value bias,
248 odla_value_shape output_dims, const odla_value_id value_id);
249
251
260extern ODLA_API_EXPORT odla_value ODLA_API_CALL
261odla_Elu(odla_value input, odla_float32 alpha, const odla_value_id value_id);
262
264
274extern ODLA_API_EXPORT odla_value ODLA_API_CALL
275odla_Gelu(odla_value input, odla_bool use_approx, const odla_value_id value_id);
276
278
299extern ODLA_API_EXPORT odla_values ODLA_API_CALL
301 odla_rnn_gate_order gate_order, odla_value_shape weight_dims,
302 odla_value W, odla_value R, odla_value B, odla_value sequence_lens,
303 odla_value initial_h, odla_int32 hidden_size,
304 odla_rnn_direction direction, odla_bool linear_before_reset,
305 odla_rnn_outputs outputs, const odla_value_ids value_id);
306
308
319extern ODLA_API_EXPORT odla_value ODLA_API_CALL
321 const odla_value_id value_id);
322
324
339 odla_value input, odla_memory_layout input_layout, odla_int32 groups,
340 odla_float32 epsilon, odla_value scale, odla_value offset,
341 odla_float32 scalar_scale, odla_float32 scalar_offset,
342 const odla_value_id value_id);
343
345
362 odla_value input, odla_memory_layout input_layout, odla_float32 epsilon,
363 odla_value scale, odla_value offset, odla_float32 scalar_scale,
364 odla_float32 scalar_offset, const odla_value_id value_id);
365
367
386 odla_value input, odla_int32 p, odla_memory_layout input_layout,
387 odla_size_t axes_size, const odla_int32* axes, odla_float32 epsilon,
388 odla_value scale, const odla_value_id value_id);
389
391
401 odla_value input, odla_float32 alpha, const odla_value_id value_id);
402
404
415 odla_value input, odla_int32 axis, const odla_value_id value_id);
416
418
439extern ODLA_API_EXPORT odla_values ODLA_API_CALL
441 odla_rnn_gate_order gate_order, odla_value_shape weight_dims,
442 odla_value W, odla_value R, odla_value B, odla_value sequence_lens,
443 odla_value initial_h, odla_value initial_c, odla_value P,
444 odla_int32 hidden_size, odla_rnn_direction direction,
445 odla_rnn_outputs outputs, const odla_value_ids value_ids);
446
448
464 odla_value input, odla_memory_layout input_layout,
465 const odla_uint32* window_dims, const odla_uint32* strides,
466 const odla_uint32* paddings_front, const odla_uint32* paddings_back,
467 odla_value_shape output_dims, const odla_value_id value_id);
468
470
485 odla_value input, odla_value gt, odla_int32 ignored,
486 odla_reduction_mode reduction, odla_value weight,
487 odla_value_shape output_shape, odla_value_id value_id);
488
490
504extern ODLA_API_EXPORT odla_value ODLA_API_CALL
505odla_NMS(odla_value boxes, odla_value scores, odla_uint32 max_num_outputs,
506 odla_float32 iou_threshold, odla_float32 score_threshold,
507 odla_value_type output_value_type, const odla_value_id value_id);
508
510
519extern ODLA_API_EXPORT odla_value ODLA_API_CALL
520odla_PRelu(odla_value input, odla_value slope, const odla_value_id value_id);
521
523
531extern ODLA_API_EXPORT odla_value ODLA_API_CALL
532odla_Relu(odla_value input, const odla_value_id value_id);
533
535
554extern ODLA_API_EXPORT odla_values ODLA_API_CALL
557 odla_value sequence_lens, odla_value initial_h, odla_int32 hidden_size,
558 odla_rnn_direction direction, odla_rnn_outputs outputs,
559 const odla_value_ids value_id);
560
562
576extern ODLA_API_EXPORT odla_value ODLA_API_CALL
578 odla_value rois, odla_int32 sampling_ratio, odla_float32 scale,
579 odla_value_shape output_dim, const odla_value_id value_id);
580
582
598 odla_value input, odla_memory_layout input_layout, odla_value rois,
599 odla_int32 win_h, odla_int32 win_w, odla_float32 scale,
600 odla_value_shape output_dim, const odla_value_id value_id);
601
603
614extern ODLA_API_EXPORT odla_value ODLA_API_CALL
616 const odla_value_id value_id);
617
619
630extern ODLA_API_EXPORT odla_value ODLA_API_CALL
632 const odla_value_id value_id);
633
635
643extern ODLA_API_EXPORT odla_value ODLA_API_CALL
644odla_Sigmoid(odla_value input, const odla_value_id value_id);
645
647
657extern ODLA_API_EXPORT odla_value ODLA_API_CALL
658odla_Softmax(odla_value input, odla_int32 axis, const odla_value_id value_id);
659
661
669extern ODLA_API_EXPORT odla_value ODLA_API_CALL
671
673
681extern ODLA_API_EXPORT odla_value ODLA_API_CALL
683
685
705 odla_value input, odla_int32 min_gram_length, odla_int32 max_gram_length,
706 odla_int32 max_skip_count, odla_tf_idf_mode mode, odla_value pool,
707 odla_value gram_counts, odla_value output_indices, odla_value weights,
708 odla_value_shape output_shape, odla_value_id value_id);
709
711
722 odla_value input, odla_float32 alpha, const odla_value_id value_id);
723
725
740 odla_value input, odla_uint32 K, odla_bool largest, odla_bool sorted,
741 odla_uint32 axis, odla_value_type output_value_type,
742 odla_value_type output_value_index_type, const odla_value_ids value_ids);
743
745
758 odla_value orig_img_w, odla_value orig_img_h, odla_value bb13,
759 odla_value bb26, odla_value bb52, const odla_value_id value_id);
760
761#ifdef __cplusplus
762} // C extern
763#endif
764
765#endif // _ODLA_OPERATOR_OPS_NN_H_
__INT32_TYPE__ odla_int32
Definition: odla_common.h:66
#define ODLA_API_EXPORT
API export directives.
Definition: odla_common.h:172
__UINT32_TYPE__ odla_uint32
Definition: odla_common.h:70
odla_uint32 odla_bool
Definition: odla_common.h:99
__SIZE_TYPE__ odla_size_t
size_t
Definition: odla_common.h:134
float odla_float32
Definition: odla_common.h:90
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Conv(odla_value input, odla_memory_layout input_layout, odla_uint32 group, odla_value kernel, odla_memory_layout kernel_layout, const odla_uint32 *strides, const odla_uint32 *dilations, const odla_uint32 *paddings_front, const odla_uint32 *paddings_back, odla_value bias, odla_value_shape output_dims, const odla_value_id value_id)
N-dimensional Convolution.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_GroupNormalization(odla_value input, odla_memory_layout input_layout, odla_int32 groups, odla_float32 epsilon, odla_value scale, odla_value offset, odla_float32 scalar_scale, odla_float32 scalar_offset, const odla_value_id value_id)
Group Normalization.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_BatchNormalization(odla_value input, odla_memory_layout input_layout, odla_value mean, odla_value var, odla_float32 epsilon, odla_value scale, odla_value offset, odla_float32 scalar_scale, odla_float32 scalar_offset, const odla_value_id value_id)
Compute batch normalization.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Sigmoid(odla_value input, const odla_value_id value_id)
Sigmoid activation.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_LeakyRelu(odla_value input, odla_float32 alpha, const odla_value_id value_id)
LeakyRelu activation.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_DeConv(odla_value input, odla_memory_layout input_layout, odla_uint32 group, odla_value kernel, odla_memory_layout kernel_layout, const odla_uint32 *strides, const odla_uint32 *dilations, const odla_uint32 *paddings_front, const odla_uint32 *paddings_back, odla_value bias, odla_value_shape output_dims, const odla_value_id value_id)
N-dimensional Deconvolution.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Celu(odla_value input, odla_float32 alpha, const odla_value_id value_id)
Celu activation.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_HardSigmoid(odla_value input, odla_float32 alpha, odla_float32 beta, const odla_value_id value_id)
HardSigmoid activation.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Selu(odla_value input, odla_float32 alpha, odla_float32 gamma, const odla_value_id value_id)
Selu activation.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Elu(odla_value input, odla_float32 alpha, const odla_value_id value_id)
Elu activation.
odla_tf_idf_mode
TF-IDF computation mode.
Definition: odla_ops_nn.h:84
@ ODLA_TFIDF_TFIDF
Definition: odla_ops_nn.h:87
@ ODLA_TFIDF_IDF
Definition: odla_ops_nn.h:86
@ ODLA_TFIDF_TF
Definition: odla_ops_nn.h:85
ODLA_API_EXPORT odla_values ODLA_API_CALL odla_PostProcess(odla_value orig_img_w, odla_value orig_img_h, odla_value bb13, odla_value bb26, odla_value bb52, const odla_value_id value_id)
Yolov3 Post Process.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Shrink(odla_value input, odla_float32 bias, odla_float32 lambd, const odla_value_id value_id)
Shrink activation.
odla_memory_layout
Memory layout of data.
Definition: odla_ops_nn.h:33
@ ODLA_CHANNELS_LAST
Definition: odla_ops_nn.h:36
@ ODLA_IOS
Definition: odla_ops_nn.h:41
@ ODLA_SIO
Definition: odla_ops_nn.h:38
@ ODLA_SOI
Definition: odla_ops_nn.h:39
@ ODLA_OIS
Definition: odla_ops_nn.h:40
@ ODLA_CHANNELS_FIRST
Definition: odla_ops_nn.h:34
ODLA_API_EXPORT odla_values ODLA_API_CALL odla_RNN(odla_value input, odla_rnn_weight_format weight_format, odla_value_shape weight_dims, odla_value W, odla_value R, odla_value B, odla_value sequence_lens, odla_value initial_h, odla_int32 hidden_size, odla_rnn_direction direction, odla_rnn_outputs outputs, const odla_value_ids value_id)
Compute a one-layer RNN.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_InstanceNormalization(odla_value input, odla_memory_layout input_layout, odla_float32 epsilon, odla_value scale, odla_value offset, odla_float32 scalar_scale, odla_float32 scalar_offset, const odla_value_id value_id)
Instance Normalization.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_LRN(odla_value input, odla_memory_layout input_layout, odla_int32 window_size, odla_float32 alpha, odla_float32 beta, odla_float32 bias, const odla_value_id value_id)
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Softplus(odla_value input, const odla_value_id value_id)
Softplus activation.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_LpNormalize(odla_value input, odla_int32 p, odla_memory_layout input_layout, odla_size_t axes_size, const odla_int32 *axes, odla_float32 epsilon, odla_value scale, const odla_value_id value_id)
LpNormalize.
odla_rnn_gate_order
RNN data layout.
Definition: odla_ops_nn.h:75
@ ODLA_RNN_URO
Definition: odla_ops_nn.h:80
@ ODLA_RNN_ICOF
Definition: odla_ops_nn.h:79
@ ODLA_RNN_IFOC
Definition: odla_ops_nn.h:78
@ ODLA_RNN_IFCO
Definition: odla_ops_nn.h:77
@ ODLA_RNN_IOFC
Definition: odla_ops_nn.h:76
ODLA_API_EXPORT odla_values ODLA_API_CALL odla_TopK(odla_value input, odla_uint32 K, odla_bool largest, odla_bool sorted, odla_uint32 axis, odla_value_type output_value_type, odla_value_type output_value_index_type, const odla_value_ids value_ids)
Find Top-K elements.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_TFIDFVectorize(odla_value input, odla_int32 min_gram_length, odla_int32 max_gram_length, odla_int32 max_skip_count, odla_tf_idf_mode mode, odla_value pool, odla_value gram_counts, odla_value output_indices, odla_value weights, odla_value_shape output_shape, odla_value_id value_id)
TF-IDF vectorization.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Softmax(odla_value input, odla_int32 axis, const odla_value_id value_id)
Softmax activation.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Hardmax(odla_value input, odla_int32 axis, const odla_value_id value_id)
Hardmax computation.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_NMS(odla_value boxes, odla_value scores, odla_uint32 max_num_outputs, odla_float32 iou_threshold, odla_float32 score_threshold, odla_value_type output_value_type, const odla_value_id value_id)
Non-Max Suppression.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_MaxPool(odla_value input, odla_memory_layout input_layout, const odla_uint32 *window_dims, const odla_uint32 *strides, const odla_uint32 *paddings_front, const odla_uint32 *paddings_back, odla_value_shape output_dims, const odla_value_id value_id)
Max Pooling.
odla_rnn_outputs
RNN outputs.
Definition: odla_ops_nn.h:52
@ ODLA_RNN_HIDDEN_STATE
Definition: odla_ops_nn.h:54
@ ODLA_RNN_HIDDEN_CELL_STATE
Definition: odla_ops_nn.h:56
@ ODLA_RNN_CELL_STATE
Definition: odla_ops_nn.h:55
@ ODLA_RNN_NO_STATE
Definition: odla_ops_nn.h:53
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Relu(odla_value input, const odla_value_id value_id)
Relu activation.
odla_rnn_direction
RNN direction.
Definition: odla_ops_nn.h:45
@ ODLA_RNN_BIDIRECTIONAL
Definition: odla_ops_nn.h:48
@ ODLA_RNN_FORWARD
Definition: odla_ops_nn.h:46
@ ODLA_RNN_REVERSE
Definition: odla_ops_nn.h:47
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_PRelu(odla_value input, odla_value slope, const odla_value_id value_id)
PRelu activation.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_LogSoftmax(odla_value input, odla_int32 axis, const odla_value_id value_id)
LogSoftmax activation.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_NegativeLogLikeliHoodLoss(odla_value input, odla_value gt, odla_int32 ignored, odla_reduction_mode reduction, odla_value weight, odla_value_shape output_shape, odla_value_id value_id)
Negative Log Likelihood Loss.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ROIAlign(odla_value input, odla_memory_layout input_layout, odla_value rois, odla_int32 sampling_ratio, odla_float32 scale, odla_value_shape output_dim, const odla_value_id value_id)
Region of Interest align.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_AveragePool(odla_value input, odla_memory_layout input_layout, const odla_uint32 *window_dims, const odla_uint32 *strides, const odla_uint32 *paddings_front, const odla_uint32 *paddings_back, odla_bool padding_included, odla_value_shape output_dims, const odla_value_id value_id)
Avgerage pooling.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Gelu(odla_value input, odla_bool use_approx, const odla_value_id value_id)
Gelu activation.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ROIMaxPool(odla_value input, odla_memory_layout input_layout, odla_value rois, odla_int32 win_h, odla_int32 win_w, odla_float32 scale, odla_value_shape output_dim, const odla_value_id value_id)
ROI max pooling.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ThresholdedRelu(odla_value input, odla_float32 alpha, const odla_value_id value_id)
ThresholdedRelu activation.
ODLA_API_EXPORT odla_values ODLA_API_CALL odla_LSTM(odla_value input, odla_rnn_weight_format weight_format, odla_rnn_gate_order gate_order, odla_value_shape weight_dims, odla_value W, odla_value R, odla_value B, odla_value sequence_lens, odla_value initial_h, odla_value initial_c, odla_value P, odla_int32 hidden_size, odla_rnn_direction direction, odla_rnn_outputs outputs, const odla_value_ids value_ids)
LSTM.
odla_rnn_weight_format
RNN weight layout.
Definition: odla_ops_nn.h:66
@ ODLA_RNN_LDIGO
Definition: odla_ops_nn.h:69
@ ODLA_RNN_LDGOI
Definition: odla_ops_nn.h:67
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Softsign(odla_value input, const odla_value_id value_id)
Softsign activation.
ODLA_API_EXPORT odla_values ODLA_API_CALL odla_GRU(odla_value input, odla_rnn_weight_format weight_format, odla_rnn_gate_order gate_order, odla_value_shape weight_dims, odla_value W, odla_value R, odla_value B, odla_value sequence_lens, odla_value initial_h, odla_int32 hidden_size, odla_rnn_direction direction, odla_bool linear_before_reset, odla_rnn_outputs outputs, const odla_value_ids value_id)
Compute a one-layer GRU.
struct _odla_value_id * odla_value_id
Unique id of each value.
Definition: odla_value.h:74
struct _odla_value * odla_value
Value definition.
Definition: odla_value.h:65
Multiple value ids.
Definition: odla_value.h:77
Shape of value.
Definition: odla_value.h:51
Type of value.
Definition: odla_value.h:59
Multiple values.
Definition: odla_value.h:68