bool TestRandomImage(bool generateImage = false) { int random = Random.Range(0, (int)testImages.imageCount); Tensor input = new Tensor(1, 0, 28 * 28, 1); for (int j = 0; j < testImages.pixelValueArrayOffset; j++) { input[0, 0, j, 0] = testImages.pixelValueArray[random * testImages.pixelValueArrayOffset + j]; //if (j % 28 == 0) //{ // s += '\n'; //} //s += testImages.pixelValueArray[random * testImages.pixelValueArrayOffset + j] < 0.01 ? '_' : '#' ; } if (generateImage) { image.sprite = Sprite.Create(testImages.GetImage(random), new Rect(0, 0, 28, 28), Vector2.zero); } Tensor output = worker.Execute(input).PeekOutput("Y"); int value = GetResult(output); guessText.text = value.ToString(); return(value == testImages.labelValueArray[random]); }
//public void TestNeuralNetwork() //{ // int[] fails = new int[10]; // int failsTotal = 0; // for (int i = 0; i < testImages.imageCount; i++) // { // float[] result = new float[testImages.pixelValueArrayOffset]; // for (int resultIndex = 0; resultIndex < testImages.pixelValueArrayOffset; resultIndex++) // { // result[resultIndex] = testImages.PixelValueArray[i * testImages.pixelValueArrayOffset + resultIndex]; // } // discriminator.Predict(testImages.PixelValueArray[i * testImages.pixelValueArrayOffset]); // if (!IsResultCorrect(result, testImages.LabelValueArray[i])) // { // fails[testImages.LabelValueArray[i]]++; // failsTotal++; // } // } // Debug.Log($"{failsTotal} fails:"); // Debug.Log((1 - (float)failsTotal / (float)(testImages.imageCount)) * 100 + " % accurate"); //} public void TestRandomImage() { float certainty = 0; int random = Random.Range(0, (int)testImages.imageCount); //float[] result = discriminator.Predict(testImages.PixelValueArray[random]); image.sprite = Sprite.Create(testImages.GetImage(random), new Rect(0, 0, 28, 28), Vector2.zero); //guessText.text = GetGuessedValue(result, ref certainty).ToString(); certaintyText.text = (certainty * 100f).ToString("F2") + '%'; }
public void TestRandomImage() { float certainty = 0; int random = Random.Range(0, (int)testImages.imageCount); float[] input = new float[testImages.pixelValueArrayOffset]; for (int j = 0; j < testImages.pixelValueArrayOffset; j++) { input[j] = testImages.pixelValueArray[random * testImages.pixelValueArrayOffset + j]; } float[] result = neuralNetwork.Guess(input); image.sprite = Sprite.Create(testImages.GetImage(random), new Rect(0, 0, 28, 28), Vector2.zero); guessText.text = GetGuessedValue(result, ref certainty).ToString(); certaintyText.text = (certainty * 100f).ToString("F2") + '%'; }