RT-Thread之入门跑代码

2023-05-16

本文将讲述如何在window10中利用tensorflow跑代码,并且编译成bin文件,最后在k210中运行

一、在window上安装tensorflow框架(python3.7)

1、安装Anaconda,打开Anaconda Navigator创建一个python3.7的环境(起一个名字叫python3)

###在我们只有其他版本列如python3.5,我们可以利用python3.5创建出一个python3.###

在Anaconda Promp中输入

 
conda create --name python3 python=3.7
 
activate python3

############################################################################

2、在pytho3.7的基础上面创建一个tensorflow的环境

在Anaconda Prompt中输入:

conda create -n tensorflow python=3.7
activate tensorflow

切换了就代表成功了我们要安装的是CPU版本,那么在命令下紧接着输入:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow

注意!!!上面这步经常Anaconda安装tensorflow出现Failed building wheel for grpcio问题的解决

我们要手动下载具体自己找

3、测试tensorflow是否安装成功

在tensorflow中输入

在Anaconda Prompt窗口中输入: python

进入python后依次输入:

import tensorflow as tf

sess = tf.Session()

a = tf.constant(10)

注意!!!sess = tf.Session会应为tensoflow版本不同出现表达问题

二、将我们的上面创建的tensorflow环境加入到jupyter编译环境之中

(在Anaconda prompt中输入)

 1、列出当前的虚拟环境

conda env list

2、激活想要用的虚拟环境 假设环境名为abc

conda activate abc

3、安装ipykernel

pip install ipykernel

4、再执行'

python -m ipykernel install --name abc

三、在tensoflow中安装open cv

pip install opencv_python
pip install opencv-contrib-python // opencv的扩展包,里边有一些图像处理的算法

四、在jupyter上面跑代码

1、找到形如lab3_mnist_training.ipynb文件的路径的终端,输入jupyter notebook进入编译界面

2、在Kemel中加入tensorflow 之前我第四步把环境命名为abc了

3、运行代码每个模块都要运行,错了就会有显示

注意!!!python版本代码差别较大,新手不要乱换环境

出现l了xx model  not  define是因为没有安装这个包,我们输入命名

pip  install xx

4、在model中出现类似mnist.h5(tensorflow模型)和mnist.tflite(适合RT-AK的模型)的文件表示训练成功了

五、生成bin文件

1、使用RT-AK使得模型量化(可以比原来的模型更加高效)

# 示 例(量 化 模 型, 图 片 数 据 集) $ python aitools.py --project="D:\Project\K210_Demo\k210-test" --model="./Models/ mnist.tflite" --model_name=mnist --platform=k210 --dataset="xxx\Lab1-Mnist\ Datasets\quantize_data"

其中,--project 是你的目标工程路径,--model 是你的模型路径(这里使用的是 RT-AK 自带的模型 文件),--model_name 是转化的模型文件名,--platform 是指定插件支持的目标平台为 K210,--dataset是模型量化所需要用到的数据集。

量化的目的,实际上他这个rt-ak它是整合了,不仅是量化,而且是它生成了那个我们所需要的k model,比如说R工具,它能够把那个模型,它能够以巴比特形式把它裁剪,然后裁剪之后呀,裁剪,压缩之后呢,然后把它转化为我们所需要的k model,以及我们嵌入式工程需要的一些,应该是k model,他附带的一些文件,总共是三个文件,它会生成出来。

 2、设置工具链路径

在此路径下打开终端D:\RT-AK-main\RT-AK-main\RT-AK\rt_ai_tools,将生成的三个文件替代

python aitools.py --project=D:\EAI\lab3-mnist --model=D:\EAI\lab3-mnist\Models\mnist.tflite --model_name=mnist --platform=k210 --dataset=D:\EAI\lab3-mnist\Datasets\quantize_data

2、烧录

设置工具链位置

只要找到最后bin文件的位置就可以,注意代码里面已经写了工具链的路径,要把他放在指定位置

