yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
Transbot SE📖
01.Introduction to Transbot SE
  • 01. Introduction to Transbot SE
  • 02. Precautions for use and battery safety
  • 03. First Trial
02.First Trial
  • 2.1.APP control
  • 2.2.USB wireless handle control(Optional)
  • 2.3.Handle video control Transbot(Optional)
  • 2.4.Network configuration tutorial in hotspot mode
03.Hardware control course
  • 3.1About expansion board and update firmware
  • 3.2.Close self-starting process
  • 3.3.Install Transbot library
  • 3.4.Control buzzer and button
  • 3.5.Control PWM servo
  • 3.6.Control bus servo
  • 3.7.Control motor
  • 3.8.Control robot movement
04.Linux operating system
  • 1. Virtual machine installation and use
  • 2. Linux basics
  • 3. Remote control
  • 4. Multi-machine communication configuration
  • 5. Static IP and hotspot mode
  • 6. Web page real-time monitoring
  • 7. Expansion tutorial
  • 8. Write system images
05.Docker couse(For Pi5)
  • 1.Docker overview and docker installation
  • 2.Common commands for docker image containers
  • 3.Docker images deeply understand and publish images
  • 4.Docker hardware interaction and data processing
  • 5.Start the transbot se container
06.ROS basic course
  • 1.ROS introduction
  • 2.Project file structure
  • 3.Common commands and tools
  • 4.Publisher
  • 5.Subscribers
  • 6.Customize topic messages and use
  • 7.Client
  • 8.Server
  • 9.Custom service messages and usage
  • 10.TF release and monitoring
07.OpenCV courses
  • 1. Getting started with Open Source CV
  • 2. Open Source CV geometric transformation
  • 3. Open Source CV image processing and drawing text line segments
  • 4. Open Source CV image beautification
  • 5. Opencv application
  • 6. AR vision
  • 7. AR QR code
  • 8. ROS+Opencv foundation
  • 9. ROS+Opencv application
  • 10. MediaPipe development
08.ROS robot course
  • 1.PID algorithm
  • 2.Basic communication
  • 3.Keyboard control
  • 4.Handle control(Optional)
  • 5.Robot state estimation
  • 6.Data calibration
09.ROS simple camera course
  • 1.HD camera calibration
  • 2.HD camera color tracking
  • 3.HD camera color tracking (robotic arm)
  • 4.HD camera object tracking
  • 5. KCF target tracking
  • 6.HD camera face tracking
  • 7.HD camera robotic arm carrying
  • 8.HD camera Autopilot
10.ROS robotic arm control tutorial
  • 1.MoveIt configuration
  • 2.MoveIt control the real machine
  • 3.MoveIt moves randomly
  • 4.MoveIt kinematics design
  • 5.MoveIt cartesian path
  • 6.MoveIt avoiding
  • 7.MoveIt scene design
  • 8.MoveIt trajectory planning
  • 9.Mediapipe palm control car
  • 10.Mediapipe gesture control robotic arm
  • 11.Mediapipe gesture control car
  • 12.Mediapipe arm attitude control robotic arm
11.ROS multi-robot control(Optional)
  • 1. Multi-robot control(Optional)
  • 2. Multi-robot queue performance(Optional)
  • 3. Multi-robot robot arm dancing(Optional)
12.Deep learning courses
  • 1.KNN recognizes handwritten digits
  • 2.Basic use of TensorFlow
  • 3.Basic use of PyTorch(jetson)
  • 4.yolov5 model training(jetson)
  • 5.yolov5+tensorrt acceleration(jetson)
  • 6.yolov4-tiny
13.Installation Video
  • Part18
  • Part1-6
  • Part7-12
  • Part13.1-13.3.3
  • Part13.4.1-17
14.FAQnew
  • 1.Using your own Jetson board,Transbot-SE cannot start normally
Download
  • APP(iOS/Android)
  • System_File-Pi5
  • System_File-Pi4
  • System_File-Jetson
  • VM_File
  • Appendix
  • Code
  • InstructionManual
  • Jetson_Boot_USB.tar.gz
  • Hardware_Info
Download ZIP

Welcome to Transbot SE repository

2.Basic use of TensorFlow

2.Basic use of TensorFlow

