예제 #1
0
    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]);
    }
예제 #2
0
    //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") + '%';
    }
예제 #3
0
    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") + '%';
    }