Change preprocessing parameter in neural network

3 次查看(过去 30 天)
Hi!
I am using neural networks to reconstruct rainfall time series. Since the network sometimes generates negative rainfall, I would like to change the scaling in the preprossesing function 'mapminmax' to [0.1 0.9] instead of the default [-1 1].
To do this, I've tried to change the ymin and ymax reachable through processParams.
% Choose Input and Output Pre/Post-Processing Functions
net.inputs{1}.processFcns = {'removeconstantrows','mapminmax'};
net.outputs{2}.processFcns = {'removeconstantrows','mapminmax'};
net.inputs{1}.processParams{2} %Returns the parameters for 'mapminmax'
net.inputs{1}.processParams{2}(1).ymin %This returns -1
net.inputs{1}.processParams{2}(1).ymin = 0.1; %But I can't change the parameter
This code generates the following:
ans =
ymin: -1
ymax: 1
ans =
-1
??? Undefined function or variable "processParams".
Error in ==> network.subsasgn>network_subsasgn at 118
if isempty(err), [net,err] = setInputProcessParam(net,i,processParams); end
Error in ==> network.subsasgn at 11
net = network_subsasgn(net,subscripts,v,netname);
Error in ==> NNReconstructRain at 26
net.inputs{1}.processParams{2}(1).ymin = 0.1;
How can I change the value?
Thanks
Lova

采纳的回答

Mark Hudson Beale
Mark Hudson Beale 2011-4-19
You can try this workaround:
net = struct(net);
net.inputs{1}.processParams{2}.ymin = 0.1;
net = network(net);

更多回答(1 个)

wonderboy
wonderboy 2011-9-15
i have the same problem in MATLAB r2010b. when i want to set the ymin or y max property of the mapminmax process function i get an error. see:
net.inputs{1}.processParams{3}.ymin = 0
??? Undefined function or variable "processParams".
however, on the r2010a, you won't see the above error.
i wonder sometimes, do the designing team test the product at all???!
the strange thing is that, in the HELP document, on advanced Topic/custom network, when they reach to this point, they skipped it! see (exact copy/paste from MATLAB Neural Network User Guide 7):
Set the second input vector ranges to be from -2 to 2 for five elements as follows:
net.inputs{1}.processFcns = {'removeconstantrows','mapminmax'};
View the new input properties. You will see that processParams, processSettings...
as you see on above they forgot to write this:
net.inputs{1].processFcns{2}.ymin = -2;
net.inputs{1].processFcns{2}.ymax = -2;
however, maybe they knew, this version's bug on this command!
this is really embarrassing.

类别

Help CenterFile Exchange 中查找有关 Sequence and Numeric Feature Data Workflows 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by