bufferedsynapse.java

来自「一个纯java写的神经网络源代码」· Java 代码 · 共 82 行

JAVA
82
字号
package org.joone.engine;/** This class implements a synapse that permits to have asynchronous * methods to write output patterns. * The <CODE>fwdPut</CODE> method, infact, uses a FIFO structure to * store the patterns and to separate the writing from the reading layers. */public class BufferedSynapse extends Synapse {    private transient Fifo fifo;        private static final long serialVersionUID = -8067243400677466498L;        /** BufferedOutputSynapse constructor.     */    public BufferedSynapse() {        super();    }    /**     */    protected void backward(double[] pattern) {        // Not used    }    /**     */    protected void forward(double[] pattern) {        outs = pattern;    }    /** Return the first element of the FIFO structure, if exists.     * @return Pattern     */    public Pattern fwdGet() {        Pattern pat;        synchronized (getFwdLock()) {            while (items == 0) {                try {                    fwdLock.wait();                } catch (InterruptedException e) {                    return null;                }            }            pat = (Pattern)fifo.pop();            items = fifo.size();            fwdLock.notifyAll();            return pat;        }    }    /** Writes the input pattern into the FIFO structure.     * The layer that calls this methos will wait only     * the time needed to put the input data into the pipeline.     * @param pattern The Pattern object to write in the FIFO structure     */    public synchronized void fwdPut(Pattern pattern) {        m_pattern = pattern;        inps = pattern.getArray();        forward(inps);        m_pattern.setArray(outs);        fifo.push(m_pattern);        items = fifo.size();        notifyAll();    }    /** Not used     * @return Pattern     */    public synchronized Pattern revGet() {        // Not used        return null;    }    /** Not used     * @param pattern     */    public synchronized void revPut(Pattern pattern) {        // Not used    }    /**     * setArrays method comment.     */    protected void setArrays(int rows, int cols) {}    /**     * setDimensions method comment.     */    protected void setDimensions(int rows, int cols) {}}

⌨️ 快捷键说明

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