How to create a datastore for using the Deep Network Designer App?
    13 views (last 30 days)
  
       Show older comments
    
    xadu
 on 16 Nov 2021
  
    
    
    
    
    Commented: Atallah Baydoun
 on 21 Jul 2023
            I'm trying to use the Deep Network Designer app (R2021b) to perform regression between numeric inputs and outputs. I have prepared the trainind dataset in a matrix X of size n x f, where f is the number of features, and a matrix Y of size n x r, where r is the number of responses (n is the number of observations). Similarly, Xv and Yv hold the validation data. When I run the app, I see that it needs the data to be in a datastore, so I tried the following to make the appropriate datastores: (f = 3, r = 5, n = 500, n_val = 100).
ar_c = mat2cell([X Y],ones(500,1),[3,5]);
arv_c = mat2cell([Xv Yv],ones(100,1),[3,5]);
ds = arrayDatastore(ar_c,'OutputType','same');
ds_v = arrayDatastore(arv_c,'OutputType','same');
The datastores ds and ds_v get accepted as legitimate input (I can see the first 5 observations previewed). 
But when I hit "train", I get the following error: Training with trainNetwork failed. Input datastore returned more than one observation per row for network input 1. (not sure why the "Don't" rules for posting recommend against pasting images of error messages).

As per the instructions given to mat2cell, I have only one row per observation (or so I think). Can someone please tell me what I'm doing wrong here? Thanks!
0 Comments
Accepted Answer
  Srivardhan Gadila
    
 on 19 Nov 2021
        From the above information, I think your input layer would be a featureInputLayer. So according to your training data, the output of read operation on the combined datastore should be as follows:
>> read(cds)
ans =
  1×2 cell array
    {3×1 double}    {5×1 double}
For more information you can refer to the documentation of trainNetwork and desciption of training data format for feature data in case of a datastore: features - trainNetwork.
I am attaching code to generate random training data:
f = 3; r = 5; n = 5;
layers = [featureInputLayer(f)
    fullyConnectedLayer(r)
    regressionLayer];
xtrain = randn(f,n);
ytrain = randn(r,n);
xds = arrayDatastore(xtrain,IterationDimension=2);
yds = arrayDatastore(ytrain,IterationDimension=2);
cds = combine(xds,yds)
5 Comments
  Atallah Baydoun
 on 21 Jul 2023
				Hey @Bahar Dadfar No, I was not able to solve this issue. At that time, I was trying to build a multi-modal network using Matlab. My inputs were 3D image and a vector of 4 features. The example of multi-modal network in Matlab uses 2D (not 3D Images) and I was getting this error. I reached out to the deep learning team in Matlab and this was not solved. I haven't checked for a while, but I think that Matlab still doesn't have a clear straightfroward process to do multi-modal networks and basically datasets.
Are you trying to do the same?
More Answers (0)
See Also
Categories
				Find more on Deep Learning Toolbox in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


