Work Around for Convolution1DLayer

I am trying to do code generation of a trained deep learning network however it uses a convolution1dlayer. It seems this is not currently supported by matlab. What are some possible solutions to this problem?

Answers (4)

Aditya
Aditya on 7 Aug 2024
Edited: Aditya on 7 Aug 2024
Hi Kevin,
Please do refer to this MATLAB answer post by MathWorks Support Team on the same issue: Is code generation supported for "convolution1DLayer"? - MATLAB Answers - MATLAB Central (mathworks.com)
Hope this helps!
Ram Kokku
Ram Kokku on 7 Aug 2024
Edited: Walter Roberson on 7 Aug 2024
Convolution1DLayer supports code generation in the latest (R2024a) version of MATLAB. See the extended capabilities section : here - https://www.mathworks.com/help/deeplearning/ref/nnet.cnn.layer.convolution1dlayer.html
Steven Lord
Steven Lord on 7 Aug 2024
Are you certain that you're using release R2024a? It appears from the Release Notes that support for generating code from this layer was added in release R2024a.

3 Comments

I am. The error specifically saps mlkdnn does not support this. It also does not work with Cuda. I am running 2024a.
@Kevin Monahan, use TargetLibrary=none (https://www.mathworks.com/help/coder/ref/coder.deeplearningconfig.html). Both MATLAB Coder and GPU Coder support TargetLibrary=none. so, you should be able to generate both C/C++ and CUDA. For Better performance, you may need to explicit enable hardware features like instructionset (AVX2, AVX512) and multi-threading. See https://www.mathworks.com/help/coder/ug/optimize-generic-c-cpp-code-performance.html for more details.
I meet the same problem when generating coder containg Convolution1DLayer using TargetLibrary=none, and I also use the version 2024a. So this means actualy version 2024a stiil does not support the code generation for Convolution1DLayer?

Sign in to comment.

Matt J
Matt J on 7 Aug 2024
Edited: Matt J on 7 Aug 2024
Why not just use a convolution2dLayer? A 1D input is just a special case of a 2D input.

2 Comments

I did not make the model. It was given to me pretrained. I need to take it and move it out of Matlab for future research.
Matt J
Matt J on 7 Aug 2024
Edited: Matt J on 7 Aug 2024
Why does that matter? It was given to you, but surely you can use replaceLayer to swap the 1D convolutional layers for 2D ones.

Sign in to comment.

Categories

Find more on MATLAB Coder in Help Center and File Exchange

Products

Release

R2024a

Asked:

on 7 Aug 2024

Commented:

森
on 17 Aug 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!