Fannj: неверный доступ к памяти

Привет, может кто-нибудь помочь мне с ошибкой, я использовал Fannj для создания нейронной сети. Fannj - это Java-привязки к FANN (библиотека быстрой искусственной нейронной сети C.)

Мой код:

Layer l1 = new Layer();
l1.create(1, ActivationFunction.FANN_SIGMOID_SYMMETRIC);
Layer l2 = new Layer();
l2.create(1, ActivationFunction.FANN_SIGMOID_SYMMETRIC);
Layer l3 = new Layer();
l3.create(1, ActivationFunction.FANN_SIGMOID_SYMMETRIC);
List<Layer> list = new ArrayList<Layer>();
list.add(l1);
list.add(l2);
list.add(l3);
Fann fannT = new Fann( list);

И ошибка:

Exception in thread "main" java.lang.Error: Invalid memory access
at com.googlecode.fannj.Fann.fann_create_standard_array(Native Method)
at com.googlecode.fannj.Fann.<init>(Fann.java:92)
at m.nieco.suns.zadanie01.Main.main(Main.java:34)

Я использовал https://github.com/krenfro/fannj

1 ответ

Вот код для конструктора, который вы вызываете (из GitHub):

public Fann(List<Layer> layers) {
    if (layers == null)
        throw new IllegalArgumentException("layers == null");
    if (layers.isEmpty())
        throw new IllegalArgumentException("layers is empty");

    int[] neurons = new int[layers.size()];
    for (int x = 0; x < neurons.length; x++)
        neurons[x] = layers.get(x).size();

    ann = fann_create_standard_array(neurons.length, neurons);
    addLayers(layers);
}

Ошибка возникает при вызове нативного метода в

ann = fann_create_standard_array(neurons.length, neurons);

Поскольку, похоже, нет проблемы со списком аргументов, и на данный момент единственное, что он использует, это размер списка и каждого элемента списка. getSize() значение, моя ставка на ошибку в библиотеке.

Скорее всего, вы получите помощь, если опубликуете сообщение об ошибке на трекере GitHub для Fann.

Другие вопросы по тегам