首页 > 解决方案 > ND4J:为什么即使指定相同的种子,随机数也会不同?

问题描述

当给出固定种子时,我想生成相同的随机数发送。为此,我从nd4j文档中找到了一些类。但生成的随机数不同。可能是什么原因以及如何实现与 java 产生的默认随机生成器相同的随机数集?

        java.util.Random origRand = new java.util.Random();
        org.nd4j.linalg.api.rng.DefaultRandom nd4jRand = Nd4j.getRandom();
        org.nd4j.linalg.api.rng.DefaultRandom nd4jRand2 = new DefaultRandom();

        origRand.setSeed(givenSeed);
        nd4jRand.setSeed(givenSeed);
        nd4jRand2.setSeed(givenSeed);

        System.out.println(origRand.nextFloat()+"\t"+origRand2.nextFloat()+"\t"+nd4jRand.nextFloat()+"\t"+nd4jRand2.nextFloat());

//output:  0.73043025   0.3941323   0.7713206

标签: dl4jnd4j

解决方案


没有办法生成与 Java RNG 返回的数字相同的数字。Nd4j 和 Java 使用不同的算法生成随机数。


推荐阅读