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]); } } }
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]); } } }