-1

こんにちは、誰かがエラーを手伝ってくれますか? 私は 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)

https://github.com/krenfro/fannjを使用しました

4

1 に答える 1

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()値だけであるため、ライブラリのバグに賭けています。

Fannの GitHub イシュー トラッカーにバグ レポートを投稿すると、ヘルプが得られる可能性が高くなります。

于 2016-10-07T19:27:37.917 に答える