NeuralNetwork how to give in input and output

9 次查看(过去 30 天)
hello,
I know to most of you this question might be silly and stupid but I cannot find the correct answer anywhere. I am stuck in the model training process with CNNs where I cannont find out the following: How to give the trainnetwork function the input as well as the output. My input in that case is a 1D cell array (6570x1) and my output is a 3D(10x10x5) cell array. I am familiar with how to do that in python, where the fit-function takes in both, the input as well as the output argument. Is there a similar way to do this in Matlab? Since I don´t see any solution to this. thank you so much in advance.
  1 个评论
Kuno Bruswachtl
Kuno Bruswachtl 2021-12-29
or must I create the input and the output in a featuremap, where each cell corresponds to another cell?

请先登录,再进行评论。

采纳的回答

Srivardhan Gadila
As per my knowledge, the first approach is to use imageInputLayer as input layer of your network (I think with featureInputLayer as input layer it may not work) and prepare the training data according to the format mentioned in the images & responses sections of the trainNetwork function.
The following is a very basic example:
layers = [imageInputLayer([600 1 1])
resize3dLayer(OutputSize=[10 20 3])
regressionLayer];
analyzeNetwork(layers)
batchSize = 5;
xtrain = randn(600,1,1,batchSize);
ytrain = randn(10,20,3,batchSize);
options = trainingOptions("sgdm");
net = trainNetwork(xtrain,ytrain,layers,options)
The other way is to not use trainNetwork function and instead use dlnetwork & Deep Learning Custom Training Loops based workflow.
  5 个评论
Srivardhan Gadila
As per my knowledge, in summary only if your input layer is sequencInputLayer then you can use cell arrays, for all other input layers the training data should either be a datastore, a table or numeric arrays.

请先登录,再进行评论。

更多回答(0 个)

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by