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

📄 comparingsynapse.java

📁 一个纯java写的神经网络源代码
💻 JAVA
字号:
package org.joone.engine.learning;import java.util.Iterator;import org.joone.engine.*;import org.joone.io.*;import java.util.TreeSet;import org.joone.net.NetCheck;public class ComparingSynapse implements ComparingElement {    private ComparisonSynapse theComparisonSynapse;    private LinearLayer theLinearLayer;    private boolean enabled = true;    private boolean outputFull = false;    /**     * @label desired     */    private StreamInputSynapse desired;    private Monitor monitor;    private String name;        private static final long serialVersionUID = -8893181016305737666L;        public ComparingSynapse() {    }        public void fwdPut(Pattern pattern) {        if (!getTheLinearLayer().isRunning())            getTheLinearLayer().start();        getTheComparisonSynapse().fwdPut(pattern);    }        /**     * Insert the method's description here.     * Creation date: (03/08/2000 22.50.55)     * @return java.lang.String     */    public StreamInputSynapse getDesired() {        return desired;    }        /**     * getInputDimension method comment.     */    public int getInputDimension() {        return getTheComparisonSynapse().getInputDimension();    }        /**     * Insert the method's description here.     * Creation date: (03/08/2000 22.54.48)     * @return neural.engine.Monitor     */    public Monitor getMonitor() {        return monitor;    }        /**     * @return neural.engine.LinearLayer     * changed to public for Save As XML     */    public LinearLayer getTheLinearLayer() {        if (theLinearLayer == null) {            theLinearLayer = new LinearLayer();            theLinearLayer.setLayerName("Comparing LinearLayer");            if (monitor != null)                theLinearLayer.setMonitor(monitor);            theLinearLayer.setRows(1);            theLinearLayer.addInputSynapse(getTheComparisonSynapse());        }        return theLinearLayer;    }        /**     * @return neural.engine.TeacherSynapse     * changed to public for Save As XML     */    public ComparisonSynapse getTheComparisonSynapse() {        if (theComparisonSynapse == null) {            theComparisonSynapse = new ComparisonSynapse();            theComparisonSynapse.setName("Teacher Synapse");            if (monitor != null)                theComparisonSynapse.setMonitor(monitor);        }        return theComparisonSynapse;    }        public Pattern revGet() {        return null;    }        public boolean setDesired(StreamInputSynapse fn) {        desired = fn;        if (getTheComparisonSynapse().setDesired(fn)) {            if ((monitor != null) && (desired != null))                desired.setMonitor(monitor);            return true;        } else            return false;    }            public boolean addResultSynapse(OutputPatternListener listener) {        if (listener != null)            return getTheLinearLayer().addOutputSynapse(listener);        else            return false;    }        public void removeResultSynapse(OutputPatternListener listener) {        if (listener != null)            getTheLinearLayer().removeOutputSynapse(listener);    }        /**     * setInputDimension method.     */    public void setInputDimension(int newInputDimension) {        getTheComparisonSynapse().setInputDimension(newInputDimension);        getTheLinearLayer().setRows(newInputDimension * 2);    }        /**     * Data di creazione: (06/04/00 23.33.24)     * @param newMonitor neural.engine.Monitor     */    public void setMonitor(Monitor newMonitor) {        monitor = newMonitor;        if (monitor != null) {            getTheComparisonSynapse().setMonitor(newMonitor);            getTheLinearLayer().setMonitor(newMonitor);            if (desired != null)                desired.setMonitor(newMonitor);        }    }            public void stop() {        getTheLinearLayer().stop();    }        public String getName() {        return name;    }        public void setName(java.lang.String newName) {        name = newName;    }        /**     * Recall phase     * @param pattern double[] - pattern di input sul quale applicare la funzione di trasferimento     */    protected void forward(double[] pattern) {        /* Not used */    }        /**     * Insert the method's description here.     * Creation date: (23/09/2000 12.52.58)     */    protected void setArrays(int rows, int cols) {        /* Not used */    }        /**     * @param int rows - righe     * @param int cols - colonne     */    protected void setDimensions(int rows, int cols) {        /* Not used */    }        /**     * Training phase.     * @param pattern double[] - input pattern     */    protected void backward(double[] pattern) {        /* Not used */    }        /**     * Needed for Save as XML     */    public void setTheComparisonSynapse(ComparisonSynapse theComparisonSynapse) {        this.theComparisonSynapse = theComparisonSynapse;    }        /**     * Needed for Save as XML     */    public void setTheLinearLayer(LinearLayer newTheLinearLayer) {        this.theLinearLayer = newTheLinearLayer;    }        public void resetInput() {        getTheComparisonSynapse().resetInput();    }        public TreeSet check() {        // Prepare an empty set for check messages;        TreeSet checks = new TreeSet();                if (theLinearLayer != null) {            checks.addAll(setErrorSource(theLinearLayer.check()));        }                if (theComparisonSynapse != null) {            checks.addAll(setErrorSource(theComparisonSynapse.check()));        }                return checks;    }        /** Getter for property enabled.     * @return Value of property enabled.     *     */    public boolean isEnabled() {        return enabled;    }        /** Setter for property enabled.     * @param enabled New value of property enabled.     *     */    public void setEnabled(boolean enabled) {        this.enabled = enabled;    }        /** Getter for property outputFull.     * @return Value of property outputFull.     *     */    public boolean isOutputFull() {        return outputFull;    }        /** Setter for property outputFull.     * @param outputFull New value of property outputFull.     *     */    public void setOutputFull(boolean outputFull) {        this.outputFull = outputFull;    }        public void init() {        if (theComparisonSynapse != null) {            theComparisonSynapse.init();        }    }        // Changes the source of the errors generated from internal components    private TreeSet setErrorSource(TreeSet errors) {        if (!errors.isEmpty()) {            Iterator iter = errors.iterator();            while (iter.hasNext()) {                NetCheck nc = (NetCheck)iter.next();                if (!(nc.getSource() instanceof Monitor) &&                        !(nc.getSource() instanceof StreamInputSynapse) &&                        !(nc.getSource() instanceof StreamOutputSynapse))                    nc.setSource(this);            }        }        return errors;    }    }

⌨️ 快捷键说明

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