我正在用Java创建一个神经网络,需要创建一个最初生成随机权重的方法.
我需要创建一个函数,它返回-1和1之间的随机double值,但不确定执行此操作的逻辑,因此任何帮助都将是最受欢迎的.
Lou*_*man 10
您可以使用Random类的nextDouble()方法.
Random rng = new Random();
// to get a double between -1 and 1
return rng.nextDouble() * 2 - 1; // rng.nextDouble() is between 0 and 1
Run Code Online (Sandbox Code Playgroud)
Math.random()将为您提供0到1之间的随机双精度.您可以将该结果乘以2,并在-1和1之间减去1作为随机双精度.
或者,您可以将相同的转换应用于对nextDouble()方法的调用java.util.Random,但这需要一个显式实例,Random而后者则在幕后完成Math.random().