Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 人工智能投掷零点异常的训练_Java_Neural Network_Nullpointerexception_Artificial Intelligence_Neuroph - Fatal编程技术网

Java 人工智能投掷零点异常的训练

Java 人工智能投掷零点异常的训练,java,neural-network,nullpointerexception,artificial-intelligence,neuroph,Java,Neural Network,Nullpointerexception,Artificial Intelligence,Neuroph,我对人工智能非常感兴趣,想创建自己的人工智能,所以我看了一些视频,找到了一个很好的库。 对于我的第一个ai,它非常简单。我这样做是为了掌握这个库,以及它在将来如何处理更复杂的事情。这个人工智能要做的就是得到四个小数字的输入,如果四个输入都是1,那么输出只有1。(不要担心AI和AIType类)这是代码,如果我做错了什么,请告诉我,因为我已经在很多地方查找了,但找不到任何东西: AI aitest = new AI(AIType.FIRST_AI); DataSet ds = new

我对人工智能非常感兴趣,想创建自己的人工智能,所以我看了一些视频,找到了一个很好的库。 对于我的第一个ai,它非常简单。我这样做是为了掌握这个库,以及它在将来如何处理更复杂的事情。这个人工智能要做的就是得到四个小数字的输入,如果四个输入都是1,那么输出只有1。(不要担心AI和AIType类)这是代码,如果我做错了什么,请告诉我,因为我已经在很多地方查找了,但找不到任何东西:

    AI aitest = new AI(AIType.FIRST_AI);
    DataSet ds = new DataSet(4,1);
    ds.add(new double[]{0,0,0,0},new double[]{0});
    ds.add(new double[]{0,0,0,1},new double[]{0});
    ds.add(new double[]{0,0,1,0},new double[]{0});
    ds.add(new double[]{1,1,0,0},new double[]{0});
    ds.add(new double[]{1,0.1,1,3},new double[]{0});
    ds.add(new double[]{1,1,1,1},new double[]{1});
    ds.add(new double[]{1,1,1,1},new double[]{1});
    ds.add(new double[]{0,1,2,5},new double[]{0});
    
    Layer l = new Layer();
    InputLayer il = new InputLayer(4);
    aitest.getAI().getNN().setInputNeurons(il.getNeurons());
    for(int ignored :new int[]{1,2,3,4}){
        Neuron n = new Neuron();
        for(Neuron all: aitest.getAI().getNN().getInputNeurons()) {
            n.addInputConnection(all);
        }
        l.addNeuron(n);
    }

    aitest.getAI().getNN().addLayer(l);
    aitest.getAI().train(ds);
它在最后一行抛出一个NPE,并出现以下错误:

Exception in thread "main" java.lang.NullPointerException
at org.neuroph.core.NeuralNetwork.learn(NeuralNetwork.java:297)
at me.ai.aicore.SuperAI.train(SuperAI.java:31) // these last two lines just call the .learn method
at me.ai.Core.main(Core.java:38)
(有更多的错误行,但它们并不相关)

产生此错误的neuroph(神经网络类)中的行标记为:

      public void setWeights(double[] weights) {
    int i = 0;
    Iterator var3 = this.layers.iterator();

    while(var3.hasNext()) {
        Layer layer = (Layer)var3.next();
        Iterator var5 = layer.getNeurons().iterator();

        while(var5.hasNext()) {
            Neuron neuron = (Neuron)var5.next();
            // the line below is where the error comes from
            for(Iterator var7 = neuron.getInputConnections().iterator(); var7.hasNext(); ++i) {
                Connection conn = (Connection)var7.next();
                conn.getWeight().setValue(weights[i]);
            }
        }
    }

}
        
感谢所有的帮助


编辑:我添加了完整的stacktrace,但是除了第一个like之外的所有东西都是无用的,因为它只是调用方法的。顺便说一下,底部的代码块来自库。我更新了它以显示完整的方法

给我们更多的代码。什么是
i
以及您在哪里声明和初始化了它?显示完整的堆栈跟踪请更新帖子以显示更多信息
nullpoitnereException
仍然太多,堆栈跟踪只告诉我们它在哪一行。
neuron
null吗?neuron.getInputConnections()是否为空?
var7
null吗?我建议您打印出尽可能多的变量,以了解其中的值,从而了解哪些变量的行为不符合您的预期。