public void get_map_error_from_subsampling(float[,] sigma_next_layer)
 {//W transp*sigma_prev*f_derived(ul)
     float[,] upsampled_next = ConvFuncs.upsample(sigma_next_layer, outputwidth, outputheight);
     for (int j = 0; j < outputheight; j++)
     {
         for (int i = 0; i < outputwidth; i++)
         {
             error[i, j] = upsampled_next[i, j] * ActFuncs.f_act_sigma_deriv(non_activated_stage[i, j]);
         }
     }
 }
Exemplo n.º 2
0
 void deconvolution(float[,] input)
 {
     float[,] f = ConvFuncs.back_fold(input, weights, outputwidth, outputheight, w, h);
     for (int j = 0; j < outputheight; j++)
     {
         for (int i = 0; i < outputwidth; i++)
         {
             non_activated_stage[i, j] = f[i, j];
             output[i, j] = ActFuncs.f_act_sigma(f[i, j]);
             deriv_non_activated_stage[i, j] = ActFuncs.f_act_sigma_deriv(non_activated_stage[i, j]);
         }
     }
 }