2.Basic use of TensorFlow2.1 What is TensorFlow 2.1.1 Definition 2.1.2 core components 2.2 TensorFlow 2 2.2.1 Introduction 2.2.2 Upgrading direction 2.3 TensorFlow basic concept syntax 2.3.1 Tensor 2.3.2 Use the Eager Execution(dynamic graph) mechanism to operate on tensors 2.3.3 Neural network 2.3.4 Building and training neural network(kear) 2.3.5 Example of training neural network - classic example of training cat and dog images

2.1 What is TensorFlow

2.1.1 Definition

TensorFlow™ is a dataflow programming, which is widely used in the programming implementation of various machine learning algorithms. Its predecessor was Google 's neural network algorithm library DistBelief.

Tensorflow has a multi-level structure and can be deployed on various servers , PC terminals and web pages and supports GPU and TPU high-performance numerical computing . It is widely used in Google's internal product development and scientific research in various fields.

2.1.2 core components

The core components(core runtime) of distributed TensorFlow include: distribution center(distributed master), executor(dataflow executor/worker service), kernel application(kernel implementation), and the bottommost device layer (device layer)/ network layer (layer).

image-20220223174953830

  1. distribution center(distributed master)

The distribution center clips the subgraph from the input data flow graph, divides it into operation fragments and starts the executor. The distribution center will perform preset operation optimizations when processing the data flow graph, including common subexpression elimination, constant folding, etc.

  1. The executor is responsible for running graph operations in processes and devices, and sending and receiving results from other executors. Distributed TensorFlow has a parameter server to aggregate and update model parameters returned by other executors. Executors choose to perform [parallel computation ]and GPU acceleration when scheduling local devices.
  2. The kernel application is responsible for a single graph operation, including mathematical calculations, array manipulation, control flow, and state management operations. The kernel application uses [Eigen ] to perform parallel computation of tensors, cuDNN library etc. to perform GPU acceleration, gemmlowp to perform low numerical precision computation, and users can register additional kernels(fused kernels) in the kernel application to improve basic operations, such as excitation functions and The running efficiency of its gradient calculation.

2.2 TensorFlow 2

2.2.1 Introduction

TensorFlow is an open source tool for deep learning released by Google in November 2015. We can use it to quickly build deep neural networks and train deep learning models.The main purpose of using TensorFlow and other open source frameworks is to provide us with a module toolbox that is more conducive to building deep learning networks, so that the code can be simplified during development, and the final model presented is more concise and easy to understand.

2.2.2 Upgrading direction

  1. Easily build models using Keras and Eager Execution.
  2. to achieve a robust production environment model deployment on any platform.
  3. to provide powerful experimental tools for research.
  4. Simplify the API by cleaning up deprecated APIs and reducing duplication.

2.3 TensorFlow basic concept syntax

2.3.1 Tensor

  1. Tensor is the core data unit of TensorFlow, which is essentially an array of arbitrary dimensions. We call a 1-dimensional array a vector, a 2-dimensional array a matrix, and a tensor can be regarded as an N-dimensional array.
  2. In TensorFlow, each Tensor has two basic properties: data type(default: float32) and shape. The data types are roughly as shown in the table below,
Tensor typedescribe
tf.float3232-bit floating point number
tf.float6464-bit floating point
tf.int6464-bit signed integer
tf.int3232-bit signed integer
tf.int1616-bit signed integer
tf.int88-bit signed integer
tf.uint88-bit unsigned integer
tf.stringvariable length byte array
tf.boolboolean
tf.complex64real and imaginary numbers
  1. According to different uses, there are two main types of tensor in TensorFlow, namely
  • tf.Variable : Variable Tensor, which needs to specify the initial value. It is often used to define variable parameters, such as the weight of a neural network.
  • tf.constant : constant Tensor, you need to specify the initial value, define a tensor that does not change
  1. define a variable Tensor

Create a new python file, name it Tensor_Variable, and give it permission to execute, (Note: The Python version used on the Raspberry Pi is 3.7. Please use python3.7 when running commands!)

(Note: You do not need to enter docker when running Raspberry Pi 5. Just open a new terminal to run. Please use python3 when running commands)

sudo chmod a+x Tensor_Variable.py 

Paste the following code inside,

xxxxxxxxxx
import  tensorflow  as  tf 
v = tf.Variable([[ 1, 2 ], [ 3, 4 ]])     # 2D variable of shape(2, 2) 
print(v) 

run the test,

xxxxxxxxxx
python3 Tensor_Variable.py 

output,