set RTT_EXEC_PATH=D:\rt\xpack-riscv-none-embed-gcc-8.3.0-1.2-win32-x64\xpack-riscv-none-embed-gcc-8.3.0-1.2\bin

 在D:\EAI\lab3-mnist路径打开终端输入

编译生成bin文件

scons

6、将bin导入k210中,点击flash,最后在env_released_1.2.0(里面有个exe程序)文件中编译

 (未完待续!@!!!)

     

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RT-Thread之入门跑代码 的相关文章

  • RT-thread 中CAN总线的应用

    准备 xff1a RT thread Studio 2 2 5 CubeMX 6 6 1 rt thread驱动包 4 0 3 1 新建项目 2 打开CubeMX Settings xff0c 设置CAN 找到CAN1 xff0c 并勾选激
  • interview5-多线程篇

    一 线程的基础知识 1 线程与进程 程序由指令和数据组成 但这些指令要运行 数据要读写 就必须将指令加载至 CPU 数据加载至内存 在指令运行过程中还需要用到磁盘 网络等设备 进程就是用来加载指令 管理内存 管理 IO 的 进程 当一个程序
  • std::jthread与std::thread区别

    std jthread是C 20新引入的线程类 与 std thread 类似 或者说 jthread是对thread进一步的封装 功能更强大 std jthread的 j实际上是 joining的缩写 众所周知 std thread在其生
  • yield和join方法的使用。

    join方法用线程对象调用 如果在一个线程A中调用另一个线程B的join方法 线程A将会等待线程B执行完毕后再执行 yield可以直接用Thread类调用 yield让出CPU执行权给同等级的线程 如果没有相同级别的线程在等待CPU的执行权
  • AFX_MANAGE_STATE(AfxGetStaticModuleState())讲解

    以前写MFC的DLL的时候 总会在自动生成的代码框架里看到提示 需要在每一个输出的函数开始添加上AFX MANAGE STATE AfxGetStaticModuleState 一直不明白这样做的含义 也一直没有这样做 而且代码也工作得好好
  • C#-Async关键字(异步方法)

    async关键字 异步方法 async关键字是C 特有的 Java没有这玩意 async在C 世界里是上下文关键字 它只有在修饰一个方法的时候才自动被编译器识别为关键字 在代码的其他位置上可以被用作变量名等其他任何用途 async关键字用来
  • java多线程使用详解与案例,超详细

    文章目录 线程lamda表达式方式启动 简单 常用 java使用多线程的三种方式 继承Thread 实现Runnable 实现Callable 线程池的使用 守护线程 使用lamda表达式简化java的书写简单化案例如下 多线程综合案例 1
  • 线程进程协程的实现代码

    单线程 import time def run print hello world time sleep 1 if name main for i in range 5 run 多线程 import threading import tim
  • Java 线程的生命周期(对应七大状态)

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 线程的生命周期 线程状态的转换 通过代码输出线程的状态 代码如下 public class ThreadState public sta
  • 分析Java线程池执行原理

    Java并发编程源码分析系列 分析Java线程池的创建 上一篇已经对线程池的创建进行了分析 了解线程池既有预设的模板 也提供多种参数支撑灵活的定制 本文将会围绕线程池的生命周期 分析线程池执行任务的过程 线程池状态 首先认识两个贯穿线程池代
  • 同步方法及同步代码块

    synchronized方法和synchronized块 synchronized方法必须获得对象的锁才能执行 否则线程阻塞 方法一旦执行 就独占此锁 直到方法返回才释放锁 后面被阻塞的线程才能获得这个锁 继续执行 synchronized
  • Qt中的线程详解

    概述 在多核时代 CPU 的主频已经进入瓶 颈 另辟蹊径地提高程序运行效率就是使用线程 充分利用多核的优势 线程可以看做是 轻量级进程 线程即可以由操作系统管理 也可以由应用程序管 1 为什么要使用线程 我们都知道 进程线程的概念是非常重要
  • SuspendThread 造成程序死锁的一个例子

    msdn对SuspendThread 的说明 This function is primarily designed for use by debuggers It is not intended to be used for thread
  • pthread_attr_init线程属性

    1 线程属性 线程具有属性 用pthread attr t表示 在对该结构进行处理之前必须进行初始化 在使用后需要对其去除初始化 我们用pthread attr init函数对其初始化 用pthread attr destroy对其去除初始
  • 实时系统RTX之理解一

    文献来源 http wzhyblog yo2 cn articles e5 ae 9e e6 97 b6 e7 b3 bb e7 bb 9frtx e5 ae 98 e6 96 b9 e6 96 87 e6 a1 a3 e4 b8 ad e
  • 使用org.apache.tools.zip包操作文件

    import java io import org apache tools zip import java util Enumeration 功能 zip压缩 解压 支持中文文件名 说明 本程序通过使用Apache Ant里提供的zip工
  • 多线程的异步调用(一)

    最近手头做的项目中 用到了多线程的异步调用 在控制线程中实时的检测硬件的变化 如果硬件发生了某些变化 那么需要通知别的模块做一些相应的操作 为了让这些操作不会影响控制线程的继续运行 就在多线程中使用了异步调用的方法 using System
  • 多核编程学习笔记之OpenMP(一)

    多核编程学习笔记之OpenMP 一 I 配置及简介 1 1 在VC 2008 VC9 0 中 如果没有任何设置 在代码中使用编译指导语句将不会报错 但是也不起作用 1 2 OpenMP发展与优势 1 2 1 OpemMP的规范由SGI发起
  • 如何终止一个无限循环线程和 程序退出时销毁线程

    http zhidao baidu com question 299079849 html android 启动了一个子线程 这个子线程是一个死循环 不成的打印 Hello 现在要实现点击一个Button 让这个子线程终止 用什么方法啊 s
  • POSIX线程:API

    一 线程创建与取消 1 线程创建 1 1 线程与进程 相对进程而言 线程是一个更加接近于执行体的概念 它可以与同进程中的其他线程共享数据 但拥有自己的栈空间 拥有独立的执行序列 在串行程序基础上引入线程和进程是为了提高程序的并发度 从而提高

