Skip to content
Snippets Groups Projects
Commit c17df9d6 authored by Maxence Naud's avatar Maxence Naud
Browse files

[Add] aidge export for 'Pad' and 'ConvDepthWise' Operators

parent bc36561a
No related branches found
No related tags found
No related merge requests found
from aidge_core.aidge_export_aidge.registry import ExportSerialize
from aidge_core.aidge_export_aidge import ROOT_EXPORT
from aidge_core.export_utils import ExportNodeCpp
from aidge_core import ImplSpec, IOSpec, dtype
@ExportSerialize.register(["ConvDepthWise1D", "ConvDepthWise2D"], ImplSpec(IOSpec(dtype.any)))
class ConvDepthWise(ExportNodeCpp):
def __init__(self, node, mem_info):
super().__init__(node, mem_info)
self.config_template = str(
ROOT_EXPORT / "templates/attributes/conv_depth_wise.jinja")
self.forward_template = str(
ROOT_EXPORT /"templates/graph_ctor/conv_depth_wise.jinja")
self.include_list = ["aidge/operator/ConvDepthWise.hpp"]
self.kernels_to_copy = []
self.config_path = "include/attributes"
self.config_extension = "hpp"
from aidge_core.aidge_export_aidge.registry import ExportSerialize
from aidge_core.aidge_export_aidge import ROOT_EXPORT
from aidge_core.export_utils import ExportNodeCpp
from aidge_core import ImplSpec, IOSpec, dtype
@ExportSerialize.register(["Pad1D", "Pad2D"], ImplSpec(IOSpec(dtype.any)))
class Pad(ExportNodeCpp):
def __init__(self, node, mem_info):
super().__init__(node, mem_info)
self.config_template = str(
ROOT_EXPORT / "templates/attributes/pad.jinja")
self.forward_template = str(
ROOT_EXPORT /"templates/graph_ctor/pad.jinja")
self.include_list = ["aidge/operator/Pad.hpp"]
self.kernels_to_copy = []
self.config_path = "include/attributes"
self.config_extension = "hpp"
#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
{%- 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 */
{% 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}} ***/
{%- 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 %}
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