package org.ea.javacnn.layers;
import org.ea.javacnn.data.BackPropResult;
import org.ea.javacnn.data.DataBlock;
import org.ea.javacnn.data.OutputDefinition;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* This layer will remove some random activations in order to
* defeat over-fitting.
*
* @author Daniel Persson (mailto.woden@gmail.com)
*/
public class DropoutLayer implements Layer,Serializable {
private int out_depth, out_sx, out_sy;
private DataBlock in_act, out_act;
private final double drop_prob = 0.5;
private boolean[] dropped;
public DropoutLayer(OutputDefinition def) {
// computed
this.out_sx = def.getOutX();
this.out_sy = def.getOutY();
this.out_depth = def.getDepth();
this.dropped = new boolean[this.out_sx*this.out_sy*this.out_depth];
}
@Override
public DataBlock forward(DataBlock db, boolean training) {
this.in_act = db;
DataBlock V2 = db.clone();
int N = db.getWeights().length;
if(training) {
// do dropout
for(int i=0;i getBackPropagationResult() {
return new ArrayList<>();
}
}
Ads help maintain this website.