随机推荐

  • Linux硬件信息查看命令

    查看磁盘 df 查看CPU信息 cat proc cpuinfo 查看显卡 lspci grep VGA 查看OS采用核心号 lsb release cs Linux查看当前操作系统版本信息 cat proc version Linux查看
  • DockerFile的使用

    DockerFile的使用 一 DockerFile构建过程解析1 1 Dockerfile内容基础知识1 2 Docker执行Dockerfile的大致流程 二 DockerFile常用保留字指令三 DockerFile案例3 1 先准备
  • myeclipse2019 4.0配置tomcat9的两个问题

    myeclipse2019 4 0配置tomcat9的两个问题 问题一 xff1a myeclipse配置tomcat端口无效 图中提示Tomcat的一个或多个端口无效 xff08 并非占用 xff0c 端口占用看问题二 xff09 出现这
  • MySQL-约束(三)

    MySQL 约束 约束的定义常见的约束类型表级约束与列级约束例子非空约束 NOT NULL 唯一约束 UNIQUE 联合唯一约束 默认约束 DEFAULT 主键约束 PRIMARY KEY 复合主键约束复合主键与联合主键 外键约束 FORE
  • 双系统之kali

    双系统之kali 所用工具制作kali的引导盘硬盘分区安装kali设置启动引导设置root密码U盘恢复 下面文章多为图片形式 xff0c 每个图片中包含详细的步骤 所用工具 16G的U盘一个 xff0c 电脑一台 所有的软件均已上传至百度网
  • 连接GitHub提示远程主机关闭连接

    连接GitHub提示远程主机关闭连接 发现问题排查问题反思 错误代码 xff1a kex exchange identification Connection closed by remote host 发现问题 今天晚上使用git连接了G
  • Linux - Nginx安装

    Linux Nginx安装 下载 amp 配置启动优化nginx添加新模块 本文由于是学习 xff0c 所以使用tar包安装 xff0c Linux版本CentOS7 xff0c nginx 1 20 2 xff0c 本次安装路径为 usr
  • 异常记录-3

    异常记录 3 异常类名描述问题原因解决方案异常重现 异常类名 org springframework beans BeanInstantiationException 描述 Failed to instantiate javax servl
  • 异常记录-22

    异常记录 22 异常描述问题原因解决方案异常重现 异常 ssl SSLEOFError EOF occurred in violation of protocol ssl c 997 描述 urllib3 exceptions MaxRet
  • Linux - RabbitMQ部署

    Linux RabbitMQ部署 准备部署账户创建使用 准备 span class token function cat span etc redhat release 查看自己的服务器什么版本的 xff0c 本人使用的CentOS8 安装
  • Linux - MongoDB部署

    MongoDB部署 准备部署mongoDB部署 启动优化角色 参考 准备 MongoDB下载 官方下载 选择自己需要的版本 xff0c 以及服务器版本 xff0c 以及安装方式 xff0c 本篇文章我们安装6 0MongoDB使用CentO
  • 异常记录-23

    异常记录 23 异常描述问题原因解决方案异常重现 异常 64 WebFilter 描述 Java 过滤器 64 WebFilter不起作用 问题原因 64 WebFilter需要注册到Bean中 xff0c 只写注解不起作用的 解决方案 在
  • Vscode黑色主题很难看到鼠标

    Vscode黑色主题很难看到鼠标 xff0c 像瞎了一样 xff0c 找半天不知道鼠标在哪里 xff0c 解决办法 xff1a 控制面板 鼠标 指针 看 自定义 选择 文本选择 点击 浏览 选择 beam r xff0c 这个是光标周围带白
  • python中变量前面加单下划线和双下划线的区别&python的私有属性

    一 在py文件中 变量名字前面加单下划线和双下划线都是对变量的保护 xff0c 一种约定 xff0c 用来指定变量私有 程序员用来指定私有变量的一种方式 不能用from module import 导入 xff0c 其他方面和公有一样访问
  • APM、PIXHAWK、PX4的关系

  • QT小记:QT程序异常结束的可能原因

    一 问题 xff1a 程序异常结束 二 解决 1 解决思路 xff08 1 xff09 QT程序异常结束的原因之一可能引用了某个库 xff0c 但是某个库QT找不到 xff0c 就会出现崩溃的问题 解决 xff1a 1 检查pro文件是否正
  • C语言:十进制转换成十六进制字符串和数组

    1 十进制转换成十六进制字符串 include lt stdio h gt 函数 xff1a 将十进制数字转换为十六进制 xff0c 并将转换后的数字存储在字符串中并输出 void dec2hex int n char str 100 in
  • 【统计计算】课程总结笔记

    传统的主成分分析法 xff08 PCA xff09 缺陷在于 xff1a 对于 小样本问题 xff08 样本维数d远大于样本个数N xff09 xff0c 样本协方差矩阵规模 d d 太大了 xff0c 在后续求特征值问题中计算量较大 于是
  • ros --- 双目相机内参与外参标定

    ros 双目相机内参与外参标定 小觅相机直接获取参数手动重新标定1 双目相机内外参标定生成标定板录制 stereo calibra bag标定标定结果标定验证 2 双目 43 imu外参标定录制 stereo 43 imu calibra
  • RT-Thread之入门跑代码

    本文将讲述如何在window10中利用tensorflow跑代码 xff0c 并且编译成bin文件 xff0c 最后在k210中运行 一 在window上安装tensorflow框架 xff08 python3 7 xff09 1 安装An