想用matlab来实现一个回归问题,首先尝试了图片到图片的回归,我最想用mat文件实现,因为mat文件对于图片到图片还是图片到向量都是很方便的。首先,我的思路是将输入和输出得mat文件用datastore 函数读进去,然后再进行combine,生成一个训练pair,最后用于训练,训练集和验证机放在不同的文件夹里面,代码里指定即可。 下面是我的代码,
inputData=fileDatastore(fullfile('A:\wtl\New\CNN3\1\'),'ReadFcn',...
@load,'FileExtensions','.mat');
targetData=fileDatastore(fullfile('A:\wtl\New\CNN3\2\'),'ReadFcn',...
@load,'FileExtensions','.mat');
trainData=combine(inputData,targetData); %%训练数据
% validation data
inputDatat=fileDatastore(fullfile('A:\wtl\New\CNN3\3\'),'ReadFcn',...
@load,'FileExtensions','.mat');
targetDatat=fileDatastore(fullfile('A:\wtl\New\CNN3\4\'),'ReadFcn',...
@load,'FileExtensions','.mat');
valData=combine(inputDatat,targetDatat);%%验证数据
%% 训练参数
Minibatchsize=4;
options = trainingOptions('adam', ...
'MaxEpochs',10, ...
'MiniBatchSize',Minibatchsize, ...
'ValidationData',valData, ...
'Plots','training-progress', ...
'Verbose',false);
net = trainNetwork(trainData,layers_1,options); %%训练网络
然后在我开始训练网络的时候 遇到了一个问题,就是说我的训练数据里面有NaN数据,可是我所有的mat文件都没有NaN,我的数据和官网中给的例子不同的是:我的输入和输出不能通过transform函数得到,两组数据都是独立采集的,但是又存在一些联系。
Error using trainNetwork (line 183)
Invalid training data. For regression tasks, responses must be a vector, a matrix,
or a 4-D array of numeric responses. Responses must not contain NaNs.
然后我又尝试了在保存mat文件的时候用isnan函数再处理一下即将要保存的数据,还是同样的问题。
最后,我又尝试了自己生成矩阵,然后保存为mat文件,矩阵很简单就是[1 2 3; 4 5 6], 所有的数据集都是这个。 但是还是存在同样的错误。 所以有没有大神遇到过同样的问题? 求解决,解决了星巴克 奶茶 现金都可以。
我有一个思路是自己写一个transform函数 函数里面说就是isnan函数,但是我尝试了自己写的transform函数 老报错。 做过的大佬帮忙解决一下,谢谢!