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

📄 defaultnetwork.java

📁 Kohonen network nural, framework for java developer
💻 JAVA
字号:
/**
* Copyright (c) 2006, Seweryn Habdank-Wojewodzki
* Copyright (c) 2006, Janusz Rybarski
*
* All rights reserved.
* 
* Redistribution and use in source and binary forms,
* with or without modification, are permitted provided
* that the following conditions are met:
*
* Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* following disclaimer.
*
* Redistributions in binary form must reproduce the
* above copyright notice, this list of conditions
* and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS
* AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
* WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*/

package network;

import java.io.FileWriter;
import java.io.PrintWriter;
import topology.TopologyModel;
import java.util.ArrayList;
import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;

/**
 * Default Network Model
 * 
 * @author Janusz Rybarski
 * e-mail: janusz.rybarski AT ae DOT krakow DOT pl
 * @author Seweryn Habdank-Wojewodzki
 * e-mail: habdank AT megapolis DOT pl
 * @version 1.0 2006/05/02
 */

public class DefaultNetwork implements NetworkModel{
    
    /**
     * Array of neurons
     */
    private NeuronModel[] neuronList;
    
    /**
     * Reference to topology
     */
    private TopologyModel topology;
    
    /**
     * Create network with specified topology, random weight from
     * definied interval and number of inputs
     * @param weightNumber number of weights (inputs)
     * @param maxWeight array with specified weight
     * @param topology Topology
     */
    public DefaultNetwork(int weightNumber, double[] maxWeight, TopologyModel topology) {
        this.topology = topology;
        int numberOfNeurons = topology.getNumbersOfNeurons();
        neuronList = new KohonenNeuron[numberOfNeurons];
        for (int i=0; i<numberOfNeurons; i++){
            neuronList[i] = new KohonenNeuron(weightNumber,maxWeight,null);
        }
    }
    
    /**
     * Create network with specified topology and parameters get from 
     * specified file
     * @param fileName File Name
     * @param topology Topology
     */
    public DefaultNetwork(String fileName, TopologyModel topology){
        File file = new File(fileName);
        int neuronNumber = topology.getNumbersOfNeurons();
        neuronList = new KohonenNeuron[neuronNumber];
        String[] tempTable;
        double[] tempList;
        int rows = 0;
        try{
            FileReader fr = new FileReader(file);
            BufferedReader input = new BufferedReader(fr);
            String line;
            System.out.println("Data from: \"" + fileName + "\" are importing...");
            while((line = input.readLine()) != null){
                tempTable = line.split("\t");
                int tableLenght = tempTable.length;
                tempList = new double[tableLenght];
                for(int i = 0; i< tableLenght; i++){
                    tempList[i] = Double.valueOf(tempTable[i]);
                }
                neuronList[rows] = new KohonenNeuron(tempList,null);
                rows ++;
             }
            fr.close();
            System.out.println(rows + " rows was imported");
        }catch(IOException e){
            System.out.println("File can not be read!. Error: " + e);
        }
        this.topology = topology;
    }
        
    /**
     * 
     * Return specified by number neuron
     * 
     * @param neuronNumber neuron number
     * @return Neuorn
     */
    public NeuronModel getNeuron(int neuronNumber) {
        return neuronList[neuronNumber];
    }
    
    /**
     * Return number of neuorns
     * @return nmber of neurons
     */
    public int getNumbersOfNeurons() {
        return neuronList.length;
    }
    
    /**
     * Get topology reference
     * @return Topology
     */
    public TopologyModel getTopology() {
        return topology;
    }
    
    /**
     * Set topology
     * @param topology Topology
     */
    public void setTopology(TopologyModel topology){
        this.topology = topology;
    }
    
    /**
     * Returns a string representation of the Coords object
     * @return Returns a string representation of the Coords object
     */
    public String toString(){
        String text = "";
        int networkSize = neuronList.length;
        for (int i=0; i< networkSize; i++ ){
            text +="Neuron number "+ (i + 1) + ": " +  neuronList[i];
            if(i < networkSize-1){
                text += "\n";
            }
        }
        return text;
    }
    
    /**
     * Save network into file
     * @param fileName File Name
     */
    public void networkToFile(String fileName){
        File outFile =  new File(fileName);
        String weightList;
        double[] weight;
        try{
        FileWriter fw = new FileWriter(outFile);
        PrintWriter pw = new PrintWriter(fw);
        int networkSize = neuronList.length;
        for (int i=0; i< networkSize; i++ ){
            weightList ="";
            weight = neuronList[i].getWeight();
            for (int j=0; j< weight.length; j++){
                weightList += weight[j];
                if (j < weight.length -1){
                    weightList += "\t";
                }
            }
            pw.println(weightList);
        }
        fw.close();
        }catch(IOException e){
            System.out.println("File can not be read!. Error: " + e);
        }
    }
}

⌨️ 快捷键说明

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