xxxxxxxxxx
<tf.Variable 'Variable:0' shape=(2, 2) dtype=int32, numpy= 
array([[1, 2], 
       [3, 4]], dtype=int32)> 
  1. define a constant Tensor

Create a new python file, name it Tensor_constant, and give it permission to execute,

xxxxxxxxxx
sudo chmod a+x Tensor_constant.py 

Paste the following code inside,

xxxxxxxxxx
import  tensorflow  as  tf 
v = tf.constant([[ 1, 2 ], [ 3, 4 ]])     # 2D variable of shape(2, 2) 
print(v) 

run the test,

xxxxxxxxxx
python3 Tensor_constant.py 

output,

xxxxxxxxxx
<tf.Tensor: id=9, shape=(2, 2), dtype=int32, numpy= 
array([[1, 2], 
       [3, 4]], dtype=int32)> 

If you look closely, you will find that the output tensor has three attributes: shape, data type dtype, and NumPy array.

6), the commonly used method of creating a new special constant tensor:

  • tf.zeros: Create a new constant Tensor with the specified shape and all 0s

    Example: c = tf.zeros([2, 2]) # 2x2 constant Tensor with all 0s

    output,

xxxxxxxxxx
<tf.Tensor: id=12, shape=(2, 2), dtype=float32, numpy= 
array([[0., 0.], 
       [0., 0.]], dtype=float32) 
  • tf.ones_like: Referring to a certain shape, create a new constant Tensor with all 1s

For example: v = tf.ones_like(c) # A constant Tensor that is consistent with the shape of tensor c and is all 1. Note that the shape here refers to the attribute shape of the tensor

output,

xxxxxxxxxx
<tf.Tensor: id=15, shape=(3, 3), dtype=float32, numpy= 
array([[1., 1.], 
       [1., 1.]],dtype=float32) 
  • tf.fill: Create a new constant Tensor with a specified shape and a scalar value

Example: a = tf.fill([2, 3], 6) # 2x3 constant Tensor with all 6

output,

xxxxxxxxxx
<tf.Tensor: id=18, shape=(2, 3), dtype=int32, numpy= 
array([[6, 6, 6], 
       [6, 6, 6]], dtype=int32)> 
  • tf.linspace: create an equally spaced sequence

    Example: c = tf.linspace(1.0, 10.0, 5, name="linspace")

output,

xxxxxxxxxx
<tf.Tensor: id=22, shape=(5,), dtype=float32, numpy=array([ 1. , 3.25, 5.5, 7.75, 10.  ], dtype=float32)> 
  • tf.range: create a sequence of numbers

    Example: c = tf.range(start=2, limit=8, delta=2)

    output,

xxxxxxxxxx
<tf.Tensor: id=26, shape=(5,), dtype=int32, numpy=array([2, 4, 6, 8], dtype=int32)> 

This part of the code can be referred to:

xxxxxxxxxx
~/TensorFlow_demo/tensor_init.py 

2.3.2 Use the Eager Execution(dynamic graph) mechanism to operate on tensors

  1. Changes in the tensor operation mechanism of TensorFlow2 and TensorFlow1.x

The dynamic graph mechanism is the biggest difference between TensorFlow2.x and TensorFlow1.x, which is similar to PyThorch, simplifying the code and execution process.

  1. take tensor addition as an example to illustrate,

Create a new python file, name it tensor_plus, and give it permission to execute,

xxxxxxxxxx
sudo chmod a+x tensor_plus.py 

Paste the following code inside,

xxxxxxxxxx
a  =  tf.fill([ 2, 3 ], 6) 
b  =  tf.fill([ 2, 3 ], 2) 
c  =  a  +  b 
print(a) 
print(b) 
print(c) 

run the test,

xxxxxxxxxx
python3 tensor_plus.py         

image-20220224102821953

It can be found that the python execution process is the same, and if it is in Tensorflow1.x, a session needs to be established, and the session performs the addition operation inside.

  1. TensorFlow commonly used API:
  • tf.math: Mathematical calculation module, which provides a large number of mathematical calculation functions.
  • tf.linalg: Linear algebra module, provides a large number of linear algebra calculation methods and classes.
  • tf.image: Image processing module, provides classes like image cropping, transformation, encoding, decoding, etc.
  • tf.train: Provides components for training, such as optimizers, learning rate decay strategies, etc.
  • tf.nn: Provides the underlying functions for building neural networks to help implement various functional layers of deep neural networks.
  • tf.keras: The original Keras framework high-level API. Contains the high-level neural network layers from the original tf.layers.
  • tf.data: Input data processing module, provides classes like tf.data.Dataset to encapsulate input data, specify batch size, etc.

