⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 learningswitch.java

📁 一个纯java写的神经网络源代码
💻 JAVA
字号:
/* * LearningSwitch.java * * Created on 30 aprile 2002, 16.10 */package org.joone.util;import org.joone.engine.*;import org.joone.io.*;import org.joone.net.NetCheck;import java.util.TreeSet;/** * This class is useful to switch the input data set of a neural network * from a training set to a validation set depending on the 'validation' * parameter contained in the Monitor object. * Very useful during a training phase to test the generalization capacity * of the neural network with a validation data set never seen before. * * @author  pmarrone */public class LearningSwitch extends InputSwitchSynapse {        private StreamInputSynapse trainingSet;    private StreamInputSynapse validationSet;    private boolean validation = false;        private static final long serialVersionUID = -2339515807277374407L;        /******* Not more used.     * They are here only to maintain the compatibility with the old     * serialized classes.     * Use instead the patterns/validationPatterns parameters of the     * Monitor object.     ********/    private int validationPatterns; // Not more used    private int trainingPatterns;   // Not more used        /** Creates a new instance of LearningSwitch */    public LearningSwitch() {        super();    }        public synchronized boolean addTrainingSet(StreamInputSynapse tSet) {        if (trainingSet != null)            return false;//            super.removeInputSynapse(trainingSet.getName());        if (super.addInputSynapse(tSet)) {            trainingSet = tSet;            // The training set is the default input data set            super.setDefaultSynapse(trainingSet);            super.reset();            validation = false;            return true;        } else            return false;    }        public synchronized boolean addValidationSet(StreamInputSynapse vSet) {        if (validationSet != null)            return false;//            super.removeInputSynapse(validationSet.getName());        if (super.addInputSynapse(vSet)) {            validationSet = vSet;            return true;        } else            return false;    }        public synchronized void removeTrainingSet() {        if (trainingSet != null) {            super.removeInputSynapse(trainingSet.getName());            trainingSet = null;        }    }        public synchronized void removeValidationSet() {        if (validationSet != null) {            super.removeInputSynapse(validationSet.getName());            validationSet = null;        }    }        /** Connects the right input synapse depending on the     * Monitor's 'validation' parameter     * @return neural.engine.Pattern     */    public Pattern fwdGet() {        if (getMonitor().isValidation() && !getMonitor().isTrainingDataForValidation())            super.setActiveSynapse(validationSet);        else            super.setActiveSynapse(trainingSet);        return super.fwdGet();    }        /** Connects the right input synapse depending on the     * Monitor's 'validation' parameter. Added to be     * compatible with the InputConnector class.     * @return neural.engine.Pattern     */    public Pattern fwdGet(InputConnector conn) {        /** Connects the right input synapse depending on the         * Monitor's 'validation' parameter         * @return neural.engine.Pattern         */        if (getMonitor().isValidation() && !getMonitor().isTrainingDataForValidation())            super.setActiveSynapse(validationSet);        else            super.setActiveSynapse(trainingSet);        return super.fwdGet(conn);    }        public java.util.TreeSet check() {        TreeSet checks = super.check();        // Check that the first row is greater than 0.        if (trainingSet == null) {            checks.add(new NetCheck(NetCheck.FATAL, "Training set parameter not set", this));        }        if (validationSet == null) {            checks.add(new NetCheck(NetCheck.FATAL, "Validation set parameter not set", this));        }        return checks;    }        /**     * Getter for property trainingSet.     * Added for XML serialization     * @return Value of property trainingSet.     */    public org.joone.io.StreamInputSynapse getTrainingSet() {        return trainingSet;    }        /**     * Setter for property trainingSet.     * Added for XML serialization     * @param trainingSet New value of property trainingSet.     */    public void setTrainingSet(org.joone.io.StreamInputSynapse trainingSet) {        this.trainingSet = trainingSet;    }        /**     * Getter for property validationSet.     * Added for XML serialization     * @return Value of property validationSet.     */    public org.joone.io.StreamInputSynapse getValidationSet() {        return validationSet;    }        /**     * Setter for property validationSet.     * Added for XML serialization     * @param validationSet New value of property validationSet.     */    public void setValidationSet(org.joone.io.StreamInputSynapse validationSet) {        this.validationSet = validationSet;    }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -