Di bulan Ramadhan yang mana witir biasanya didirikan sebagai penamat kepada solat terawih. Jika kita bangkit bersahur dan punyai masa untuk terus menunaikan solat sunat lain, ia DIHARUSKAN tanpa perlu dimulai dengan satu rakaat witir. Tidak perlu pula ditutupi dengan witir lain selepas itu.
Wajar dituruti pandangan majoriti ulama yang MELARANG ditunaikan solat witir sekali lagi di akhir malam. Cukup sekali witir yang telah didirikan di akhir terawih bersama imam berteatan dengan saranan Nabi Muhammad s.a.w.
[source]
Thursday, July 25, 2013
Wednesday, July 24, 2013
MATLAB series: Neural Network Toolbox - newff
1) Calling newff function using the command;
net=newff(p,t,2);
will automatically scale the inputs and outputs to;
2) If you were to directly export the weight generated from
[net,tr]=train(net,p,t);
to your program (i.e. C++), you will end up getting different result as compared to results generated by MATLAB.
3) This behavior was resulted from the preprocessing function described in (1).
4) Hence, to use the weight in C++, you have to scale your input before multiply with weights and rescale your output to get the real output values.
For instance, to scale the input using mapminmax, you can use
y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin;
to get the scaled input between ymin = -1 and ymax = 1.
Finally, to scale the output back to original unit of the target, you can use
x = (xmax-xmin)*(y-ymin)/(ymax-ymin) + xmin;
5) Alternatively, you can disable the scaling preprocessing function by execute either of these command
net=newff(p,t,2);
%net.inputs{1}.processFcns = {};
%net.outputs{2}.processFcns = {};
6) The weights value generated can be directly exported to your C++ program.
Enjoy!!
UPDATE
preprocessing: mapstd
To scale the input:
y = (x-xmean) * (ystd/xstd) + ymean
To scale the output:
x = (y-ymean) * (xstd/ystd) + xmean
[sources: 1, 2]
net=newff(p,t,2);
will automatically scale the inputs and outputs to;
net.inputs{1}.processFcns = 'fixunknowns' 'removeconstantrows' 'mapminmax'
net.outputs{2}.processFcns
= 'removeconstantrows' 'mapminmax'2) If you were to directly export the weight generated from
[net,tr]=train(net,p,t);
to your program (i.e. C++), you will end up getting different result as compared to results generated by MATLAB.
3) This behavior was resulted from the preprocessing function described in (1).
network generated from newff(p,t,2) |
network with 2 nodes in hidden layer |
Process Input 1 from the default value of processFcns |
Process Output 1 from the default value of processFcns |
For instance, to scale the input using mapminmax, you can use
y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin;
to get the scaled input between ymin = -1 and ymax = 1.
Finally, to scale the output back to original unit of the target, you can use
x = (xmax-xmin)*(y-ymin)/(ymax-ymin) + xmin;
5) Alternatively, you can disable the scaling preprocessing function by execute either of these command
net=newff(p,t,2);
net.inputs{1}.processFcns =
{'fixunknowns' 'removeconstantrows'};
net2.outputs{2}.processFcns = {'removeconstantrows'};%net.inputs{1}.processFcns = {};
%net.outputs{2}.processFcns = {};
6) The weights value generated can be directly exported to your C++ program.
Enjoy!!
UPDATE
preprocessing: mapstd
To scale the input:
y = (x-xmean) * (ystd/xstd) + ymean
To scale the output:
x = (y-ymean) * (xstd/ystd) + xmean
[sources: 1, 2]
Subscribe to:
Posts (Atom)