The “Hello World” of TensorFlow Lite

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

The “Hello World” of TensorFlow Lite

The “Hello World” of TensorFlow Lite

Goal
Our goal is to train a model that can take a value, x, and predict its sine, y. In a real-world application, if you needed the sine of x, you could just calculate it directly. However, by training a model to approximate the result, we can demonstrate the basics of machine learning.
TensorFlow and Keras
TensorFlow is a set of tools for building, training, evaluating, and deploying machine learning models. Originally developed at Google, TensorFlow is now an open-source project built and maintained by thousands of contributors across the world. It is the most popular and widely used framework for machine learning. Most developers interact with TensorFlow via its Python library. TensorFlow does many different things. In this post, we’ll use Keras, TensorFlow’s high-level API that makes it easy to build and train deep learning networks.
To enable TensorFlow on mobile and embedded devices, Google developed the TensorFlow Lite framework. It gives these computationally restricted devices the ability to run inference on pre-trained TensorFlow models that were converted to TensorFlow Lite. These converted models cannot be trained any further but can be optimized through techniques like quantization and pruning.
Building the Model
To building the Model, we should follow the below steps.
  1. Obtain a simple dataset.
  2. Train a deep learning model.
  3. Evaluate the model’s performance.
  4. Convert the model to run on-device.
Please navigate to the URL in your browser to open the notebook directly in Colab, this notebook is designed to demonstrate the process of creating a TensorFlow model and converting it to use with TensorFlow Lite.
Deploy the mode to the RT MCU
  • Hardware Board: MIMXRT1050 EVK Board

WeChat Image_20200203172635.jpg

Fig 1 MIMXRT1050 EVK Board

  • Template demo code: evkbimxrt1050_tensorflow_lite_cifar10
Code
/* Copyright 2017 The TensorFlow Authors. All Rights Reserved.
 Copyright 2018 NXP. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
==============================================================================*/

#include "board.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "fsl_debug_console.h"

#include <iostream>
#include <string>
#include <vector>
#include "timer.h"

#include "tensorflow/lite/kernels/register.h"
#include "tensorflow/lite/model.h"
#include "tensorflow/lite/optional_debug_tools.h"
#include "tensorflow/lite/string_util.h"

#include "Sine_mode.h"


int inference_count = 0;
// This is a small number so that it's easy to read the logs
const int kInferencesPerCycle = 30;
const float kXrange = 2.f * 3.14159265359f;

#define LOG(x) std::cout

void RunInference()
{
 std::unique_ptr<tflite::FlatBufferModel> model;
 std::unique_ptr<tflite::Interpreter> interpreter;
 model = tflite::FlatBufferModel::BuildFromBuffer(sine_model_quantized_tflite, sine_model_quantized_tflite_len);
 if (!model) {
 LOG(FATAL) << "Failed to load model\r\n";
 exit(-1);
 }
 model->error_reporter();

 tflite::ops::builtin::BuiltinOpResolver resolver;

 tflite::InterpreterBuilder(*model, resolver)(&interpreter);
 if (!interpreter) {
 LOG(FATAL) << "Failed to construct interpreter\r\n";
 exit(-1);
 }

 float input = interpreter->inputs()[0];

 if (interpreter->AllocateTensors() != kTfLiteOk) {
 LOG(FATAL) << "Failed to allocate tensors!\r\n";
 }


 while(true)
 {
 // Calculate an x value to feed into the model. We compare the current
 // inference_count to the number of inferences per cycle to determine
 // our position within the range of possible x values the model was
 // trained on, and use this to calculate a value.
 float position = static_cast<float>(inference_count) /
 static_cast<float>(kInferencesPerCycle);
 float x_val = position * kXrange;
 float* input_tensor_data = interpreter->typed_tensor<float>(input);
 *input_tensor_data = x_val;

 Delay_time(1000);

 // Run inference, and report any error
 TfLiteStatus invoke_status = interpreter->Invoke();
 if (invoke_status != kTfLiteOk)
 {
 LOG(FATAL) << "Failed to invoke tflite!\r\n";
 return;
 }

 // Read the predicted y value from the model's output tensor
 float* y_val = interpreter->typed_output_tensor<float>(0);

 PRINTF("\r\n x_value: %f, y_value: %f \r\n", x_val, y_val[0]);

 // Increment the inference_counter, and reset it if we have reached
 // the total number per cycle
 inference_count += 1;
 if (inference_count >= kInferencesPerCycle) inference_count = 0;

 }

}


/*
 * @brief Application entry point.
 */
