Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Alexandr_S_1
Beginner
83 Views

DAAL convolutional layer architecture

Jump to solution

I have some questions about applying kernels for several input data matrixes.

For example, I have 3-channels image and convolutional layer with 4 kernels 5x5. My problem is how to apply filters(k1-k4) in the following way:

Red color is connection between the matrix of channel and the kernel. This connection means, which kernels I want to apply to this channel.

For example, I want to apply filter k1 to channel R and G and summ results of 2 convolutions to first output. Filter k2 must apply only to channel G. And so on. How to realise this network topology using DAAL?123.png

0 Kudos

Accepted Solutions
Ruslan_I_Intel
Employee
83 Views

Hi Alexander,

Per our quick analysis, the problem admits this type of the decomposition:

asmirnov_net_small.png

where the arrows on the diagram denote connections (data flow) between layers. All convolutional layers have kernels of size 5x5 and strides equal to 1. You can find description of the layers mentioned on the diagram excluding Slice in the Developer Guide https://software.intel.com/en-us/node/681968. Respective examples are available at https://software.intel.com/en-us/node/564720.

Present version of the library does not provide support for such topology due to absence of Slice layer in Intel DAAL. We will analyze ways how to support this use-case.

In short term you can implement this Slice layer on your side by following conventions of the library API. Please, have a look at guide how to add user-defined algorithm to the library: https://software.intel.com/en-us/articles/intel-data-analytics-acceleration-library-intel-daal-how-t.... Intel DAAL is open sourced, and you can find out implementation of the similar layers in our official github repository https://github.com/01org/daal.

Please, let us know, if it addressed your question and/or if you need any help in development of the slice layer or on other library related aspects.

Ruslan

View solution in original post

3 Replies
Alexandr_S_1
Beginner
83 Views

There is a table of connections between feature maps of two layers in page 8 of research article written by Yann Lecun http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf. It explains, what I mean.

Ruslan_I_Intel
Employee
84 Views

Hi Alexander,

Per our quick analysis, the problem admits this type of the decomposition:

asmirnov_net_small.png

where the arrows on the diagram denote connections (data flow) between layers. All convolutional layers have kernels of size 5x5 and strides equal to 1. You can find description of the layers mentioned on the diagram excluding Slice in the Developer Guide https://software.intel.com/en-us/node/681968. Respective examples are available at https://software.intel.com/en-us/node/564720.

Present version of the library does not provide support for such topology due to absence of Slice layer in Intel DAAL. We will analyze ways how to support this use-case.

In short term you can implement this Slice layer on your side by following conventions of the library API. Please, have a look at guide how to add user-defined algorithm to the library: https://software.intel.com/en-us/articles/intel-data-analytics-acceleration-library-intel-daal-how-t.... Intel DAAL is open sourced, and you can find out implementation of the similar layers in our official github repository https://github.com/01org/daal.

Please, let us know, if it addressed your question and/or if you need any help in development of the slice layer or on other library related aspects.

Ruslan

View solution in original post

Alexandr_S_1
Beginner
83 Views

Thanks Ruslan for a lot of details in your answer.