Package com.greentea.relaxation.jnmf.model

Examples of com.greentea.relaxation.jnmf.model.Network


   private void refreshTable()
   {
      GuiUtils.removeAllRaws(coeficientsTable);

      Network network = getLearningAlgorithm().getNetwork();
      Metadata metadata = getLearningAlgorithm().getLearningData().getMetadata();

      if (network.getLayers().size() > 0)
      {
         factorsScrollPane.setVisible(true);
         componentIsNotEnabledPanel.setVisible(false);

         int outputNeuronsCount = network.getLayers().getLast().getNeurons().size();

         if (this.outputNeuronsCount == null || this.outputNeuronsCount != outputNeuronsCount)
         {
            List<Object> columnNames = new ArrayList<Object>();
            List<ColumnInfo> outputColumns = metadata.resolveColumns(VariableType.OUT);

            columnNames.add(Localizer.getString(StringId.INPUT));

            List<String> dataOutputColumnNames = new ArrayList<String>();
            for (ColumnInfo outputColumn : outputColumns)
            {
               if (outputColumn.getDataType().equals(DataType.Category))
               {
                  for (String value : outputColumn.getValuesOfCategory())
                  {
                     dataOutputColumnNames.add(outputColumn.getName() + " - " + value);
                  }
               }
               else
               {
                  dataOutputColumnNames.add(outputColumn.getName());
               }
            }
            columnNames.addAll(dataOutputColumnNames);

            columnNames.add(Localizer.getString(StringId.AVERAGE));
            for (String dataOutputColumnName : dataOutputColumnNames)
            {
               columnNames.add(Localizer.getString(StringId.SELF_DESCRIPTIVENESS_SHORT) +
                       dataOutputColumnName);
            }

            columnNames.add(Localizer.getString(StringId.SELF_DESCRIPTIVENESS));
            columnNames.add("|" + Localizer.getString(StringId.SELF_DESCRIPTIVENESS) + "|");

            coeficientsTableModel.setColumnIdentifiers(columnNames.toArray());
            coeficientsTable.getColumnModel().getColumn(0).setMinWidth(120);

            GuiUtils.createDoubleComparatorForAllColumns(coeficientsTable);
            GuiUtils.setCellRendererForAllColumns(coeficientsTable, coloredTableRenderer);

            this.rowSorter = coeficientsTable.getRowSorter();
            this.outputNeuronsCount = outputNeuronsCount;
         }

         List<Vector> rows = new ArrayList<Vector>();
         double averageMin = Integer.MAX_VALUE;
         double averageMax = Integer.MIN_VALUE;

         List<ColumnInfo> inputColumns = metadata.resolveColumns(VariableType.IN);
         for (int j = 0; j < inputColumns.size(); ++j)
         {
            Vector row = new Vector();
            row.add(inputColumns.get(j).getName());

            double sum = 0;
            for (int i = 0; i < outputNeuronsCount; ++i)
            {
               Neuron neuron = network.getLayers().getLast().getNeurons().get(i);

               double w = neuron.getInputSynapses().get(j).getWeight();
               sum += w;

               row.add(JNMFMathUtils.roundDouble4(w));
View Full Code Here


      thread.start();
   }

   public void startLearning()
   {
      Network network = builder.getNetwork();

      startLearningTimer();
      build();

      setExecutionStatus(LearningStatus.InProgress);
      beforeStartExecution();

      singalStartExecution();

      network.startExecution();
      stopLearningTimer();

      singalFinishExecution();
   }
View Full Code Here

         return null;
      }

      NetworkTestResult res = new NetworkTestResult();

      Network network = builder.getNetwork();
      network.setLearningEnabled(false);

      double averageError = 0;

      int totalNotGuessedClasses = 0;
      int[] notGuessedClasses = new int[data.getOutputsCount()];

      for (int i = 0; i < data.size(); ++i)
      {
         Sample pair = data.get(i);

         network.feedforwardStep(pair.getInput());
         DoubleList networkResult = network.getResult();
         DoubleList realResult = pair.getOutput();

         double error = JNMFMathUtils.distance(networkResult, realResult);
         averageError += error;

         if (data.isSplitedOnClasses())
         {
            int guessedClass = JNMFMathUtils.indexOfMaxElement(networkResult);
            int realClass = JNMFMathUtils.indexOfMaxElement(realResult);

            if (guessedClass != realClass)
            {
               totalNotGuessedClasses++;
               notGuessedClasses[realClass]++;
            }
         }
      }

      averageError /= data.size();
      res.averageError = averageError;

      if (data.isSplitedOnClasses())
      {
         DoubleList notGuessedPersentByClasses = new ArrayDoubleList();
         for (int i = 0; i < data.getOutputsCount(); ++i)
         {
            double error = (double) notGuessedClasses[i] / (double) data.calcCountOfItems(i);

            if (Double.isNaN(error))
            {
               error = 0;
            }

            notGuessedPersentByClasses.add(error);
         }

         res.totalNotGuessedClassesPercent = (double) totalNotGuessedClasses / (double) data.size();
         res.notGuessedClassesPercents = notGuessedPersentByClasses;
      }

      network.setLearningEnabled(true);
      return res;
   }
View Full Code Here

      cancelLearningIfDataWasChanged();
   }

   private void cancelLearningIfDataWasChanged()
   {
      Network network = learningAlgorithm.getNetwork();
      if (network.getLayers().size() > 0)
      {
         if (network.getInputsCount() != learningAlgorithm.getLearningData().getInputsCount() ||
                 network.getOutputsCount() != learningAlgorithm.getLearningData().getOutputsCount())
         {
            cancelLearning();
         }
      }
   }
View Full Code Here

      List<Vector<Object>> contentRows = new ArrayList<Vector<Object>>();

      int sourceNeuronkIndex = 0;

      Network network = getLearningAlgorithm().getNetwork();

      synchronized (network)
      {
         for (
                 int sourceLayerIndex = 0;
                 sourceLayerIndex < network.getLayers().size(); ++sourceLayerIndex)
         {
            Layer sourceLayer = network.getLayers().get(sourceLayerIndex);

            for (int i = 0; i < sourceLayer.getNeurons().size(); ++i)
            {
               Neuron sourceNeuron = sourceLayer.getNeurons().get(i);
               String layerString = (i == 0) ? "" + sourceLayerIndex : emptyString;
               String neuronString = "" + sourceNeuronkIndex;

               Color layerColor = (sourceLayerIndex % 2 == 0) ? CellColor.EvenClass.getColor() :
                       CellColor.OddClass.getColor();
               Color neuronColor = CellColor.DefaultCell.getColor();
               row1Colors.add(layerColor);
               row2Colors.add(neuronColor);

               layersRow1.add(layerString);
               neuronsRow2.add(neuronString);

               Vector<Object> contentRow = new Vector<Object>();
               contentRow.add(layerString);
               contentRow.add(neuronString);

               List<Color> rowColors = new ArrayList<Color>();
               rowColors.add(layerColor);
               rowColors.add(neuronColor);

               for (
                       int destLayerIndex = 0;
                       destLayerIndex < network.getLayers().size(); ++destLayerIndex)
               {
                  Layer destLayer = network.getLayers().get(destLayerIndex);
                  for (Neuron destNeuron : destLayer.getNeurons())
                  {
                     double w = 0.0;

                     Color connectionColor = CellColor.DefaultCell.getColor();
View Full Code Here

TOP

Related Classes of com.greentea.relaxation.jnmf.model.Network

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.