public void ExecuteTest() { int length = 65535 * 13; Shape shape = Shape.Vector(length); OverflowCheckedTensor v1 = new OverflowCheckedTensor(shape); for (decimal prob = 0; prob <= 1; prob += 0.05m) { BinaryRandom ope = new BinaryRandom(shape, new Random(1234), (float)prob); ope.Execute(v1); float[] y = v1.State; Assert.AreEqual((float)prob, y.Average(), 1e-3f); } }
public void SpeedTest() { int length = 65535 * 16; Shape shape = Shape.Vector(length); OverflowCheckedTensor v1 = new OverflowCheckedTensor(shape); BinaryRandom ope = new BinaryRandom(shape, new Random(1234), 0.25f); Stopwatch sw = new Stopwatch(); sw.Start(); ope.Execute(v1); ope.Execute(v1); ope.Execute(v1); ope.Execute(v1); sw.Stop(); Console.WriteLine($"{sw.ElapsedMilliseconds / 4} msec"); }
/// <summary>コンストラクタ</summary> public Binary(Tensor tensor, Random random, float prob) : base(tensor) { this.generator = new BinaryRandom(tensor.Shape, random, prob); }