| | function batch_training_performance=fun_ANN_Model(image,param) |
| | |
| | |
| | nmb_of_hidden_layers=param.nmb_of_hidden_layers; |
| |
|
| | patch=param.patch; |
| | nmb_of_modules=param.nmb_of_modules; |
| | nmb_of_module_subsets=param.nmb_of_module_subsets; |
| | nmb_of_colors=param.nmb_of_colors; |
| | channels_names=param.channels_names; |
| | |
| | nmb_of_labs_per_module=param.nmb_of_labs_per_module; |
| | sz=size(image); |
| | if length(sz)==2 |
| | nmb_of_data=1; |
| | else |
| | nmb_of_data=sz(2); |
| | end |
| |
|
| | if nmb_of_data>1 |
| | batch_training_performance=zeros(2,nmb_of_data,nmb_of_modules,nmb_of_module_subsets,nmb_of_colors); |
| | else |
| | batch_training_performance=zeros(2,nmb_of_modules,nmb_of_module_subsets,nmb_of_colors); |
| | end |
| | for module=1:nmb_of_modules |
| | for subset=1:nmb_of_module_subsets |
| | for color=1:nmb_of_colors |
| | reportname1 = sprintf('../Model_Parameter/Trained_Parameter_patch_%d_module_%d_subset_%d_ch_%s.mat',... |
| | patch, module, subset, char(channels_names(color))); |
| | |
| | temp_load=load(reportname1); |
| | W=temp_load.W; |
| | b=temp_load.b; |
| | |
| | |
| | W1=W.LayerName1; |
| | W2=W.LayerName2; |
| | b1=b.LayerName1; |
| | b2=b.LayerName2; |
| |
|
| | if nmb_of_data>1 |
| | a_0=image(:,:,color); |
| | else |
| | a_0=image(:,color); |
| | end |
| | nmb_of_labels=length(b2); |
| | z1=W1*a_0+b1; |
| | [a1,~]=fun_activation(z1); |
| |
|
| | z2=W2*a1+b2; |
| | if nmb_of_hidden_layers==1 |
| | [a2,~]=fun_softmax(z2); |
| | predicted_vector=a2; |
| | else |
| | W3=W.LayerName3; |
| | b3=b.LayerName3; |
| | nmb_of_labels=length(b3); |
| | [a2,~]=fun_activation(z2); |
| |
|
| | z3=W3*a2+b3; |
| | [a3,~]=fun_softmax(z3); |
| | predicted_vector=a3; |
| | end |
| | prediction=fun_predicted_vector_2_label(predicted_vector,nmb_of_labels); |
| | abs_label=prediction.label+(module-1)*nmb_of_labs_per_module; |
| | if nmb_of_data>1 |
| | batch_training_performance(:,:,module,subset,color)=[abs_label;prediction.distance]; |
| | else |
| | batch_training_performance(:,module,subset,color)=[abs_label;prediction.distance]; |
| | end |
| | end |
| | end |
| | end |
| | if nmb_of_data>1 |
| | batch_training_performance=permute(batch_training_performance,[1,3,4,5,2]); |
| | end |
| | end |