FANNJ сбой при создании ANN, учитывая список

Конструктор FANNJ принимает способ дать список слоев, но когда я пытаюсь построить простой ANN с 2 слоями, компилятор падает

Layer lhidden1 = new Layer();
lhidden1.create(num_neurons_hidden, ActivationFunction.FANN_SIGMOID_SYMMETRIC_STEPWISE);
Layer loutput = new Layer();
loutput.create(num_neurons_output, ActivationFunction.FANN_SIGMOID_STEPWISE);
List<Layer> list = new ArrayList<Layer>();
list.add(lhidden1);
list.add(loutput);
fann = new Fann(list);

Программа останавливается по команде "fann = new Fann (list)". Похоже, это связано с "fann_create_sparse_array", который указан как "проблемный кадр":

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGFPE (0x8) at pc=0x00007f2f7b3434c6, pid=6926, tid=0x00007f2f992ed700
#
# JRE version: OpenJDK Runtime Environment (8.0_131-b11) (build 1.8.0_131-8u131-b11-1~bpo8+1-b11)
# Java VM: OpenJDK 64-Bit Server VM (25.131-b11 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libfann.so+0x54c6]  fann_create_sparse_array+0x2ca
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

Я проверил ulimit, но речь идет только о конфигурации ошибок дампа, похоже, что это не решает никаких проблем, только позволяет узнать больше о сбое. Кто-нибудь знает как это решить?

1 ответ

Решение

Просто сообщите о решении: метод create должен быть доступен статическим способом, поэтому способ его решения должен быть следующим:

List<Layer> list = new ArrayList<Layer>();
list.add(Layer.create(num_neurons_hidden, ActivationFunction.FANN_SIGMOID_SYMMETRIC_STEPWISE));
list.add(Layer.create(num_neurons_output, ActivationFunction.FANN_SIGMOID_STEPWISE));
Fann fann = new Fann(list);
Другие вопросы по тегам