For the usage of these commonly used APIs, please refer to the official documentation:

Module: tf | TensorFlow Core v2.8.0(google.cn)

2.3.3 Neural network

  1. Neural network is a mathematical model, which exists in the nervous system of the computer. It is connected and calculated by a large number of neurons. On the basis of external information, the internal structure is changed. relationship is modeled. The structure of a basic neural network has an input layer, a hidden layer, and an output layer. The following figure is a neural network diagram,

image-20220427131059873

  1. input layer: receive perception information;
  2. Hidden layer: processing the input information;
  3. the output layer: the output computer's cognition of the input information.

2.3.4 Building and training neural network(kear)

  1. import data data
xxxxxxxxxx
x_train = datasets.load_iris().data 
y_train = datasets.load_iris().target 

more information on data, please refer to: tf.data.Dataset | TensorFlow Core v2.8.0(google.cn)

  1. define a structural network describing the neural network
xxxxxxxxxx
model = tf.keras.models.Sequential() 

Example:

xxxxxxxxxx
model  =  tf.keras.Sequential([ 
    tf.keras.layers.Dense(3, activation = 'softmax', kernel_regularizer = tf.keras.regularizers.l2()) 
]) 

The input parameters represent the network structure from the input layer to the output layer, generally there are the following three:

  • Flatten layers: tf.keras.layers.Flatten()

    Refer to the official documentation: tf.keras.layers.Flatten | TensorFlow Core v2.8.0(google.cn)

  • Fully connected layer: tf.keras.layers.Dense()

    Refer to the official documentation: tf.keras.layers.Dense | TensorFlow Core v2.8.0(google.cn)

  • Convolutional layer: tf.keras.layers.Conv2D()

    Refer to the official documentation: tf.keras.layers.Conv2D | TensorFlow Core v2.8.0(google.cn)

  1. configure the training method for training the neural network
xxxxxxxxxx
model.compile(optimizer = optimizer, loss = loss function, metrics = ["accuracy"]) 

Example:

xxxxxxxxxx
model.compile(optimizer = tf.keras.optimizers.SGD(lr = 0.1), 
              loss = tf.keras.losses.SparseCategoricalCrossentropy(from_logits = False), 
              metrics =[ tf.keras.metrics.sparse_categorical_accuracy ]) 

The input parameter is composed of the following three parts:

  • optimizer: optimizer

    Mainly set the learning rate lr, learning decay rate decay and momentum parameters.

  • loss: loss function

  • metrics: accuracy

    Multiple accuracy rates can be specified.

the specific values of the three parameters, please refer to: tf.keras.Model | TensorFlow Core v2.8.0(google.cn)

  1. Execute the training process
xxxxxxxxxx
model.fit(x=input features of training set, y=label of training set, batch_size=specify the number of samples included in each batch when gradient descent is performed, 
        eTOChs=value at the end of training,validation_data=(input features of test set, labels of test set), 
        validataion_split = how much to split from the training set to the test set, 
        validation_freq = number of eTOCh intervals for testing) 

Example:

xxxxxxxxxx
model.fit(x_train, y_train, batch_size = 32, eTOChs = 5, validation_data =(x_test, y_test), validation_freq = 1) 

specific parameter settings, please refer to: tf.keras.Model | TensorFlow Core v2.8.0(google.cn)

  1. print network structure and parameter statistics
xxxxxxxxxx
model.summary() 

specific parameter settings, please refer to: tf.keras.Model | TensorFlow Core v2.8.0(google.cn)

2.3.5 Example of training neural network - classic example of training cat and dog images

  1. code path reference
xxxxxxxxxx
~/TensorFlow_demo/cats_dogs_demo.py 
  1. run the program
xxxxxxxxxx
cd TensorFlow_demo/ 
python3 cats_dogs_demo.py 
  1. Screenshot of program running

When a cat or puppy photo appears, in the picture display window, press the q key to continue the program.

image-20220228121929519

image-20220228122605151

The number of training eTOChs for the model is 10, and the sample batch is 10. The coordinate curve on the left shows that as the number of training increases, both the accuracy acc and error loss rise and fall.

KNN recognizes handwritten digits
Basic use of PyTorch(jetson)

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文