Esempio n. 1
0
  // it must write in the same format than readWeightMatrix from ReadFile class
  public void writeMatrices(WeightMatrix matrices) {
    Matrix W = matrices.getW();
    Matrix V = matrices.getV();
    wr.append("Matrix W:\n");
    for (int i = 0; i < W.getRow(); i++) {
      for (int j = 0; j < W.getColumn(); j++) {
        String valueStr = W.getValuePos(i, j).toString();
        valueStr = valueStr.replace(".", ",");
        wr.append(valueStr + ";"); // Siguiente celda
      }

      wr.append("\n"); // Salto de fila en excel
    }
    if (V != null) {
      wr.append("Matrix V:\n");
      for (int i = 0; i < V.getRow(); i++) {
        for (int j = 0; j < V.getColumn(); j++) {
          String valueStr = V.getValuePos(i, j).toString();
          valueStr = valueStr.replace(".", ",");
          wr.append(valueStr + ";");
        }
        wr.append("\n");
      }
    }
  }
Esempio n. 2
0
 public void printMatrixIntoCSV(PrintWriter wr, Matrix matrix) {
   for (int i = 0; i < matrix.getRow(); i++) {
     for (int j = 0; j < matrix.getColumn(); j++) {
       String valueStr = matrix.getValuePos(i, j).toString();
       valueStr = valueStr.replace(".", ",");
       wr.append(valueStr + ";"); // Siguiente celda
     }
     wr.append("\n"); // Salto de fila en excel
   }
 }
Esempio n. 3
0
  public void writeMatriz(Matrix W) {
    wr.append("Matrix W:\n");
    for (int i = 0; i < W.getRow(); i++) {
      for (int j = 0; j < W.getColumn(); j++) {
        String valueStr = W.getValuePos(i, j).toString();
        valueStr = valueStr.replace(".", ",");
        wr.append(valueStr + ";"); // Siguiente celda
      }

      wr.append("\n"); // Salto de fila en excel
    }
  }
Esempio n. 4
0
 public void printMatrixIntoFile(Matrix matrix) {
   for (int i = 0; i < matrix.getRow(); i++) {
     for (int j = 0; j < matrix.getColumn(); j++) {
       BigDecimal b = matrix.getValuePos(i, j);
       wr.append(b + ";");
       // String valueStr = matrix.getValuePos(i, j).toString();
       // valueStr = valueStr.replace(".", ",");
       // wr.append(valueStr+ ";"); //Siguiente celda
     }
     wr.append("\n"); // Salto de fila en excel
   }
 }
Esempio n. 5
0
  // pre: el fichero debe de existir y estar abierto e inicializado
  // Escribe en un fichero excel la información global obtenida en una iteración.
  // iteration: entero que identifica la iteración en la que estamos
  // Matrices resultantes de la iteración (con las que hemos calculado el error)
  // error: error ponderado de la iteración
  public void writeOneIterationInf(int iteration, BigDecimal error, Matrix W, Matrix V) {

    wr.append("Iteration: ;" + iteration + "\n");
    wr.append("Matriz W resultante: \n");
    for (int i = 0; i < W.getRow(); i++) {
      for (int j = 0; j < W.getColumn(); j++) {
        String valueStr = W.getValuePos(i, j).toString();
        valueStr = valueStr.replace(".", ",");
        wr.append(valueStr + ";"); // Siguiente celda
      }

      wr.append("\n"); // Salto de fila en excel
    }
    wr.append("Matriz V resultante: \n");
    for (int i = 0; i < V.getRow(); i++) {
      for (int j = 0; j < V.getColumn(); j++) {
        String valueStr = V.getValuePos(i, j).toString();
        valueStr = valueStr.replace(".", ",");
        wr.append(valueStr + ";");
      }
      wr.append("\n");
    }
    wr.append("Error ponderado: ;" + error + "\n\n");
  }
