/** * Reconstructs the visible INPUT. * A reconstruction is a propdown of the reconstructed hidden input. * @param training true or false * @return the reconstruction of the visible input */ @Override public INDArray activate(boolean training) { if (training && conf.getLayer().getDropOut() > 0.0) { Dropout.applyDropout(input, conf.getLayer().getDropOut()); } //reconstructed: propUp ----> hidden propDown to transform INDArray propUp = propUp(input, training); return propUp; }
protected void applyDropOutIfNecessary(boolean training) { if (layerConf().getDropOut() > 0 && !conf.isUseDropConnect() && training && !dropoutApplied) { if (Nd4j.getWorkspaceManager().checkIfWorkspaceExists(ComputationGraph.workspaceExternal)) { try (MemoryWorkspace ws = Nd4j.getWorkspaceManager() .getWorkspaceForCurrentThread(ComputationGraph.workspaceExternal) .notifyScopeBorrowed()) { input = input.isView() ? input.dup() : input.unsafeDuplication(); } } else input = input.isView() ? input.dup() : input.unsafeDuplication(); Dropout.applyDropout(input, layerConf().getDropOut()); dropoutApplied = true; } }
@Override public INDArray activate(boolean training) { if (training && conf.getLayer().getDropOut() > 0) { Dropout.applyDropout(input, conf.getLayer().getDropOut());