你可以帮我解决这个错误,我用Fannj创建了神经网络。 Fannj是与FANN(快速人工神经网络C库)的Java绑定。
我的代码:
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)
答案 0 :(得分: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()
值,我的赌注是在一个bug中图书馆。
如果您在GitHub issue tracker for Fann发布错误报告,则更有可能获得帮助。