Esempio n. 6
0
  // Escribe la información correspondiente al entrenamiento de un patrón.
  // idPatron: identificador del patrón que estamos entrenando actualmente
  // W y V iniciales antes de la actualización
  // inputLayer: Vector que contiene las neuronas de la capa de entrada del patrón
  // hiddenLayer: Vector que contiene las neuronas de capa oculta del patrón
  // outputLayer: Vector que contiene las neuronas de capa de salida del patrón
  // desiredOutputLayer: Vector que contiene los VALORES que representan a las salidas deseadas
  // mDeltaOutput: Matriz que representa a los delta de la capa de salida
  // mDeltaHidden: Matriz que representa a los delta de la capa oculta
  // deltaW: Matriz que representa el incremento a añadir a la matriz W (multiplicado ya por el
  // coeficiente de aprendizaje)
  // deltaV: Matriz que representa el incremento a añadir a la matriz V
  public void writeInfPatron(
      int idPatron,
      Matrix W,
      Matrix V,
      Neuron[] inputLayer,
      BigDecimal[] desiredOutputLayer,
      Neuron[] hiddenLayer,
      OutputNeuron[] outputLayer,
      Matrix mDeltaOutput,
      Matrix mDeltaHidden,
      Matrix deltaW,
      Matrix deltaV) {

    wr.append("\nPatrón número :" + idPatron + "\n");
    wr.append("\nInputs: \n");
    for (Neuron i : inputLayer) {
      wr.append(i.getOutValue() + ";");
    }
    wr.append("\n Matriz W: \n");
    for (int i = 0; i < W.getRow(); i++) {
      for (int j = 0; j < W.getColumn(); j++) {
        String valueStr = W.getValuePos(i, j).toString();
        valueStr = valueStr.replace(".", ",");
        wr.append(valueStr + ";"); // Siguiente celda
      }

      wr.append("\n"); // Salto de fila en excel
    }
    wr.append("Matriz V: \n");
    for (int i = 0; i < V.getRow(); i++) {
      for (int j = 0; j < V.getColumn(); j++) {
        String valueStr = V.getValuePos(i, j).toString();
        valueStr = valueStr.replace(".", ",");
        wr.append(valueStr + ";");
      }
      wr.append("\n");
    }
    wr.append("\n Valores ocultas: \n");
    for (Neuron i : hiddenLayer) {
      wr.append(i.getOutValue().setScale(Manager.PRECISION, RoundingMode.HALF_UP) + ";");
    }
    wr.append("\n Valores salidas: \n");
    for (Neuron i : outputLayer) {
      wr.append(i.getOutValue().setScale(Manager.PRECISION, RoundingMode.HALF_UP) + ";");
    }
    wr.append("\n Salidas deseadas: \n");
    for (BigDecimal b : desiredOutputLayer) {
      wr.append(b + ";");
    }
    wr.append("\n DeltaE capa de salida: \n");
    for (int i = 0; i < mDeltaOutput.getRow(); i++) {
      for (int j = 0; j < mDeltaOutput.getColumn(); j++) {
        String valueStr = mDeltaOutput.getValuePos(i, j).toString();
        valueStr = valueStr.replace(".", ",");
        wr.append(valueStr + ";"); // Siguiente celda
      }

      wr.append("\n"); // Salto de fila en excel
    }
    wr.append("DeltaE capa oculta: ");
    for (int i = 0; i < mDeltaHidden.getRow(); i++) {
      for (int j = 0; j < mDeltaHidden.getColumn(); j++) {
        String valueStr = mDeltaHidden.getValuePos(i, j).toString();
        valueStr = valueStr.replace(".", ",");
        wr.append(valueStr + ";");
      }
      wr.append("\n");
    }

    wr.append("Delta W: \n");
    for (int i = 0; i < deltaW.getRow(); i++) {
      for (int j = 0; j < deltaW.getColumn(); j++) {
        String valueStr = deltaW.getValuePos(i, j).toString();
        valueStr = valueStr.replace(".", ",");
        wr.append(valueStr + ";"); // Siguiente celda
      }

      wr.append("\n"); // Salto de fila en excel
    }
    wr.append("Delta V:  ");
    for (int i = 0; i < deltaV.getRow(); i++) {
      for (int j = 0; j < deltaV.getColumn(); j++) {
        String valueStr = deltaV.getValuePos(i, j).toString();
        valueStr = valueStr.replace(".", ",");
        wr.append(valueStr + ";");
      }
      wr.append("\n");
    }
  }