Skip to content
Snippets Groups Projects
Commit 1a4b72ef authored by Cyril Moineau's avatar Cyril Moineau
Browse files

Merge branch 'fix_mobile_net_v1' into 'dev'

[fix] Fix Conv DW and softmax for mobile_net_v1

See merge request eclipse/aidge/aidge_export_arm_cortexm!14
parents 14b473c3 1d321c95
No related branches found
No related tags found
No related merge requests found
......@@ -34,3 +34,6 @@ xml*/
# Model parameters
*.onnx
uni_tests/benchmark.py
uni_tests/superpoint.py
uni_tests/test_cmsis_nn_conv.py
......@@ -95,8 +95,7 @@ __attribute__((always_inline)) inline void convcellDWPropagate(
for (int output = 0; output < NB_OUTPUTS; ++output) {
const int channel = (output * NB_CHANNELS) / NB_OUTPUTS;
SUM_T weightedSum = biasses[output];
Bias_T weightedSum = biasses[output];
for (int sy = 0; sy < KERNEL_HEIGHT; ++sy) {
if ((PADDING_Y != 0
......
#include <math.h>
void aidge_softmax_chw_float32 (float* inputs,
void aidge_softmax_chw_float32(float* inputs,
float* outputs,
int inputDims[],
const int inputDims[],
int axis,
unsigned int size_inputDim,
unsigned int size)
const unsigned int size_inputDim,
const unsigned int size)
{
axis += (axis >= 0 ) ? 0 : size_inputDim;
axis += (axis >= 0 ) ? 0 : size_inputDim;
int postAxisElems = 1;
for (int i = axis+1; i < size_inputDim; ++i) {
for (unsigned int i = axis+1; i < size_inputDim; ++i) {
postAxisElems *= inputDims[i];
}
int preAxisElems = 1;
......
{% include "./_def_io.jinja" %}
{#- For name header -#}
#ifndef {{ name|upper }}_LAYER_H
#define {{ name|upper }}_LAYER_H
......@@ -5,9 +8,7 @@
{# For layer configuration -#}
#define {{ name|upper }}_INPUTS_SIZE {{ in_size[0] }}
#define {{ name|upper }}_OUTPUTS_SIZE {{ out_size[0] }}
#define {{ name|upper }}_DIMS {{ in_dims[0] }}
#define {{ name|upper }}_AXIS {{ axis }}
#define {{ name|upper }}_INPUT_DIMS_SIZE {{ in_dims[0]|length}}
static const int {{ name|upper }}_DIMS[] = { {{ in_dims[0] | join(', ') }} };
#endif /* {{ name|upper }}_LAYER_H */
{% filter indent(width=4, first=False) %}
{% include "./_mem_offset.jinja" %}
N2D2_Export::convcellDWPropagate<{{ in_name[0]|upper }}_NB_CHANNELS,
{{ in_name[0]|upper }}_IN_HEIGHT,
{{ in_name[0]|upper }}_IN_WIDTH,
{{ out_name[0]|upper }}_NB_OUTPUTS,
{{ out_name[0]|upper }}_OUT_HEIGHT,
{{ out_name[0]|upper }}_OUT_WIDTH,
{{ name|upper }}_PADDING_Y,
{{ name|upper }}_PADDING_X,
{{ name|upper }}_STRIDE_Y,
{{ name|upper }}_STRIDE_X,
{{ name|upper }}_KERNEL_HEIGHT,
{{ name|upper }}_KERNEL_WIDTH,
{{ name|upper }}_ACTIVATION,
{{ in_name[0]|upper }}_CONT_OFFSET,
{{ in_name[0]|upper }}_CONT_SIZE,
{{ in_name[0]|upper }}_WRAP_OFFSET,
{{ in_name[0]|upper }}_WRAP_SIZE,
{{ in_name[0]|upper }}_STRIDE,
{{ out_name[0]|upper }}_CONT_OFFSET,
{{ out_name[0]|upper }}_CONT_SIZE,
{{ out_name[0]|upper }}_WRAP_OFFSET,
{{ out_name[0]|upper }}_WRAP_SIZE,
{{ out_name[0]|upper }}_STRIDE>
({{in_name[0]}}, {{out_name[0]}}, {{in_name[2]}}, {{in_name[1]}}, {{ name|upper }}_SCALING);
{% endfilter %}
......@@ -251,7 +251,7 @@ class ConvDW_ARMCortexM(ExportNodeCpp):
self.attributes["padding"] = [0, 0]
self.config_template = str(ROOT / "_Aidge_Arm" / "templates" / "configuration" / "conv_config.jinja")
self.forward_template = str(ROOT / "_Aidge_Arm" / "templates" / "forward_call" / "conv_kernel.jinja")
self.forward_template = str(ROOT / "_Aidge_Arm" / "templates" / "forward_call" / "conv_dw_kernel.jinja")
self.include_list = []
self.kernels_to_copy = [
str(ROOT / "_Aidge_Arm" / "kernels" / "Convolution" / "ConvDW.hpp")
......@@ -276,7 +276,7 @@ class PaddedConvDW_ARMCortexM(ExportNodeCpp):
).attr.dilation_dims
self.config_template = str(ROOT / "_Aidge_Arm" / "templates" / "configuration" / "conv_config.jinja")
self.forward_template = str(ROOT / "_Aidge_Arm" / "templates" / "forward_call" / "conv_kernel.jinja")
self.forward_template = str(ROOT / "_Aidge_Arm" / "templates" / "forward_call" / "conv_dw_kernel.jinja")
self.include_list = []
self.kernels_to_copy = [
str(ROOT / "_Aidge_Arm" / "kernels" / "Convolution" / "ConvDW.hpp")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment