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

📄 memoryoutputsynapse.java

📁 一个纯java写的神经网络源代码
💻 JAVA
字号:
/* * MemoryOutputSynapse.java * * Created on 6 maggio 2002, 21.45 */package org.joone.io;import org.joone.engine.*;import java.util.Vector;import org.joone.log.*;/** * * @author  pmarrone */public class MemoryOutputSynapse extends StreamOutputSynapse {    static final long serialVersionUID = 1342649629529016627L;        /**     * Logger     * */    private static final ILogger log = LoggerFactory.getLogger(Synapse.class);    private Fifo patterns;    private boolean zeroPattern = false;            /** Creates a new instance of MemoryOutputSynapse */    public MemoryOutputSynapse() {    }        /**     * Returns all the patterns received in the last cycle     * @return a vector containing the output patterns     */    private synchronized Vector getPatterns() {        if (patterns == null)            patterns = new Fifo();        return (Vector)patterns.clone();    }        /**     * This method waits for the zeroPattern and returns the last valid pattern received     *     * @return the last pattern received     */    public synchronized double[] getLastPattern() {        Pattern pOut;        // Wait until the 'stop pattern' is received        while (!zeroPattern) {            try {                wait();            } catch (InterruptedException e) { }        }        int size = patterns.size();        zeroPattern = false;        if (size > 0) {            pOut = (Pattern)patterns.elementAt(size - 1);            return pOut.getArray();        }        else            return null;    }            /**     * Waits for the next pattern and returns it     *     * @return the next pattern     */    public synchronized double[] getNextPattern() {        while (getPatterns().isEmpty()) {            try {                wait();            } catch (InterruptedException e) { }        }        Pattern pOut = (Pattern)patterns.pop();        return pOut.getArray();    }        /**     * Waits for the stopPattern and then returns all the patterns received in     * the last cycle     *     * @return all the patterns received in the last cycle     */    public synchronized Vector getAllPatterns() {        getLastPattern();        return getPatterns();    }        /** Custom Synapses need to implement at least this method.  The custom synapse should write the pattern out to the     * appropriate media.  All patterns including the ending pattern with pattern.getCount()=-1 will be passed to this method so that     * custom output synapses can perform final processing.     *     */    public synchronized void write(Pattern pattern) {        count = pattern.getCount();        if (count == 1) {            patterns = new Fifo();        }        if ( count > -1)  // If we still going through patterns then simply add them to the memory buffer        {            patterns.push(pattern);            zeroPattern = false;        }        else            zeroPattern = true;        notifyAll();    }    }

⌨️ 快捷键说明

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