Есть класс Перcептрон , для обучения использую данные из массива patterns и answers которые ввожу в ручную , все отлично работает. При считывании из файла Exel и добавлении в массив он начинает не правильно работать. Ругается что подставляемая мной точка не принадлежит прямой.
import java.io.IOException;
public class Perceptron {
Reader rd = new Reader();
double[][] patterns;
double[] answers;
double[] enters;
double[] hidden;
double outer;
double[][] wEH;
double[] wHO;
//double[][] patterns = {{-23,17},{-19,-34},{-42,-3},{-43,34},{-45,-21},
{41,-14},{27,-18},{19,34}};
//int[] answers = {0,1,1,0,1,0,0,0};
Perceptron(double[][] patterns, double[] answers ) throws IOException {
this.patterns = patterns;
this.answers = answers;
enters = new double[patterns[0].length];
hidden = new double[3];
wEH = new double[enters.length][hidden.length];
wHO = new double[hidden.length];
initWeights();
study();
double[][] input ={ {-43,-45}};
for (int p = 0; p < input.length; p++) {
for (int i = 0; i < enters.length; i++)
enters[i] = input[p][i];
countOuter();
if (outer==1){
System.out.println("Точка принадлежит прямой");
}
else{
System.out.println("Точка не принадлежит прямой");
}
}
}
public void initWeights() {
for (int i = 0; i < enters.length; i++) {
for (int j = 0; j < wEH.length; j++) {
wEH[i][j] = Math.random() * 0.2 + 0.1;
}
}
for (int i = 0; i < wHO.length; i++)
wHO[i] = Math.random() * 0.2 + 0.1;
}
public void countOuter() {
for (int i = 0; i < hidden.length; i++) {
hidden[i] = 0;
for (int j = 0; j < enters.length; j++) {
hidden[i] += enters[j] * wEH[j][i];
}
if (hidden[i] > 0.5) hidden[i] = 1;
else hidden[i] = 0;
}
outer = 0;
for (int i = 0; i < hidden.length; i++) {
outer += hidden[i] * wHO[i];
}
if (outer > 0.5) outer = 1;
else outer = 0;
}
public void study() {
double[] err = new double[hidden.length];
double gError = 0;
do {
gError = 0;
for (int p = 0; p < patterns.length; p++) {
for (int i = 0; i < enters.length; i++)
enters[i] = patterns[p][i];
countOuter();
double lErr = answers[p] - outer;
gError += Math.abs(lErr);
for (int i = 0; i < hidden.length; i++)
err[i] = lErr * wHO[i];
for (int i = 0; i < enters.length; i++) {
for (int j = 0; j < hidden.length; j++) {
wEH[i][j] += 0.1 * err[j] * enters[i];
}
}
for (int i = 0; i < hidden.length; i++)
wHO[i] += 0.1 * lErr * hidden[i];
}
} while (gError != 0);
}
}
После считывания заменяю в классе персептрон две строчки с объявлением массивов на
double[][] patterns = reader.getInput();
double[] answers = reader.getOutputs();
Виртуальный выделенный сервер (VDS) становится отличным выбором
Selenium я уже использовал, но мне не совсем подходит то, что я вижу все эти промежуточные страницы и тот факт, что это настолько же медленно, если...
Подскажите пожалуйста, Пытаюсь сохранить данные с фонового процесса в базу данных, и при создании базы данных выдаёт ошибкуError:(34, 41) error: incompatible...
Добрый день! Подскажите, как в android Studio правильно написать правило для исключения из обфускации всего пакета с классами?