Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • eclipse/aidge/aidge_core
  • hrouis/aidge_core
  • mszczep/aidge_core
  • oantoni/aidge_core
  • cguillon/aidge_core
  • jeromeh/aidge_core
  • axelfarr/aidge_core
  • cmoineau/aidge_core
  • noamzerah/aidge_core
  • lrakotoarivony/aidge_core
  • silvanosky/aidge_core
  • maab05/aidge_core
  • mick94/aidge_core
  • lucaslopez/aidge_core_ll
  • wboussella/aidge_core
  • farnez/aidge_core
  • mnewson/aidge_core
17 results
Show changes
Showing
with 277 additions and 1 deletion
#ifndef EXPORT_ATTRIBUTES_{{name|upper}}_H
#define EXPORT_ATTRIBUTES_{{name|upper}}_H
#define _{{name|upper}}_IN_CHANNELS {{in_chan[0]}}
#define _{{name|upper}}_OUT_CHANNELS {{out_chan[0]}}
{% for i in range(kernel_dims|length) %}
#define _{{name|upper}}_KERNEL_{{i}} {{kernel_dims[i]}}
{%- endfor %}
{% for i in range(stride_dims|length) %}
#define _{{name|upper}}_STRIDE_{{i}} {{stride_dims[i]}}
{%- endfor %}
{% for i in range(dilation_dims|length) %}
#define _{{name|upper}}_DILATION_{{i}} {{dilation_dims[i]}}
{%- endfor %}
#endif /* EXPORT_ATTRIBUTES_{{name|upper}}_H */
#ifndef EXPORT_ATTRIBUTES_{{name|upper}}_H
#define EXPORT_ATTRIBUTES_{{name|upper}}_H
#define _{{name|upper}}_CHANNELS {{out_chan[0]}}
{% for i in range(kernel_dims|length) %}
#define _{{name|upper}}_KERNEL_{{i}} {{kernel_dims[i]}}
{%- endfor %}
{% for i in range(stride_dims|length) %}
#define _{{name|upper}}_STRIDE_{{i}} {{stride_dims[i]}}
{%- endfor %}
{% for i in range(dilation_dims|length) %}
#define _{{name|upper}}_DILATION_{{i}} {{dilation_dims[i]}}
{%- endfor %}
#endif /* EXPORT_ATTRIBUTES_{{name|upper}}_H */
#ifndef EXPORT_ATTRIBUTES_{{name|upper}}_H
#define EXPORT_ATTRIBUTES_{{name|upper}}_H
#define _{{name|upper}}_IN_CHANNELS {{in_chan[0]}}
#define _{{name|upper}}_OUT_CHANNELS {{out_chan[0]}}
#endif /* EXPORT_ATTRIBUTES_{{name|upper}}_H */
#ifndef EXPORT_ATTRIBUTES_{{name|upper}}_H
#define EXPORT_ATTRIBUTES_{{name|upper}}_H
{% for i in range(kernel_dims|length) %}
#define _{{name|upper}}_KERNEL_{{i}} {{kernel_dims[i]}}
{%- endfor %}
{% for i in range(stride_dims|length) %}
#define _{{name|upper}}_STRIDE_{{i}} {{stride_dims[i]}}
{%- endfor %}
#define _{{name|upper}}_CEIL_MODE {{ceil_mode|int}}
#endif /* EXPORT_ATTRIBUTES_{{name|upper}}_H */
#ifndef EXPORT_ATTRIBUTES_{{name|upper}}_H
#define EXPORT_ATTRIBUTES_{{name|upper}}_H
{%- set half_length = (begin_end_borders|length / 2)|int -%}
{% for i in range(half_length) %}
#define _{{name|upper}}_BEGIN_BORDERS_{{i}} {{begin_end_borders[2*i]}}
#define _{{name|upper}}_END_BORDERS_{{i}} {{begin_end_borders[2*i+1]}}
{%- endfor %}
#define _{{name|upper}}_BORDER_TYPE {{border_type|int}}
#define _{{name|upper}}_BORDER_VALUE {{border_value}}
#endif /* EXPORT_ATTRIBUTES_{{name|upper}}_H */
/********************************************************************************
* This file has been generated by the Aidge export.
********************************************************************************/
/*** STD INCLUDES ***/
#include <memory> // std::shared_ptr
/*** AIDGE INCLUDES ***/
#include <aidge/graph/GraphView.hpp> // Aidge::GraphView
#include <aidge/graph/Node.hpp> // Aidge::Node
#include <aidge/graph/OpArgs.hpp> // Aidge::Sequential
/*** AIDGE OPERATORS ***/
{%- for operator in operators %}
#include <aidge/operator/{{operator}}.hpp>
{%- endfor %}
/*** OPERATOR ATTRIBUTES & PARAMETERS ***/
{%- for header in headers %}
#include "{{ header | replace('include/', '') }}"
{%- endfor %}
/*** HEADER ***/
#include "dnn.hpp"
std::shared_ptr<Aidge::GraphView> generateModel() {
/*** BUILDING GRAPH ***/
std::shared_ptr<Aidge::GraphView> graph = std::make_shared<Aidge::GraphView>();
{%- for action in actions %}
{{ action }}
{%- endfor %}
return graph;
}
{# NOTE: Trying a shorter notation like {%- for input in inputs if input[0] %}
will mess up loop.index as the input set up at None will not increment ! #}
{%- for input_node, out_id in node.inputs() %}
{%- if input_node %}
{{input_node.name()}}->addChild({{name}}, {{out_id}}, {{loop.index - 1}}); {# NOTE: loop.index begin at 1 #}
{%- endif %}
{%- endfor %}
{% filter indent(width=4, first=False) %}
/*** {{name|upper}} ***/
std::shared_ptr<Aidge::Node> {{name}} =
Aidge::Add(
"{{name}}"
);
{% include "./_set_input.jinja" %}
graph->add({{name}});
{% endfilter %}
{% filter indent(width=4, first=False) %}
/*** {{name|upper}} ***/
std::shared_ptr<Aidge::Node> {{name}} =
Aidge::Conv(
_{{name|upper}}_IN_CHANNELS,
_{{name|upper}}_OUT_CHANNELS,
{
{%- for i in range(kernel_dims|length) -%}
_{{name|upper}}_KERNEL_{{i}}{%- if not loop.last %}, {% endif -%}
{%- endfor -%}
},
"{{name}}",
{
{%- for i in range(stride_dims|length) -%}
_{{name|upper}}_STRIDE_{{i}} {%- if not loop.last %}, {% endif -%}
{%- endfor -%}
},
{
{%- for i in range(dilation_dims|length) -%}
_{{name|upper}}_DILATION_{{i}} {%- if not loop.last %}, {% endif -%}
{%- endfor -%}
}
);
{% include "./_set_input.jinja" %}
graph->add({{name}});
{% endfilter %}
{% filter indent(width=4, first=False) %}
/*** {{name|upper}} ***/
std::shared_ptr<Aidge::Node> {{name}} =
Aidge::ConvDepthWise(
_{{name|upper}}_CHANNELS,
{
{%- for i in range(kernel_dims|length) -%}
_{{name|upper}}_KERNEL_{{i}}{%- if not loop.last %}, {% endif -%}
{%- endfor -%}
},
"{{name}}",
{
{%- for i in range(stride_dims|length) -%}
_{{name|upper}}_STRIDE_{{i}} {%- if not loop.last %}, {% endif -%}
{%- endfor -%}
},
{
{%- for i in range(dilation_dims|length) -%}
_{{name|upper}}_DILATION_{{i}} {%- if not loop.last %}, {% endif -%}
{%- endfor -%}
}
);
{% include "./_set_input.jinja" %}
graph->add({{name}});
{% endfilter %}
{% filter indent(width=4, first=False) %}
/*** {{name|upper}} ***/
std::shared_ptr<Aidge::Node> {{name}} =
Aidge::FC(
_{{name|upper}}_IN_CHANNELS,
_{{name|upper}}_OUT_CHANNELS,
"{{name}}"
);
{% include "./_set_input.jinja" %}
graph->add({{name}});
{% endfilter %}
{% filter indent(width=4, first=False) %}
/*** {{name|upper}} ***/
std::shared_ptr<Aidge::Node> {{name}} =
Aidge::MaxPooling(
{
{%- for i in range(kernel_dims|length) -%}
_{{name|upper}}_KERNEL_{{i}}{%- if not loop.last %}, {% endif -%}
{%- endfor -%}
},
"{{name}}",
{
{%- for i in range(stride_dims|length) -%}
_{{name|upper}}_STRIDE_{{i}} {%- if not loop.last %}, {% endif -%}
{%- endfor -%}
},
_{{name|upper}}_CEIL_MODE
);
{% include "./_set_input.jinja" %}
graph->add({{name}});
{% endfilter %}
{% filter indent(width=4, first=False) %}
/*** {{name|upper}} ***/
{%- set half_length = (begin_end_borders|length / 2)|int -%}
std::shared_ptr<Aidge::Node> {{name}} =
Aidge::Pad<{{half_length}}>(
{
{%- for i in range(half_length) -%}
_{{name|upper}}_BEGIN_BORDERS_{{i}}, _{{name|upper}}_END_BORDERS_{{i}} {%- if not loop.last %}, {% endif -%}
{%- endfor -%}
},
"{{name}}",
static_cast<Aidge::PadBorderType>(_{{name|upper}}_BORDER_TYPE),
_{{name|upper}}_BORDER_VALUE
);
{% include "./_set_input.jinja" %}
graph->add({{name}});
{% endfilter %}
{% filter indent(width=4, first=False) %}
/*** {{name|upper}} ***/
std::shared_ptr<Aidge::Node> {{name}} =
Aidge::Producer(
{{tensor_name}},
"{{name}}"
);
graph->add({{name}});
{% endfilter %}
{% filter indent(width=4, first=False) %}
/*** {{name|upper}} ***/
std::shared_ptr<Aidge::Node> {{name}} =
Aidge::ReLU(
"{{name}}"
);
{% include "./_set_input.jinja" %}
graph->add({{name}});
{% endfilter %}
{% filter indent(width=4, first=False) %}
/*** {{name|upper}} ***/
std::shared_ptr<Aidge::Node> {{name}} =
Aidge::Sub(
"{{name}}"
);
{% include "./_set_input.jinja" %}
graph->add({{name}});
{% endfilter %}
#ifndef EXPORT_PARAMETERS_{{name|upper}}_H
#define EXPORT_PARAMETERS_{{name|upper}}_H
#include <aidge/data/Tensor.hpp>
#include <memory>
std::shared_ptr<Aidge::Tensor> {{tensor_name}} = std::make_shared<Aidge::Tensor>(Aidge::Array{{out_dims[0]|length}}D<{{out_cdtype[0]}}, {{ out_dims[0]|join(", ") }}> {
{{ values }}
});
#endif /* EXPORT_PARAMETERS_{{name|upper}}_H */
#include <pybind11/pybind11.h>
#include "dnn.hpp"
namespace py = pybind11;
void init_{{name}}(py::module& m){
m.def("generate_model", generateModel);
}
PYBIND11_MODULE({{name}}, m) {
init_{{name}}(m);
}
def parse_node_input(node_inputs: list) -> list:
"""Parse node intputs in order to adapt the list for Jinja.
:param node_inputs: return of node.inputs()
:type node_inputs: list of tuple of aidge_core.Node, output idx.
:return: list of tuple of node name, output idx.
:rtype: list
"""
return [None if parent_node is None else (parent_node.name(), outId) for parent_node, outId in node_inputs]
from .node_export import *