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

📄 layer.java

📁 java neural networkin
💻 JAVA
字号:
/** * Layer * Copyright 2005 by Jeff Heaton(jeff@jeffheaton.com) * * Example program from Chapter 2 * Programming Neural Networks in Java * http://www.heatonresearch.com/articles/series/1/ * * This software is copyrighted. You may use it in programs * of your own, without restriction, but you may not * publish the source code without the author's permission. * For more information on distributing this code, please * visit: *    http://www.heatonresearch.com/hr_legal.php * * @author Jeff Heaton * @version 1.1 */public class Layer {  /**   * An array of neurons.   */  protected Neuron neuron[] = new Neuron[4];  /**   * The output of the neurons.   */  protected boolean output[] = new boolean[4];  /**   * The number of neurons in this layer. And because this is a   * single layer neural network, this is also the number of   * neurons in the network.   */  protected int neurons;  /**   * A constant to multiply against the threshold function.   * This is not used, and is set to 1.   */  public static final double lambda = 1.0;  /**   * The constructor. The weight matrix for the   * neurons must be passed in. Because this is   * a single layer network the weight array should   * always be perfectly square(i.e. 4x4). These   * weights are used to initialize the neurons.   *   * @param weights A 2d array that contains the weights between each   * neuron and the other neurons.   */  Layer(int weights[][])  {    neurons = weights[0].length;    neuron = new Neuron[neurons];    output = new boolean[neurons];    for ( int i=0;i<neurons;i++ )      neuron[i]=new Neuron(weights[i]);  }  /**   * The threshold method is used to determine if the neural   * network will fire for a given pattern. This threshold   * uses the hyperbolic tangent (tanh).   *   * @param k The product of the neuron weights and the input   * pattern.   * @return Whether to fire or not to fire.   */  public boolean threshold(int k)  {    double kk = k * lambda;    double a = Math.exp( kk );    double b = Math.exp( -kk );    double tanh = (a-b)/(a+b);    return(tanh>=0);  }  /**   * This method is called to actually run the neural network.   *   * @param pattern The input pattern to present to the neural network.   */  void activation(boolean pattern[])  {    int i,j;    for ( i=0;i<4;i++ ) {      neuron[i].activation = neuron[i].act(pattern);      output[i] = threshold(neuron[i].activation);    }  }}

⌨️ 快捷键说明

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