int main(void)
{
 /* Init board hardware */
 BOARD_ConfigMPU();
 BOARD_InitPins();
 BOARD_InitDEBUG_UARTPins();
 BOARD_BootClockRUN();
 BOARD_InitDebugConsole();

 NVIC_SetPriorityGrouping(3);
 InitTimer();

 std::cout << "The hello_world demo of TensorFlow Lite model\r\n";

 RunInference();
 std::flush(std::cout);

 for (;;) {}
}
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍
Test result
On the MIMXRT1050 EVK Board, we log the input data: x_value and the inferenced output data: y_value via the Serial Port.
2020-02-03_18-11-27.jpg
Fig2 Received data
In a while loop function, It will run inference for a progression of x values in the range 0 to 2π and then repeat. Each time it runs, a new x value is calculated, the inference is run, and the data is output.
2020-02-03_17-34-01.jpg
Fig3 Test result
In further, we use Excel to display the received data against our actual values as the below figure shows.
2020-02-03_18-09-33.jpg
Fig4 Dot Plot
You can see that, for the most part, the dots representing predicted values form a smooth sine curve along the center of the distribution of actual values. In general, Our network has learned to approximate a sine curve.

Labels (1)
Attachments
%3CLINGO-SUB%20id%3D%22lingo-sub-1114580%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EThe%20%E2%80%9CHello%20World%E2%80%9D%20of%20TensorFlow%20Lite%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1114580%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%2034px%3B%22%3EGoal%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3EOur%20goal%20is%20to%20train%20a%20model%20that%20can%20take%20a%20value%2C%20x%2C%20and%20predict%20its%20sine%2C%20y.%20In%20a%20real-world%20application%2C%20if%20you%20needed%20the%20sine%20of%20x%2C%20you%20could%20just%20calculate%20it%20directly.%20However%2C%20by%20training%20a%20model%20to%20approximate%20the%20result%2C%20we%20can%20demonstrate%20the%20basics%20of%20machine%20learning.%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20font-size%3A%2014px%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%2034px%3B%22%3ETensorFlow%20and%20Keras%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20font-size%3A%2014px%3B%22%3E%3CSPAN%20style%3D%22color%3A%20%230088cc%3B%22%3E%3CA%20href%3D%22https%3A%2F%2Fwww.tensorflow.org%2F%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%20target%3D%22_blank%22%3ETensorFlow%3C%2FA%3E%3C%2FSPAN%3E%20is%20a%20set%20of%20tools%20for%20building%2C%20training%2C%20evaluating%2C%20and%20deploying%20machine%20learning%20models.%20Originally%20developed%20at%20Google%2C%20TensorFlow%20is%20now%20an%20open-source%20project%20built%20and%20maintained%20by%20thousands%20of%20contributors%20across%20the%20world.%20It%20is%20the%20most%20popular%20and%20widely%20used%20framework%20for%20machine%20learning.%20Most%20developers%20interact%20with%20TensorFlow%20via%20its%20Python%20library.%20TensorFlow%20does%20many%20different%20things.%20In%20this%20post%2C%20we%E2%80%99ll%20use%20%3CSPAN%20style%3D%22color%3A%20%230088cc%3B%22%3E%3CA%20href%3D%22https%3A%2F%2Fwww.tensorflow.org%2Fguide%2Fkeras%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%20target%3D%22_blank%22%3EKeras%3C%2FA%3E%3C%2FSPAN%3E%2C%20TensorFlow%E2%80%99s%20high-level%20API%20that%20makes%20it%20easy%20to%20build%20and%20train%20deep%20learning%20networks.%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20font-size%3A%2014px%3B%22%3ETo%20enable%20TensorFlow%20on%20mobile%20and%20embedded%20devices%2C%20Google%20developed%20the%20%3CA%20href%3D%22https%3A%2F%2Fwww.tensorflow.org%2Flite%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%20target%3D%22_blank%22%3ETensorFlow%20Lite%3C%2FA%3E%20framework.%20It%20gives%20these%20computationally%20restricted%20devices%20the%20ability%20to%20run%20inference%20on%20pre-trained%20TensorFlow%20models%20that%20were%20converted%20to%20TensorFlow%20Lite.%20These%20converted%20models%20cannot%20be%20trained%20any%20further%20but%20can%20be%20optimized%20through%20techniques%20like%20quantization%20and%20pruning.%3C%2FDIV%3E%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%2034px%3B%22%3EBuilding%20the%20Model%3C%2FSPAN%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3ETo%20building%20the%20Model%2C%20we%20should%20follow%20the%20below%20steps.%3C%2FDIV%3E%3CDIV%3E%3COL%20style%3D%22margin%3A%200px%3B%22%3E%3CLI%20style%3D%22text-align%3A%20left%3B%20line-height%3A%201.75%3B%20font-size%3A%2014px%3B%20list-style-position%3A%20inside%3B%20white-space%3A%20pre-wrap%3B%20word-break%3A%20break-word%3B%20list-style-type%3A%20decimal%3B%20font-family%3A%20'Microsoft%20YaHei'%2C%20STXihei%3B%20color%3A%20%23000000%3B%20background-color%3A%20transparent%3B%20font-weight%3A%20normal%3B%20font-style%3A%20normal%3B%20text-decoration%3A%20none%3B%22%3EObtain%20a%20simple%20dataset.%3C%2FLI%3E%3CLI%20style%3D%22text-align%3A%20left%3B%20line-height%3A%201.75%3B%20font-size%3A%2014px%3B%20list-style-position%3A%20inside%3B%20white-space%3A%20pre-wrap%3B%20word-break%3A%20break-word%3B%20list-style-type%3A%20decimal%3B%20font-family%3A%20'Microsoft%20YaHei'%2C%20STXihei%3B%20color%3A%20%23000000%3B%20background-color%3A%20transparent%3B%20font-weight%3A%20normal%3B%20font-style%3A%20normal%3B%20text-decoration%3A%20none%3B%22%3ETrain%20a%20deep%20learning%20model.%3C%2FLI%3E%3CLI%20style%3D%22text-align%3A%20left%3B%20line-height%3A%201.75%3B%20font-size%3A%2014px%3B%20list-style-position%3A%20inside%3B%20white-space%3A%20pre-wrap%3B%20word-break%3A%20break-word%3B%20list-style-type%3A%20decimal%3B%20font-family%3A%20'Microsoft%20YaHei'%2C%20STXihei%3B%20color%3A%20%23000000%3B%20background-color%3A%20transparent%3B%20font-weight%3A%20normal%3B%20font-style%3A%20normal%3B%20text-decoration%3A%20none%3B%22%3EEvaluate%20the%20model%E2%80%99s%20performance.%3C%2FLI%3E%3CLI%20style%3D%22text-align%3A%20left%3B%20line-height%3A%201.75%3B%20font-size%3A%2014px%3B%20list-style-position%3A%20inside%3B%20white-space%3A%20pre-wrap%3B%20word-break%3A%20break-word%3B%20list-style-type%3A%20decimal%3B%20font-family%3A%20'Microsoft%20YaHei'%2C%20STXihei%3B%20color%3A%20%23000000%3B%20background-color%3A%20transparent%3B%20font-weight%3A%20normal%3B%20font-style%3A%20normal%3B%20text-decoration%3A%20none%3B%22%3EConvert%20the%20model%20to%20run%20on-device.%3C%2FLI%3E%3C%2FOL%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3EPlease%20navigate%20to%20the%20%3CSPAN%20style%3D%22color%3A%20%230088cc%3B%22%3E%3CA%20href%3D%22https%3A%2F%2Fcolab.research.google.com%2Fgithub%2Ftensorflow%2Ftensorflow%2Fblob%2Fmaster%2Ftensorflow%2Flite%2Fmicro%2Fexamples%2Fhello_world%2Fcreate_sine_model.ipynb%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%20target%3D%22_blank%22%3EURL%3C%2FA%3E%3C%2FSPAN%3E%20in%20your%20browser%20to%20open%20the%20notebook%20directly%20in%20Colab%2C%20this%20notebook%20is%20designed%20to%20demonstrate%20the%20process%20of%20creating%20a%20TensorFlow%20model%20and%20converting%20it%20to%20use%20with%20TensorFlow%20Lite.%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%2034px%3B%22%3EDeploy%20the%20mode%20to%20the%20RT%20MCU%3C%2FSPAN%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3E%3CDIV%3E%3CUL%20style%3D%22margin%3A%200px%3B%22%3E%3CLI%20style%3D%22text-align%3A%20left%3B%20line-height%3A%201.75%3B%20font-size%3A%2014px%3B%20list-style-position%3A%20inside%3B%20white-space%3A%20pre-wrap%3B%20word-break%3A%20break-word%3B%20list-style-type%3A%20disc%3B%20font-family%3A%20'Microsoft%20YaHei'%2C%20STXihei%3B%20color%3A%20%23000000%3B%20background-color%3A%20transparent%3B%20font-weight%3A%20normal%3B%20font-style%3A%20normal%3B%20text-decoration%3A%20none%3B%22%3EHardware%20Board%3A%20%3CSPAN%20style%3D%22font-weight%3A%20bold%3B%22%3EMIMXRT1050%20EVK%20Board%3C%2FSPAN%3E%3C%2FLI%3E%3C%2FUL%3E%3CP%3E%3CSPAN%20style%3D%22font-weight%3A%20bold%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22WeChat%20Image_20200203172635.jpg%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22WeChat%20Image_20200203172635.jpg%22%20style%3D%22width%3A%20730px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F100588i15EE8F2A41EF4473%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22WeChat%20Image_20200203172635.jpg%22%20alt%3D%22WeChat%20Image_20200203172635.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%20style%3D%22text-align%3A%20center%3B%22%3EFig%201%20MIMXRT1050%20EVK%20Board%3C%2FP%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3E%3CDIV%3E%3CUL%20style%3D%22margin%3A%200px%3B%22%3E%3CLI%20style%3D%22text-align%3A%20left%3B%20line-height%3A%201.75%3B%20font-size%3A%2014px%3B%20list-style-position%3A%20inside%3B%20white-space%3A%20pre-wrap%3B%20word-break%3A%20break-word%3B%20list-style-type%3A%20disc%3B%20font-family%3A%20'Microsoft%20YaHei'%2C%20STXihei%3B%20color%3A%20%23000000%3B%20background-color%3A%20transparent%3B%20font-weight%3A%20normal%3B%20font-style%3A%20normal%3B%20text-decoration%3A%20none%3B%22%3ETemplate%20demo%20code%3A%20%3CSPAN%20style%3D%22font-weight%3A%20bold%3B%22%3Eevkbimxrt1050_tensorflow_lite_cifar10%3C%2FSPAN%3E%3C%2FLI%3E%3C%2FUL%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%2034px%3B%22%3ECode%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3E%3CPRE%20class%3D%22language-cpp%20line-numbers%22%3E%3CCODE%3E%3CSPAN%20class%3D%22comment%20token%22%3E%2F*%20Copyright%202017%20The%20TensorFlow%20Authors.%20All%20Rights%20Reserved.%0A%20Copyright%202018%20NXP.%20All%20Rights%20Reserved.%0A%0ALicensed%20under%20the%20Apache%20License%2C%20Version%202.0%20(the%20%22License%22)%3B%0Ayou%20may%20not%20use%20this%20file%20except%20in%20compliance%20with%20the%20License.%0AYou%20may%20obtain%20a%20copy%20of%20the%20License%20at%0A%0A%20%3CA%20href%3D%22http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%20target%3D%22test_blank%22%3Ehttp%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0%3C%2FA%3E%0A%0AUnless%20required%20by%20applicable%20law%20or%20agreed%20to%20in%20writing%2C%20software%0Adistributed%20under%20the%20License%20is%20distributed%20on%20an%20%22AS%20IS%22%20BASIS%2C%0AWITHOUT%20WARRANTIES%20OR%20CONDITIONS%20OF%20ANY%20KIND%2C%20either%20express%20or%20implied.%0ASee%20the%20License%20for%20the%20specific%20language%20governing%20permissions%20and%0Alimitations%20under%20the%20License.%0A%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D*%2F%3C%2FSPAN%3E%0A%0A%3CSPAN%20class%3D%22property%20macro%20token%22%3E%23include%20%3CSPAN%20class%3D%22string%20token%22%3E%22board.h%22%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22property%20macro%20token%22%3E%23include%20%3CSPAN%20class%3D%22string%20token%22%3E%22pin_mux.h%22%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22property%20macro%20token%22%3E%23include%20%3CSPAN%20class%3D%22string%20token%22%3E%22clock_config.h%22%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22property%20macro%20token%22%3E%23include%20%3CSPAN%20class%3D%22string%20token%22%3E%22fsl_debug_console.h%22%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%0A%3CSPAN%20class%3D%22property%20macro%20token%22%3E%23include%20%3CSPAN%20class%3D%22string%20token%22%3E%3CIOSTREAM%3E%3C%2FIOSTREAM%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22property%20macro%20token%22%3E%23include%20%3CSPAN%20class%3D%22string%20token%22%3E%3CSTRING%3E%3C%2FSTRING%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22property%20macro%20token%22%3E%23include%20%3CSPAN%20class%3D%22string%20token%22%3E%3CVECTOR%3E%3C%2FVECTOR%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22property%20macro%20token%22%3E%23include%20%3CSPAN%20class%3D%22string%20token%22%3E%22timer.h%22%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%0A%3CSPAN%20class%3D%22property%20macro%20token%22%3E%23include%20%3CSPAN%20class%3D%22string%20token%22%3E%22tensorflow%2Flite%2Fkernels%2Fregister.h%22%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22property%20macro%20token%22%3E%23include%20%3CSPAN%20class%3D%22string%20token%22%3E%22tensorflow%2Flite%2Fmodel.h%22%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22property%20macro%20token%22%3E%23include%20%3CSPAN%20class%3D%22string%20token%22%3E%22tensorflow%2Flite%2Foptional_debug_tools.h%22%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22property%20macro%20token%22%3E%23include%20%3CSPAN%20class%3D%22string%20token%22%3E%22tensorflow%2Flite%2Fstring_util.h%22%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%0A%3CSPAN%20class%3D%22property%20macro%20token%22%3E%23include%20%3CSPAN%20class%3D%22string%20token%22%3E%22Sine_mode.h%22%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%0A%0A%3CSPAN%20class%3D%22keyword%20token%22%3Eint%3C%2FSPAN%3E%20inference_count%20%3CSPAN%20class%3D%22operator%20token%22%3E%3D%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22number%20token%22%3E0%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22comment%20token%22%3E%2F%2F%20This%20is%20a%20small%20number%20so%20that%20it's%20easy%20to%20read%20the%20logs%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22keyword%20token%22%3Econst%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22keyword%20token%22%3Eint%3C%2FSPAN%3E%20kInferencesPerCycle%20%3CSPAN%20class%3D%22operator%20token%22%3E%3D%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22number%20token%22%3E30%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22keyword%20token%22%3Econst%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22keyword%20token%22%3Efloat%3C%2FSPAN%3E%20kXrange%20%3CSPAN%20class%3D%22operator%20token%22%3E%3D%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22number%20token%22%3E2%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E.%3C%2FSPAN%3Ef%20%3CSPAN%20class%3D%22operator%20token%22%3E*%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22number%20token%22%3E3.14159265359f%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%0A%3CSPAN%20class%3D%22property%20macro%20token%22%3E%23define%20LOG(x)%20std%3A%3Acout%3C%2FSPAN%3E%0A%0A%3CSPAN%20class%3D%22keyword%20token%22%3Evoid%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22token%20function%22%3ERunInference%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22punctuation%20token%22%3E%7B%3C%2FSPAN%3E%0A%20std%3CSPAN%20class%3D%22operator%20token%22%3E%3A%3A%3C%2FSPAN%3Eunique_ptr%3CSPAN%20class%3D%22operator%20token%22%3E%26lt%3B%3C%2FSPAN%3Etflite%3CSPAN%20class%3D%22operator%20token%22%3E%3A%3A%3C%2FSPAN%3EFlatBufferModel%3CSPAN%20class%3D%22operator%20token%22%3E%26gt%3B%3C%2FSPAN%3E%20model%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20std%3CSPAN%20class%3D%22operator%20token%22%3E%3A%3A%3C%2FSPAN%3Eunique_ptr%3CSPAN%20class%3D%22operator%20token%22%3E%26lt%3B%3C%2FSPAN%3Etflite%3CSPAN%20class%3D%22operator%20token%22%3E%3A%3A%3C%2FSPAN%3EInterpreter%3CSPAN%20class%3D%22operator%20token%22%3E%26gt%3B%3C%2FSPAN%3E%20interpreter%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20model%20%3CSPAN%20class%3D%22operator%20token%22%3E%3D%3C%2FSPAN%3E%20tflite%3CSPAN%20class%3D%22operator%20token%22%3E%3A%3A%3C%2FSPAN%3EFlatBufferModel%3CSPAN%20class%3D%22operator%20token%22%3E%3A%3A%3C%2FSPAN%3E%3CSPAN%20class%3D%22token%20function%22%3EBuildFromBuffer%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3Esine_model_quantized_tflite%3CSPAN%20class%3D%22punctuation%20token%22%3E%2C%3C%2FSPAN%3E%20sine_model_quantized_tflite_len%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22keyword%20token%22%3Eif%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E!%3C%2FSPAN%3Emodel%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22punctuation%20token%22%3E%7B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22token%20function%22%3ELOG%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3EFATAL%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22operator%20token%22%3E%26lt%3B%26lt%3B%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22string%20token%22%3E%22Failed%20to%20load%20model%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22token%20function%22%3Eexit%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E-%3C%2FSPAN%3E%3CSPAN%20class%3D%22number%20token%22%3E1%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22punctuation%20token%22%3E%7D%3C%2FSPAN%3E%0A%20model%3CSPAN%20class%3D%22operator%20token%22%3E-%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E%26gt%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22token%20function%22%3Eerror_reporter%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%0A%20tflite%3CSPAN%20class%3D%22operator%20token%22%3E%3A%3A%3C%2FSPAN%3Eops%3CSPAN%20class%3D%22operator%20token%22%3E%3A%3A%3C%2FSPAN%3Ebuiltin%3CSPAN%20class%3D%22operator%20token%22%3E%3A%3A%3C%2FSPAN%3EBuiltinOpResolver%20resolver%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%0A%20tflite%3CSPAN%20class%3D%22operator%20token%22%3E%3A%3A%3C%2FSPAN%3E%3CSPAN%20class%3D%22token%20function%22%3EInterpreterBuilder%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E*%3C%2FSPAN%3Emodel%3CSPAN%20class%3D%22punctuation%20token%22%3E%2C%3C%2FSPAN%3E%20resolver%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E%26amp%3B%3C%2FSPAN%3Einterpreter%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22keyword%20token%22%3Eif%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E!%3C%2FSPAN%3Einterpreter%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22punctuation%20token%22%3E%7B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22token%20function%22%3ELOG%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3EFATAL%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22operator%20token%22%3E%26lt%3B%26lt%3B%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22string%20token%22%3E%22Failed%20to%20construct%20interpreter%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22token%20function%22%3Eexit%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E-%3C%2FSPAN%3E%3CSPAN%20class%3D%22number%20token%22%3E1%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22punctuation%20token%22%3E%7D%3C%2FSPAN%3E%0A%0A%20%3CSPAN%20class%3D%22keyword%20token%22%3Efloat%3C%2FSPAN%3E%20input%20%3CSPAN%20class%3D%22operator%20token%22%3E%3D%3C%2FSPAN%3E%20interpreter%3CSPAN%20class%3D%22operator%20token%22%3E-%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E%26gt%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22token%20function%22%3Einputs%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%5B%3C%2FSPAN%3E%3CSPAN%20class%3D%22number%20token%22%3E0%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%5D%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%0A%20%3CSPAN%20class%3D%22keyword%20token%22%3Eif%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3Einterpreter%3CSPAN%20class%3D%22operator%20token%22%3E-%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E%26gt%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22token%20function%22%3EAllocateTensors%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22operator%20token%22%3E!%3D%3C%2FSPAN%3E%20kTfLiteOk%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22punctuation%20token%22%3E%7B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22token%20function%22%3ELOG%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3EFATAL%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22operator%20token%22%3E%26lt%3B%26lt%3B%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22string%20token%22%3E%22Failed%20to%20allocate%20tensors!%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22punctuation%20token%22%3E%7D%3C%2FSPAN%3E%0A%0A%0A%20%3CSPAN%20class%3D%22keyword%20token%22%3Ewhile%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22token%20boolean%22%3Etrue%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22punctuation%20token%22%3E%7B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22comment%20token%22%3E%2F%2F%20Calculate%20an%20x%20value%20to%20feed%20into%20the%20model.%20We%20compare%20the%20current%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22comment%20token%22%3E%2F%2F%20inference_count%20to%20the%20number%20of%20inferences%20per%20cycle%20to%20determine%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22comment%20token%22%3E%2F%2F%20our%20position%20within%20the%20range%20of%20possible%20x%20values%20the%20model%20was%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22comment%20token%22%3E%2F%2F%20trained%20on%2C%20and%20use%20this%20to%20calculate%20a%20value.%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22keyword%20token%22%3Efloat%3C%2FSPAN%3E%20position%20%3CSPAN%20class%3D%22operator%20token%22%3E%3D%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22keyword%20token%22%3Estatic_cast%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E%26lt%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22keyword%20token%22%3Efloat%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E%26gt%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3Einference_count%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22operator%20token%22%3E%2F%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22keyword%20token%22%3Estatic_cast%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E%26lt%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22keyword%20token%22%3Efloat%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E%26gt%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3EkInferencesPerCycle%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22keyword%20token%22%3Efloat%3C%2FSPAN%3E%20x_val%20%3CSPAN%20class%3D%22operator%20token%22%3E%3D%3C%2FSPAN%3E%20position%20%3CSPAN%20class%3D%22operator%20token%22%3E*%3C%2FSPAN%3E%20kXrange%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22keyword%20token%22%3Efloat%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E*%3C%2FSPAN%3E%20input_tensor_data%20%3CSPAN%20class%3D%22operator%20token%22%3E%3D%3C%2FSPAN%3E%20interpreter%3CSPAN%20class%3D%22operator%20token%22%3E-%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E%26gt%3B%3C%2FSPAN%3Etyped_tensor%3CSPAN%20class%3D%22operator%20token%22%3E%26lt%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22keyword%20token%22%3Efloat%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E%26gt%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3Einput%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22operator%20token%22%3E*%3C%2FSPAN%3Einput_tensor_data%20%3CSPAN%20class%3D%22operator%20token%22%3E%3D%3C%2FSPAN%3E%20x_val%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%0A%20%3CSPAN%20class%3D%22token%20function%22%3EDelay_time%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22number%20token%22%3E1000%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%0A%20%3CSPAN%20class%3D%22comment%20token%22%3E%2F%2F%20Run%20inference%2C%20and%20report%20any%20error%3C%2FSPAN%3E%0A%20TfLiteStatus%20invoke_status%20%3CSPAN%20class%3D%22operator%20token%22%3E%3D%3C%2FSPAN%3E%20interpreter%3CSPAN%20class%3D%22operator%20token%22%3E-%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E%26gt%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22token%20function%22%3EInvoke%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22keyword%20token%22%3Eif%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3Einvoke_status%20%3CSPAN%20class%3D%22operator%20token%22%3E!%3D%3C%2FSPAN%3E%20kTfLiteOk%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22punctuation%20token%22%3E%7B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22token%20function%22%3ELOG%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3EFATAL%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22operator%20token%22%3E%26lt%3B%26lt%3B%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22string%20token%22%3E%22Failed%20to%20invoke%20tflite!%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22keyword%20token%22%3Ereturn%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22punctuation%20token%22%3E%7D%3C%2FSPAN%3E%0A%0A%20%3CSPAN%20class%3D%22comment%20token%22%3E%2F%2F%20Read%20the%20predicted%20y%20value%20from%20the%20model's%20output%20tensor%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22keyword%20token%22%3Efloat%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E*%3C%2FSPAN%3E%20y_val%20%3CSPAN%20class%3D%22operator%20token%22%3E%3D%3C%2FSPAN%3E%20interpreter%3CSPAN%20class%3D%22operator%20token%22%3E-%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E%26gt%3B%3C%2FSPAN%3Etyped_output_tensor%3CSPAN%20class%3D%22operator%20token%22%3E%26lt%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22keyword%20token%22%3Efloat%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E%26gt%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22number%20token%22%3E0%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%0A%20%3CSPAN%20class%3D%22token%20function%22%3EPRINTF%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22string%20token%22%3E%22%5Cr%5Cn%20x_value%3A%20%25f%2C%20y_value%3A%20%25f%20%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%2C%3C%2FSPAN%3E%20x_val%3CSPAN%20class%3D%22punctuation%20token%22%3E%2C%3C%2FSPAN%3E%20y_val%3CSPAN%20class%3D%22punctuation%20token%22%3E%5B%3C%2FSPAN%3E%3CSPAN%20class%3D%22number%20token%22%3E0%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%5D%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%0A%20%3CSPAN%20class%3D%22comment%20token%22%3E%2F%2F%20Increment%20the%20inference_counter%2C%20and%20reset%20it%20if%20we%20have%20reached%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22comment%20token%22%3E%2F%2F%20the%20total%20number%20per%20cycle%3C%2FSPAN%3E%0A%20inference_count%20%3CSPAN%20class%3D%22operator%20token%22%3E%2B%3C%2FSPAN%3E%3CSPAN%20class%3D%22operator%20token%22%3E%3D%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22number%20token%22%3E1%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22keyword%20token%22%3Eif%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3Einference_count%20%3CSPAN%20class%3D%22operator%20token%22%3E%26gt%3B%3D%3C%2FSPAN%3E%20kInferencesPerCycle%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%20inference_count%20%3CSPAN%20class%3D%22operator%20token%22%3E%3D%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22number%20token%22%3E0%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%0A%20%3CSPAN%20class%3D%22punctuation%20token%22%3E%7D%3C%2FSPAN%3E%0A%0A%3CSPAN%20class%3D%22punctuation%20token%22%3E%7D%3C%2FSPAN%3E%0A%0A%0A%3CSPAN%20class%3D%22comment%20token%22%3E%2F*%0A%20*%20%40brief%20Application%20entry%20point.%0A%20*%2F%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22keyword%20token%22%3Eint%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22token%20function%22%3Emain%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22keyword%20token%22%3Evoid%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22punctuation%20token%22%3E%7B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22comment%20token%22%3E%2F*%20Init%20board%20hardware%20*%2F%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22token%20function%22%3EBOARD_ConfigMPU%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22token%20function%22%3EBOARD_InitPins%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22token%20function%22%3EBOARD_InitDEBUG_UARTPins%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22token%20function%22%3EBOARD_BootClockRUN%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22token%20function%22%3EBOARD_InitDebugConsole%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%0A%20%3CSPAN%20class%3D%22token%20function%22%3ENVIC_SetPriorityGrouping%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22number%20token%22%3E3%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20%3CSPAN%20class%3D%22token%20function%22%3EInitTimer%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%0A%20std%3CSPAN%20class%3D%22operator%20token%22%3E%3A%3A%3C%2FSPAN%3Ecout%20%3CSPAN%20class%3D%22operator%20token%22%3E%26lt%3B%26lt%3B%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22string%20token%22%3E%22The%20hello_world%20demo%20of%20TensorFlow%20Lite%20model%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%0A%20%3CSPAN%20class%3D%22token%20function%22%3ERunInference%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%20std%3CSPAN%20class%3D%22operator%20token%22%3E%3A%3A%3C%2FSPAN%3E%3CSPAN%20class%3D%22token%20function%22%3Eflush%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3Estd%3CSPAN%20class%3D%22operator%20token%22%3E%3A%3A%3C%2FSPAN%3Ecout%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%0A%0A%20%3CSPAN%20class%3D%22keyword%20token%22%3Efor%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22punctuation%20token%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E)%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22punctuation%20token%22%3E%7B%3C%2FSPAN%3E%3CSPAN%20class%3D%22punctuation%20token%22%3E%7D%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22punctuation%20token%22%3E%7D%3C%2FSPAN%3E%0A%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%E2%80%8D%3CSPAN%20class%3D%22line-numbers-rows%22%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3CSPAN%3E%E2%80%8D%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FCODE%3E%3C%2FPRE%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%2034px%3B%22%3ETest%20result%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3EOn%20the%20MIMXRT1050%20EVK%20Board%2C%20we%20log%20the%20input%20data%3A%20%3CSTRONG%3Ex_value%3C%2FSTRONG%3E%20and%20the%20inferenced%20output%20data%3A%20%3CSTRONG%3Ey_value%3C%2FSTRONG%3E%20via%20the%20Serial%20Port.%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20font-size%3A%2014px%3B%20text-align%3A%20center%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%222020-02-03_18-11-27.jpg%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%222020-02-03_18-11-27.jpg%22%20style%3D%22width%3A%20280px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F100620iC38DC75A42821DB7%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%222020-02-03_18-11-27.jpg%22%20alt%3D%222020-02-03_18-11-27.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20font-size%3A%2014px%3B%20text-align%3A%20center%3B%22%3EFig2%20Received%20data%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3EIn%20a%20while%20loop%20function%2C%20It%20will%20run%20inference%20for%20a%20progression%20of%20x%20values%20in%20the%20range%200%20to%202%CF%80%20and%20then%20repeat.%20Each%20time%20it%20runs%2C%20a%20new%20x%20value%20is%20calculated%2C%20the%20inference%20is%20run%2C%20and%20the%20data%20is%20output.%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20font-size%3A%2014px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%222020-02-03_17-34-01.jpg%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%222020-02-03_17-34-01.jpg%22%20style%3D%22width%3A%20648px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F100663i3D76757F41F047EB%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%222020-02-03_17-34-01.jpg%22%20alt%3D%222020-02-03_17-34-01.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20font-size%3A%2014px%3B%20text-align%3A%20center%3B%22%3EFig3%20Test%20result%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3EIn%20further%2C%20we%20use%20Excel%20to%20display%20the%20received%20data%20against%20our%20actual%20values%20as%20the%20below%20figure%20shows.%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20font-size%3A%2014px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%222020-02-03_18-09-33.jpg%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%222020-02-03_18-09-33.jpg%22%20style%3D%22width%3A%20794px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F100706i4708BB6970C37C0D%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%222020-02-03_18-09-33.jpg%22%20alt%3D%222020-02-03_18-09-33.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20font-size%3A%2014px%3B%20text-align%3A%20center%3B%22%3EFig4%20Dot%20Plot%3C%2FDIV%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3E%3CDIV%20style%3D%22white-space%3A%20pre-wrap%3B%20line-height%3A%201.6%3B%20text-align%3A%20left%3B%20font-size%3A%2014px%3B%22%3EYou%20can%20see%20that%2C%20for%20the%20most%20part%2C%20the%20dots%20representing%20predicted%20values%20form%20a%20smooth%20sine%20curve%20along%20the%20center%20of%20the%20distribution%20of%20actual%20values.%20In%20general%2C%20Our%20network%20has%20learned%20to%20approximate%20a%20sine%20curve.%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CP%3E%3C%2FP%3E%3C%2FDIV%3E%3CP%3E%3C%2FP%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CP%3E%3C%2FP%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1114580%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3Ei.MXRT%20105x%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
No ratings
Version history
Last update:
‎09-10-2020 02:25 AM
Updated by: