CNN on FRDM_K64

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

CNN on FRDM_K64

CNN on FRDM_K64

 

CNN on FRDM_K64

1 Introduction

Limited by resources, ordinary MCU is difficult to do some complex deep learning. However, although it is difficult, it can still be done. CNN, convolutional neural network, is a kind of deep learning algorithm, which can be used to solve the classification task.

After the implementation of CNN, ordinary MCU can also be used as edge computing device. Next, we introduce how to run CNN on frdm-k64 to recognize handwritten numbers. The size of digital image is 28x28. 28x28 image as input for CNN will output a 1x10 matrix. There are few deep learning libraries written for MCU on the Internet. Even if there are, there will be various problems. NNoM framework is easy to transplant and apply, so we use it

 

 

2 Experiment

2.1 Required tools: frdm-k64, python 3.7, Pip, IAR, tcp232

 

2.2 Download the source code of deep learning framework,

https://github.com/majianjia/nnom This is a pure C framework that does not

rely on hardware structure. Transplantation is very convenient

 

2.3  we select the example ‘bubble’ to add the Inc, port and Src folders in NNoM to the project, as shown in the figure

nxf56274_0-1611022952076.png

 

       Figure 1

Open the file ‘port.h’ . The definitation of NNOM_LOG is changed to PRINTF (__ VA_ ARGS__ , Open the ICF file, and change the heap size to 0x5000, define symbol__ size_ heap__ = 0x5000;

Malloc, which is used in this library, allocates memory from here. If it is small, it can't run the network

 

2.4 From the download framework, go into ‘mnist-simple/mcu’, which has trained file ‘weights.h’, and randomly generated handwritten image file, ‘image.h’. Add these two files to the project

 

2.5 Add headfile to ‘bubble.c’

       #include "nnom_port.h"

#include "nnom.h"

#include "weights.h"

#include "image.h"

 

2.6 Delete the original code, add the following code

 

nnom_model_t *model;

const char codeLib[] = "@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\\|()1{}[]?-_+~<>i!lI;:,\"^`'.   ";

/*******************************************************************************

 * Code

 ******************************************************************************/

void print_img(int8_t * buf)

{

    for(int y = 0; y < 28; y++)

       {

        for (int x = 0; x < 28; x++)

              {

            int index =  69 / 127.0 * (127 - buf[y*28+x]);

                     if(index > 69) index =69;

                     if(index < 0) index = 0;

            PRINTF("%c",codeLib[index]);

                     PRINTF("%c",codeLib[index]);

        }

        PRINTF("\r\n");

    }

}

 

// Do simple test using image in "image.h" with model created previously.

void mnist(char num)

{

       uint32_t predic_label;

       float prob;

       int32_t index = num;

       PRINTF("\nprediction start.. \r\n");

      

       // copy data and do prediction

       memcpy(nnom_input_data, (int8_t*)&img[index][0], 784);

       nnom_predict(model, &predic_label, &prob);

 

       //print original image to console

       print_img((int8_t*)&img[index][0]);

      

       PRINTF("\r\nTruth label: %d\n", label[index]);

       PRINTF("\r\nPredicted label: %d\n", predic_label);

       PRINTF("\r\nProbability: %d%%\n", (int)(prob*100));

}

 

int main(void)

{

    uint8_t ch;

    /* Board pin, clock, debug console init */

    BOARD_InitPins();

    BOARD_BootClockRUN();

    BOARD_InitDebugConsole();

    /* Print a note to terminal */

    model = nnom_model_create();

       // dummy run

       model_run(model);

    PRINTF("\r\nwhich image to distinguish 0-9 \r\n");

    for(uint8_t i=0; i<10; i++)

    {

        print_img((int8_t*)&img[i][0]);

    }

    while(1)

    {

        PRINTF("\r\nwhich image to distinguish 0-9 \r\n");

        ch = GETCHAR();

        if((ch >'9') || ch < '0')

        {

            continue;

        }

        PRINTF("\r\n");

        mnist(ch-'0');

    }

}

 

An error will be reported when compiling ‘weights.h’, due to lack of few parameters.

In layer [1], layer [4], layer [7], you need to add ‘division (1,1)’ after ‘stride (1,1)’. In this way, the compilation passes.

 

2.7 As a result, open the serial port software. At the beginning, the terminal will print out a variety of handwritten digital pictures, and then enter a number,

The corresponded picture will be recognized.

nxf56274_1-1611022952200.png

 

                                                 Figure 2

When we input ‘8’, the recognition is the handwriting '9'

nxf56274_2-1611022952340.png

 

                     Figure 3

 

The ‘Truth label’ corresponds to IMG9_LABLE in ‘image.h’ and ‘Predicted label’ is the prediction results

 

3 training

Through the above steps, we have realized a simple handwritten numeral recognition. Next, we will introduce ‘weights.h’. How to generate the weight model here? The image data here are all from MNIST digital set. How can we make a handwritten number for MCU to recognize?

 

3.1 Under ‘nnom-master\examples\mnist-simple’, there is a ‘mnist_ simple.py’. You need to run it to generate ‘weights.h’ and ‘image.h’. To run this, you need to install tensorflow, keras and so on. When you run it, you can use pip to install what is missing

The network operation process is as shown in the figure

nxf56274_3-1611022952397.png

 

                            Figure 4

Conv2d-> convolution operation, Maxpool-> pooling.

The meaning of convolution operation is to extract the features of the image. Pooling is a bit like compressing data, which can reduce the running space.

28x28 input and output a 1x10 matrix, representing the possibility of 0-9

 

3.2 We can use the ‘Paint’ program of WIN to adjust the canvas to 28x28, write numbers on it and save it in PNG format. I wrote a ‘4’

 

nxf56274_4-1611022952398.png

 

Figure 5

 

Change the code as following.

 

nnom_model_t *model;

uint8_t temp[28*28]={0};

const char codeLib[] = "@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\\|()1{}[]?-_+~<>i!lI;:,\"^`'.   ";

/*******************************************************************************

 * Code

 ******************************************************************************/

void print_img(int8_t * buf)

{

    for(int y = 0; y < 28; y++)

       {

        for (int x = 0; x < 28; x++)

              {

            int index =  69 / 127.0 * (127 - buf[y*28+x]);

                     if(index > 69) index =69;

                     if(index < 0) index = 0;

            PRINTF("%c",codeLib[index]);

                     PRINTF("%c",codeLib[index]);

        }

        PRINTF("\r\n");

    }

}

 

 

void mnist_pic(uint8_t *temp)

{

       float prob;

    uint32_t predic_label;

       PRINTF("\nprediction start.. \r\n");

 

       // copy data and do prediction

       memcpy(nnom_input_data, (int8_t*)temp, 784);

       nnom_predict(model, &predic_label, &prob);

 

       //print original image to console

       print_img((int8_t *)temp);

       PRINTF("\r\nPredicted label: %d\n", predic_label);

       PRINTF("\r\nProbability: %d%%\n", (int)(prob*100));

}

 

int main(void)

{

    /* Board pin, clock, debug console init */

    BOARD_InitPins();

    BOARD_BootClockRUN();

    BOARD_InitDebugConsole();

    /* Print a note to terminal */

    model = nnom_model_create();

       // dummy run

       model_run(model);

    while(1)

    {

        PRINTF("\r\n Send picture by serial\r\n");   

        DbgConsole_ReadLine(temp,784);

        PRINTF("\r\n Got picture\r\n");  

        mnist_pic(temp);

    }

}

 

3.3 Then use pic2mnist.py(see the attachment), run this script with CMD and

enter 'Python pic2mnist.py 1. PNG ', 1. PNG is the image to be parsed, and then ‘content.txt’ will be generated. The file contains the data of the picture. Send the data to the MCU through the serial port. Note that ‘Send as Hex’ should be checked. Similarly, the handwritten picture will be displayed first, and then the picture will be recognized.

nxf56274_5-1611022952440.png

 

                                                        Figure 6

 

We can see that '4' was identified

添付
%3CLINGO-SUB%20id%3D%22lingo-sub-1216427%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EFRDM_K64%E3%81%AECNN%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1216427%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%0A%3CP%20class%3D%22lia-align-center%22%20style%3D%22text-align%3A%20center%3B%22%20style%3D%22text-align%3A%20center%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20class%3D%22lia-align-center%22%20style%3D%22text-align%3A%20center%3B%22%20style%3D%22text-align%3A%20center%3B%22%3E%3CSPAN%3E%3CFONT%20size%3D%226%22%3E%3CSTRONG%3EFRDM_K64%E3%81%AECNN%3C%2FSTRONG%3E%3C%2FFONT%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CH1%20id%3D%22toc-hId-410220306%22%20id%3D%22toc-hId-1303322738%22%3E%3CA%20target%3D%22_blank%22%20name%3D%22_Toc61941541%22%3E%3C%2FA%3E%3CSPAN%3E1%20%E3%82%A4%E3%83%B3%E3%83%88%E3%83%AD%E3%83%80%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%3C%2FSPAN%3E%3C%2FH1%3E%0A%3CP%3E%3CSPAN%3E%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%8C%E9%99%90%E3%82%89%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E9%80%9A%E5%B8%B8%E3%81%AEMCU%E3%81%A7%E3%81%AF%E8%A4%87%E9%9B%91%E3%81%AA%E6%B7%B1%E5%B1%A4%E5%AD%A6%E7%BF%92%E3%82%92%E8%A1%8C%E3%81%86%E3%81%93%E3%81%A8%E3%81%AF%E5%9B%B0%E9%9B%A3%E3%81%A7%E3%81%99%E3%80%82%E3%81%97%E3%81%8B%E3%81%97%E3%80%81%E9%9B%A3%E3%81%97%E3%81%84%E3%81%A8%E3%81%AF%E3%81%84%E3%81%88%E3%80%81%E3%81%9D%E3%82%8C%E3%81%A7%E3%82%82%E5%8F%AF%E8%83%BD%E3%81%A7%E3%81%99%E3%80%82CNN(%E7%95%B3%E3%81%BF%E8%BE%BC%E3%81%BF%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%A9%E3%83%AB%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF)%E3%81%AF%E3%80%81%E4%B8%80%E7%A8%AE%E3%81%AE%E6%B7%B1%E5%B1%A4%E5%AD%A6%E7%BF%92%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%81%A7%E3%81%82%E3%82%8A%E3%80%81%E5%88%86%E9%A1%9E%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%92%E8%A7%A3%E6%B1%BA%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E4%BD%BF%E7%94%A8%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3ECNN%E3%81%AE%E5%AE%9F%E8%A3%85%E5%BE%8C%E3%80%81%E9%80%9A%E5%B8%B8%E3%81%AEMCU%E3%82%82%E3%82%A8%E3%83%83%E3%82%B8%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%A8%E3%81%97%E3%81%A6%E4%BD%BF%E7%94%A8%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%E6%AC%A1%E3%81%AB%E3%80%81frdm-k64%E3%81%A7CNN%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%A6%E6%89%8B%E6%9B%B8%E3%81%8D%E3%81%AE%E6%95%B0%E5%AD%97%E3%82%92%E8%AA%8D%E8%AD%98%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%82%92%E7%B4%B9%E4%BB%8B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E7%94%BB%E5%83%8F%E3%81%AE%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%AF28x28%E3%81%A7%E3%81%99%E3%80%82CNN%20%E3%81%AE%E5%85%A5%E5%8A%9B%E3%81%A8%E3%81%97%E3%81%A6%2028x28%20%E3%81%AE%E7%94%BB%E5%83%8F%E3%81%AF%201x10%20%E8%A1%8C%E5%88%97%E3%82%92%E5%87%BA%E5%8A%9B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3%E7%94%A8%E3%81%AB%E6%9B%B8%E3%81%8B%E3%82%8C%E3%81%9F%E3%83%87%E3%82%A3%E3%83%BC%E3%83%97%E3%83%A9%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%AF%E3%80%81%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E4%B8%8A%E3%81%AB%E3%81%AF%E3%81%BB%E3%81%A8%E3%82%93%E3%81%A9%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E3%81%82%E3%81%A3%E3%81%A6%E3%82%82%E3%80%81%E6%A7%98%E3%80%85%E3%81%AA%E5%95%8F%E9%A1%8C%E3%81%8C%E5%87%BA%E3%81%A6%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82NNoM%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AF%E7%A7%BB%E6%A4%8D%E3%82%84%E9%81%A9%E7%94%A8%E3%81%8C%E7%B0%A1%E5%8D%98%E3%81%AA%E3%81%AE%E3%81%A7%E3%80%81%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CH1%20id%3D%22toc-hId--1397234157%22%20id%3D%22toc-hId--504131725%22%3E%3CA%20target%3D%22_blank%22%20name%3D%22_Toc61941542%22%3E%3C%2FA%3E%3CSPAN%3E2%20%E5%AE%9F%E9%A8%93%3C%2FSPAN%3E%3C%2FH1%3E%0A%3CP%3E%3CSPAN%3E2.1%20%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%84%E3%83%BC%E3%83%AB%3A%20frdm-k64%2C%20python%203.7%2C%20Pip%2C%20IAR%2C%20tcp232%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E2.2%20%E6%B7%B1%E5%B1%A4%E5%AD%A6%E7%BF%92%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AE%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E3%81%97%E3%80%81%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fmajianjia%2Fnnom%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fmajianjia%2Fnnom%3C%2FA%3E%3CSPAN%3E%20%E3%81%93%E3%82%8C%E3%81%AF%E7%B4%94%E7%B2%8B%E3%81%AAC%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%A7%E3%81%82%E3%82%8A%E3%80%81%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E6%A7%8B%E9%80%A0%E3%81%AB%E4%BE%9D%E5%AD%98%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E7%A7%BB%E6%A4%8D%E3%81%AF%E3%81%A8%E3%81%A6%E3%82%82%E4%BE%BF%E5%88%A9%E3%81%A7%E3%81%99%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E2.3%20%E5%9B%B3%E3%81%AB%E7%A4%BA%E3%81%99%E3%82%88%E3%81%86%E3%81%AB%E3%80%81%E4%BE%8B%E3%81%AE%E3%80%8Cbubble%E3%80%8D%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%A6%E3%80%81NNoM%E3%81%AEInc%E3%80%81port%E3%80%81%E3%81%8A%E3%82%88%E3%81%B3Src%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%82%92%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AB%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%BE%E3%81%99%3C%2FSPAN%3E%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22nxf56274_0-1611022952076.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22nxf56274_0-1611022952076.png%22%20style%3D%22width%3A%20253px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F135135i23A4E3A55A57DDA3%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22nxf56274_0-1611022952076.png%22%20alt%3D%22nxf56274_0-1611022952076.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSPAN%3E%E5%9B%B3%201%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%80%8Cport.h%E3%80%8D%E3%82%92%E9%96%8B%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82NNOM_LOG%20%E3%81%AE%E5%AE%9A%E7%BE%A9%E3%81%AF%20PRINTF%20(__%20VA_%20ARGS__%20%3C%2FSPAN%3E%EF%BC%89%3CSPAN%3E%2C%20Open%20the%20ICF%20file%2C%20and%20change%20the%20heap%20size%20to%200x5000%2C%20define%20symbol__%20size_%20heap__%20%3D%200x5000%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%81%93%E3%81%AE%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%A7%E4%BD%BF%E7%94%A8%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%20Malloc%20%E3%81%AF%E3%80%81%E3%81%93%E3%81%93%E3%81%8B%E3%82%89%E3%83%A1%E3%83%A2%E3%83%AA%E3%82%92%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%81%BE%E3%81%99%E3%80%82%E5%B0%8F%E3%81%95%E3%81%84%E3%81%A8%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E2.4%20%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%8B%E3%82%89%E3%80%81%E5%AD%A6%E7%BF%92%E6%B8%88%E3%81%BF%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%20'weights.h'%20%E3%81%8C%E3%81%82%E3%82%8B%20'mnist-simple%2Fmcu'%20%E3%81%AB%E7%A7%BB%E5%8B%95%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E3%81%AB%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E6%89%8B%E6%9B%B8%E3%81%8D%E3%81%AE%E7%94%BB%E5%83%8F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%80%8Cimage.h%E3%80%8D%E3%80%82%E3%81%93%E3%82%8C%E3%82%89%202%20%E3%81%A4%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AB%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%BE%E3%81%99%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E2.5%20'bubble.c'%20%E3%81%AB%E3%83%98%E3%83%83%E3%83%89%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%BF%BD%E5%8A%A0%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%23include%E3%80%8Cnnom_port.h%E3%80%8D%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%23include%E3%80%8Cnnom.h%E3%80%8D%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%23include%E3%80%8Cweights.h%E3%80%8D%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%23include%E3%80%8Cimage.h%E3%80%8D%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E2.6%20%E5%85%83%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%89%8A%E9%99%A4%E3%81%97%E3%80%81%E6%AC%A1%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%BE%E3%81%99%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3Ennom_model_t%20*model%3B%3C%2FP%3E%0A%3CP%3Econst%20char%20codeLib%5B%5D%20%3D%20%22%40B%258%26amp%3BWM%23*oahkbdpqwmZO0QLCJUYXzcvunxrjft%2F%5C%5C%7C()1%7B%7D%5B%5D%3F-_%2B~%26lt%3B%26gt%3Bi!lI%3B%3A%2C%5C%22%5E''.%22%3B%3C%2FP%3E%0A%3CP%3E%2F*******************************************************************************%3C%2FP%3E%0A%3CP%3E*%E3%82%B3%E3%83%BC%E3%83%89%3C%2FP%3E%0A%3CP%3E%26nbsp%3B******************************************************************************%2F%3C%2FP%3E%0A%3CP%3Evoid%20print_img(int8_t%20*%20buf)%3C%2FP%3E%0A%3CP%3E%7B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20for(int%20y%20%3D%200%3B%20y%20%26lt%3B%2028%3B%20y%2B%2B)%3C%2FP%3E%0A%3CP%3E%7B%3C%2FP%3E%0A%3CP%3Efor%20(int%20x%20%3D%200%3B%20x%20%26lt%3B%2028%3B%20x%2B%2B)%3C%2FP%3E%0A%3CP%3E%7B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20int%20index%20%3D%26nbsp%3B%2069%20%2F%20127.0%20*%20(127%20-%20buf%5By*28%2Bx%5D)%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3CSPAN%3Eif(index%20%26gt%3B%2069)%20index%20%3D69%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20if(index%20%26lt%3B%200)%20index%20%3D%200%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EPRINTF(%22%25c%22%2CcodeLib%5B%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%5D)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EPRINTF(%22%25c%22%2CcodeLib%5B%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%5D)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20PRINTF(%22%5Cr%5Cn%22)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%80%8Cimage.h%E3%80%8D%E3%81%AE%E7%94%BB%E5%83%8F%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E7%B0%A1%E5%8D%98%E3%81%AA%E3%83%86%E3%82%B9%E3%83%88%E3%82%92%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E4%BB%A5%E5%89%8D%E3%81%AB%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%83%A2%E3%83%87%E3%83%AB%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3Evoid%20mnist(%E6%96%87%E5%AD%97%E7%95%AA%E5%8F%B7)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20uint32_t%20predic_label%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20float%20prob%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20int32_t%20index%20%3D%20num%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EPRINTF(%22%5Cn%E4%BA%88%E6%B8%AC%E9%96%8B%E5%A7%8B..%20%5Cr%5Cn%22)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%82%B3%E3%83%94%E3%83%BC%E3%81%A8%E4%BA%88%E6%B8%AC%E3%81%AE%E5%AE%9F%E8%A1%8C%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20memcpy(nnom_input_data%2C%20(int8_t*)%26amp%3Bimg%5Bindex%5D%5B0%5D%2C%20784)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3Ennom_predict(%E3%83%A2%E3%83%87%E3%83%AB%E3%80%81%26amp%3Bpredic_label%E3%80%81%E3%81%8A%E3%82%88%E3%81%B3prob)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E5%85%83%E3%81%AE%E7%94%BB%E5%83%8F%E3%82%92%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E3%81%AB%E5%8D%B0%E5%88%B7%E3%81%99%E3%82%8B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20print_img((int8_t*)%26amp%3Bimg%5Bindex%5D%5B0%5D)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EPRINTF(%22%5Cr%5Cn%E7%9C%9F%E7%90%86%E3%83%A9%E3%83%99%E3%83%AB%3A%20%25d%5Cn%22%2C%20label%5Bindex%5D)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EPRINTF(%22%5Cr%5Cn%E4%BA%88%E6%B8%AC%E3%83%A9%E3%83%99%E3%83%AB%3A%20%25d%5Cn%22%2C%20predic_label)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EPRINTF(%22%5Cr%5Cn%E7%A2%BA%E7%8E%87%3A%20%25d%25%25%5Cn%22%2C%20(int)(%E7%A2%BA%E7%8E%87*100))%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%7D%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3Eint%20main(void)%3C%2FP%3E%0A%3CP%3E%7B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20uint8_t%20ch%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3CSPAN%3E%2F*%20%E3%83%9C%E3%83%BC%E3%83%89%20%E3%83%94%E3%83%B3%E3%80%81%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%80%81%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%20%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%20init%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EBOARD_InitPins()%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EBOARD_BootClockRUN()%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20BOARD_InitDebugConsole()%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%2F*%20%E7%AB%AF%E6%9C%AB%E3%81%AB%E3%83%8E%E3%83%BC%E3%83%88%E3%82%92%E5%8D%B0%E5%88%B7%E3%81%99%E3%82%8B%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%83%A2%E3%83%87%E3%83%AB%20%3D%20nnom_model_create()%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20dummy%20run%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3Emodel_run(%E3%83%A2%E3%83%87%E3%83%AB)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%20PRINTF(%22%5Cr%5Cn%E3%81%A9%E3%81%AE%E7%94%BB%E5%83%8F%E3%82%92%E5%8C%BA%E5%88%A5%E3%81%99%E3%82%8B%E3%81%8B%3C%2FSPAN%3E%3F%3CSPAN%3E%200-9%20%5Cr%5Cn%22)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20for(uint8_t%20i%3D0%3B%20i%26lt%3B10%3B%20i%2B%2B)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20print_img((int8_t*)%26amp%3Bimg%5Bi%5D%5B0%5D)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3Ewhile(1)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%20PRINTF(%22%5Cr%5Cn%E3%81%A9%E3%81%AE%E7%94%BB%E5%83%8F%E3%82%92%E5%8C%BA%E5%88%A5%E3%81%99%E3%82%8B%E3%81%8B%3C%2FSPAN%3E%3F%3CSPAN%3E%200-9%20%5Cr%5Cn%22)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3Ech%20%3D%20GETCHAR()%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20if((ch%20%26gt%3B'9')%20%7C%7C%20ch%20%26lt%3B%20'0')%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E7%B6%9A%E3%81%91%E3%82%8B%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20PRINTF(%22%5Cr%5Cn%22)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3Emnist(ch-'0')%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E'weights.h'%20%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E6%99%82%E3%81%AB%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E5%A0%B1%E5%91%8A%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%81%8C%E4%B8%8D%E8%B6%B3%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%81%A7%E3%81%99%E3%80%82%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%5B1%5D%E3%80%81%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%5B4%5D%E3%80%81%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%5B7%5D%E3%81%A7%E3%81%AF%E3%80%81%E3%80%8C%E3%82%B9%E3%83%88%E3%83%A9%E3%82%A4%E3%83%89(1%2C1)%E3%80%8D%E3%81%AE%E5%BE%8C%E3%81%AB%E3%80%8Cdivision(1%2C1)%E3%80%8D%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E3%81%93%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E3%81%97%E3%81%A6%E3%80%81%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%81%AF%E6%88%90%E5%8A%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E2.7%20%E3%81%9D%E3%81%AE%E7%B5%90%E6%9E%9C%E3%80%81%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E3%83%9D%E3%83%BC%E3%83%88%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%82%92%E9%96%8B%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%E6%9C%80%E5%88%9D%E3%81%AB%E3%80%81%E7%AB%AF%E6%9C%AB%E3%81%AF%E3%81%95%E3%81%BE%E3%81%96%E3%81%BE%E3%81%AA%E6%89%8B%E6%9B%B8%E3%81%8D%E3%81%AE%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E5%86%99%E7%9C%9F%E3%82%92%E5%8D%B0%E5%88%B7%E3%81%97%E3%80%81%E6%AC%A1%E3%81%AB%E7%95%AA%E5%8F%B7%E3%82%92%E5%85%A5%E5%8A%9B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E5%AF%BE%E5%BF%9C%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E7%94%BB%E5%83%8F%E3%81%8C%E8%AA%8D%E8%AD%98%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22nxf56274_1-1611022952200.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22nxf56274_1-1611022952200.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F135136i4B56B9776B792A88%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22nxf56274_1-1611022952200.png%22%20alt%3D%22nxf56274_1-1611022952200.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSPAN%3E%E5%9B%B3%202%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%80%8C8%E3%80%8D%E3%82%92%E5%85%A5%E5%8A%9B%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E8%AA%8D%E8%AD%98%E3%81%95%E3%82%8C%E3%82%8B%E3%81%AE%E3%81%AF%E6%89%8B%E6%9B%B8%E3%81%8D%E3%81%AE%E3%80%8C9%E3%80%8D%E3%81%A7%E3%81%99%3C%2FSPAN%3E%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22nxf56274_2-1611022952340.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22nxf56274_2-1611022952340.png%22%20style%3D%22width%3A%20286px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F135137i2637C6E9DD09D446%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22nxf56274_2-1611022952340.png%22%20alt%3D%22nxf56274_2-1611022952340.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSPAN%3E%E5%9B%B3%203%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%80%8CTruth%20label%E3%80%8D%E3%81%AF%E3%80%8Cimage.h%E3%80%8D%E3%81%AEIMG9_LABLE%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%80%8C%E4%BA%88%E6%B8%AC%E3%83%A9%E3%83%99%E3%83%AB%E3%80%8D%E3%81%AF%E4%BA%88%E6%B8%AC%E7%B5%90%E6%9E%9C%E3%81%A7%E3%81%99%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CH1%20id%3D%22toc-hId-1090278676%22%20id%3D%22toc-hId-1983381108%22%3E%3CA%20target%3D%22_blank%22%20name%3D%22_Toc61941543%22%3E%3C%2FA%3E%3CSPAN%3E3%20%E3%83%88%E3%83%AC%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%3C%2FSPAN%3E%3C%2FH1%3E%0A%3CP%3E%3CSPAN%3E%E4%BB%A5%E4%B8%8A%E3%81%AE%E6%89%8B%E9%A0%86%E3%81%AB%E3%82%88%E3%82%8A%E3%80%81%E7%B0%A1%E5%8D%98%E3%81%AA%E6%89%8B%E6%9B%B8%E3%81%8D%E3%81%AE%E6%95%B0%E5%AD%97%E8%AA%8D%E8%AD%98%E3%82%92%E5%AE%9F%E7%8F%BE%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E6%AC%A1%E3%81%AB%E3%80%8Cweights.h%E3%80%8D%E3%82%92%E3%81%94%E7%B4%B9%E4%BB%8B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%81%93%E3%81%93%E3%81%A7%E3%82%A6%E3%82%A7%E3%82%A4%E3%83%88%E3%83%A2%E3%83%87%E3%83%AB%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%3F%E3%81%93%E3%81%A1%E3%82%89%E3%81%AE%E7%94%BB%E5%83%8F%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AF%E3%81%99%E3%81%B9%E3%81%A6MNIST%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%82%BB%E3%83%83%E3%83%88%E3%81%AE%E3%82%82%E3%81%AE%E3%81%A7%E3%81%99%E3%80%82%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3%E3%81%8C%E8%AA%8D%E8%AD%98%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E6%89%8B%E6%9B%B8%E3%81%8D%E3%81%AE%E7%95%AA%E5%8F%B7%E3%82%92%E4%BD%9C%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%97%E3%81%9F%E3%82%89%E3%81%84%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E3.1%20'nnom-master%5Cexamples%5Cmnist-simple'%20%E3%81%AE%E4%B8%8B%E3%81%AB%20'mnist_%20simple.py'%20%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E3%80%8Cweights.h%E3%80%8D%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%80%81%E3%81%93%E3%82%8C%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E3%81%A8%20'image.h'%E3%80%82%E3%81%93%E3%82%8C%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%80%81tensorflow%E3%80%81keras%E3%81%AA%E3%81%A9%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81pip%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E4%B8%8D%E8%B6%B3%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%82%82%E3%81%AE%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E9%81%8B%E7%94%A8%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%AF%E5%9B%B3%E3%81%AE%E9%80%9A%E3%82%8A%E3%81%A7%E3%81%99%3C%2FSPAN%3E%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22nxf56274_3-1611022952397.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22nxf56274_3-1611022952397.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F135140iB2D3E6FC2C362661%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22nxf56274_3-1611022952397.png%22%20alt%3D%22nxf56274_3-1611022952397.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSPAN%3E%E5%9B%B3%204%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EConv2d-%26gt%3B%E7%95%B3%E3%81%BF%E8%BE%BC%E3%81%BF%E6%BC%94%E7%AE%97%E3%80%81Maxpool-%26gt%3B%E3%83%97%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E7%95%B3%E3%81%BF%E8%BE%BC%E3%81%BF%E6%BC%94%E7%AE%97%E3%81%AE%E6%84%8F%E5%91%B3%E3%81%AF%E3%80%81%E7%94%BB%E5%83%8F%E3%81%AE%E7%89%B9%E5%BE%B4%E3%82%92%E6%8A%BD%E5%87%BA%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7%E3%81%99%E3%80%82%E3%83%97%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%AF%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%9C%A7%E7%B8%AE%E3%81%AB%E5%B0%91%E3%81%97%E4%BC%BC%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E5%AE%9F%E8%A1%8C%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%82%92%E5%89%8A%E6%B8%9B%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E28x28%20%E3%81%AF%201x10%20%E8%A1%8C%E5%88%97%E3%82%92%E5%85%A5%E5%8A%9B%E3%81%8A%E3%82%88%E3%81%B3%E5%87%BA%E5%8A%9B%E3%81%97%E3%80%810-9%20%E3%81%AE%E5%8F%AF%E8%83%BD%E6%80%A7%E3%82%92%E8%A1%A8%E3%81%97%E3%81%BE%E3%81%99%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E3.2%20WIN%E3%81%AE%E3%80%8C%E3%83%9A%E3%82%A4%E3%83%B3%E3%83%88%E3%80%8D%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%80%81%E3%82%AD%E3%83%A3%E3%83%B3%E3%83%90%E3%82%B9%E3%82%9228x28%E3%81%AB%E8%AA%BF%E6%95%B4%E3%81%97%E3%80%81%E6%95%B0%E5%AD%97%E3%82%92%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%80%81PNG%E5%BD%A2%E5%BC%8F%E3%81%A7%E4%BF%9D%E5%AD%98%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%E7%A7%81%E3%81%AF%E3%80%8C4%E3%80%8D%E3%82%92%E6%9B%B8%E3%81%8D%E3%81%BE%E3%81%97%E3%81%9F%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22nxf56274_4-1611022952398.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22nxf56274_4-1611022952398.png%22%20style%3D%22width%3A%2028px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F135138iBD3B7A98DCE1C933%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22nxf56274_4-1611022952398.png%22%20alt%3D%22nxf56274_4-1611022952398.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSPAN%3E%E5%9B%B35%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%AC%A1%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3Ennom_model_t%20*model%3B%3C%2FP%3E%0A%3CP%3Euint8_t%20temp%5B28*28%5D%3D%7B0%7D%3B%3C%2FP%3E%0A%3CP%3Econst%20char%20codeLib%5B%5D%20%3D%20%22%40B%258%26amp%3BWM%23*oahkbdpqwmZO0QLCJUYXzcvunxrjft%2F%5C%5C%7C()1%7B%7D%5B%5D%3F-_%2B~%26lt%3B%26gt%3Bi!lI%3B%3A%2C%5C%22%5E''.%22%3B%3C%2FP%3E%0A%3CP%3E%2F*******************************************************************************%3C%2FP%3E%0A%3CP%3E*%E3%82%B3%E3%83%BC%E3%83%89%3C%2FP%3E%0A%3CP%3E%26nbsp%3B******************************************************************************%2F%3C%2FP%3E%0A%3CP%3Evoid%20print_img(int8_t%20*%20buf)%3C%2FP%3E%0A%3CP%3E%7B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20for(int%20y%20%3D%200%3B%20y%20%26lt%3B%2028%3B%20y%2B%2B)%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3Efor%20(int%20x%20%3D%200%3B%20x%20%26lt%3B%2028%3B%20x%2B%2B)%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20int%20index%20%3D%26nbsp%3B%2069%20%2F%20127.0%20*%20(127%20-%20buf%5By*28%2Bx%5D)%3B%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20if(index%20%26gt%3B%2069)%20index%20%3D69%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20if(index%20%26lt%3B%200)%20index%20%3D%200%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EPRINTF(%22%25c%22%2CcodeLib%5B%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%5D)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EPRINTF(%22%25c%22%2CcodeLib%5B%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%5D)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3C%2FSPAN%3E%7D%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20PRINTF(%22%5Cr%5Cn%22)%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3C%2FP%3E%0A%3CP%3E%7D%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%0A%3CP%3Evoid%20mnist_pic(uint8_t%20*temp)%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20float%20prob%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20uint32_t%20predic_label%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EPRINTF(%22%5Cn%E4%BA%88%E6%B8%AC%E9%96%8B%E5%A7%8B..%20%5Cr%5Cn%22)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%82%B3%E3%83%94%E3%83%BC%E3%81%A8%E4%BA%88%E6%B8%AC%E3%81%AE%E5%AE%9F%E8%A1%8C%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3Ememcpy(nnom_input_data%2C%20(int8_t*)temp%2C%20784)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3Ennom_predict(%E3%83%A2%E3%83%87%E3%83%AB%E3%80%81%26amp%3Bpredic_label%E3%80%81%E3%81%8A%E3%82%88%E3%81%B3prob)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E5%85%83%E3%81%AE%E7%94%BB%E5%83%8F%E3%82%92%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E3%81%AB%E5%8D%B0%E5%88%B7%E3%81%99%E3%82%8B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20print_img((int8_t%20*)temp)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EPRINTF(%22%5Cr%5Cn%E4%BA%88%E6%B8%AC%E3%83%A9%E3%83%99%E3%83%AB%3A%20%25d%5Cn%22%2C%20predic_label)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EPRINTF(%22%5Cr%5Cn%E7%A2%BA%E7%8E%87%3A%20%25d%25%25%5Cn%22%2C%20(int)(%E7%A2%BA%E7%8E%87*100))%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3Eint%20main(void)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%2F*%20%E3%83%9C%E3%83%BC%E3%83%89%20%E3%83%94%E3%83%B3%E3%80%81%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%80%81%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%20%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%20init%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EBOARD_InitPins()%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EBOARD_BootClockRUN()%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20BOARD_InitDebugConsole()%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%2F*%20%E7%AB%AF%E6%9C%AB%E3%81%AB%E3%83%8E%E3%83%BC%E3%83%88%E3%82%92%E5%8D%B0%E5%88%B7%E3%81%99%E3%82%8B%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%83%A2%E3%83%87%E3%83%AB%20%3D%20nnom_model_create()%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20dummy%20run%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3Emodel_run(%E3%83%A2%E3%83%87%E3%83%AB)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3Ewhile(1)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EPRINTF(%22%5Cr%5Cn%20%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E3%81%A7%E7%94%BB%E5%83%8F%E3%82%92%E9%80%81%E4%BF%A1%5Cr%5Cn%22)%3B%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EDbgConsole_ReadLine(%E6%B8%A9%E5%BA%A6%E3%80%81784)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EPRINTF(%22%5Cr%5Cn%20%E7%94%BB%E5%83%8F%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%5Cr%5Cn%22)%3B%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20mnist_pic(temp)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E3.3%E6%AC%A1%E3%81%AB%E3%80%81pic2mnist.py%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%BE%E3%81%99(%E5%8F%82%E7%85%A7%E6%B7%BB%E4%BB%98%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB)%E3%80%81%E3%81%93%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%20CMD%20%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%97%E3%80%81%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%80%8CPython%20pic2mnist.py%201%E3%80%8D%E3%81%A8%E5%85%A5%E5%8A%9B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82PNG%20'%E3%80%811%E3%80%82PNG%E3%81%AF%E8%A7%A3%E6%9E%90%E3%81%95%E3%82%8C%E3%82%8B%E7%94%BB%E5%83%8F%E3%81%A7%E3%80%81%E6%AC%A1%E3%81%AB%E3%80%8Ccontent.txt%E3%80%8D%E3%81%A7%E3%81%99%E3%81%8C%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E3%81%AF%E3%80%81%E7%94%BB%E5%83%8F%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E3%83%9D%E3%83%BC%E3%83%88%E3%82%92%E4%BB%8B%E3%81%97%E3%81%A6MCU%E3%81%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E9%80%81%E4%BF%A1%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%80%8CSend%20as%20Hex%E3%80%8D%E3%81%AB%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%82%92%E5%85%A5%E3%82%8C%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AB%E6%B3%A8%E6%84%8F%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E5%90%8C%E6%A7%98%E3%81%AB%E3%80%81%E6%89%8B%E6%9B%B8%E3%81%8D%E3%81%AE%E7%94%BB%E5%83%8F%E3%81%8C%E6%9C%80%E5%88%9D%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%80%81%E6%AC%A1%E3%81%AB%E7%94%BB%E5%83%8F%E3%81%8C%E8%AA%8D%E8%AD%98%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22nxf56274_5-1611022952440.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22nxf56274_5-1611022952440.png%22%20style%3D%22width%3A%20383px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F135139i1BBD8CA98A12CE8A%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22nxf56274_5-1611022952440.png%22%20alt%3D%22nxf56274_5-1611022952440.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSPAN%3E%E5%9B%B3%206%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%80%8C4%E3%80%8D%E3%81%8C%E7%89%B9%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%9F%E3%81%93%E3%81%A8%E3%81%8C%E3%82%8F%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%99%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1216427%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EFreedom%E9%96%8B%E7%99%BA%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EKinetis%20K%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BAMCU%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
評価なし
バージョン履歴
最終更新日:
‎01-18-2021 07:25 PM
更新者: