How to create personalized layers

1 visualización (últimos 30 días)
Fabrizio Bernardi
Fabrizio Bernardi el 27 de Ag. de 2020
Editada: Fabrizio Bernardi el 31 de Ag. de 2020
Hello everyone
I built a customed regression output layer named mylayer from here https://it.mathworks.com/help/deeplearning/ug/define-custom-regression-output-layer.html and I want to add it to the other layers of the network. I should use trainNetwork but I only found this example of definiton of layers:
layers = [
imageInputLayer([28 28 1])
convolution2dLayer(5,20)
batchNormalizationLayer
reluLayer
fullyConnectedLayer(1)
myLayer('myL')]
My problem however is NOT an image classification, I just want a couple of hidden layers with a number of neurons to be chosen and the usual weight and biases, passing as inputs a some scalar values. How should I define my object layers?
Thanks you in advice for your help!

Respuestas (1)

Anshika Chaurasia
Anshika Chaurasia el 31 de Ag. de 2020
Hi Fabrizio,
It is my understanding that you have successfully created the custom Regression Ouput Layer – ‘myLayer’. You want to have some hidden layers and ‘myLayer’ in layers array. You could consider following codes:
layers = [
imageInputLayer([28 28 1])
fullyConnectedLayer(20)
reluLayer % optional
fullyConnectedLayer(1)
myLayer('myL')]
Refer to fullyConnectedLayer documentation for weight and bias properties of fullyConnectedLayer.
  2 comentarios
Fabrizio Bernardi
Fabrizio Bernardi el 31 de Ag. de 2020
Thank you for the answer! Is imageInputlayer ok if I don't have to deal with images? Searching I found sequenceInputLayer that could be useful, but trying with a dataset in matlab it gives me this error:
Error using trainNetwork (line 170)
Number of elements must not change. Use [] as one of the size inputs to automatically calculate the appropriate size for that
dimension.
Error in test_prova (line 17)
net = trainNetwork(bodyfatInputs,bodyfatTargets,layers,options);
Caused by:
Error using reshape
Number of elements must not change. Use [] as one of the size inputs to automatically calculate the appropriate size for that
dimension.
This is the code I used ( my customed layer is the layer using mae loss function such as in the example here https://it.mathworks.com/help/deeplearning/ug/define-custom-regression-output-layer.html):
layer = maeRegressionLayer('mae');
load bodyfat_dataset
layers = [
sequenceInputLayer(13)
lstmLayer(40)
maeRegressionLayer('mae')];
options = trainingOptions('sgdm');
net = trainNetwork(bodyfatInputs,bodyfatTargets,layers,options);
Thank you for the help!
Fabrizio Bernardi
Fabrizio Bernardi el 31 de Ag. de 2020
Editada: Fabrizio Bernardi el 31 de Ag. de 2020
Edit: now I tried with
layers = [
sequenceInputLayer(13)
%lstmLayer(40)
fullyConnectedLayer(20)
reluLayer % optional
fullyConnectedLayer(1)
maeRegressionLayer('mae')];
and it gives result! Even if with
YPred = predict(net,bodyfatInputs);
predictionError = YPred - bodyfatTargets;
The erros are very large and the output are almost all the same though...

Iniciar sesión para comentar.

Categorías

Más información sobre Image Data Workflows en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by