| | |
| | | layer.output[out_i++] = scale*in[in_i++]; |
| | | } |
| | | softmax_array(layer.output + out_i - layer.classes, layer.classes, layer.output + out_i - layer.classes); |
| | | activate_array(layer.output+out_i, layer.coords, SIGMOID); |
| | | activate_array(in+in_i, layer.coords, SIGMOID); |
| | | for(j = 0; j < layer.coords; ++j){ |
| | | layer.output[out_i++] = mask*in[in_i++]; |
| | | } |
| | | //printf("%d\n", mask); |
| | | //for(j = 0; j < layer.classes+layer.coords; ++j) printf("%f ", layer.output[i*(layer.classes+layer.coords)+j]); |
| | | //printf ("\n"); |
| | | } |
| | | } |
| | | |
| | |
| | | delta[in_i++] = scale*layer.delta[out_i++]; |
| | | } |
| | | |
| | | gradient_array(layer.output + out_i, layer.coords, SIGMOID, layer.delta + out_i); |
| | | for(j = 0; j < layer.coords; ++j){ |
| | | delta[in_i++] = layer.delta[out_i++]; |
| | | } |
| | | gradient_array(in + in_i - layer.coords, layer.coords, SIGMOID, layer.delta + out_i - layer.coords); |
| | | if(layer.rescore) delta[in_i-layer.coords-layer.classes-layer.rescore] = latent_delta; |
| | | } |
| | | } |