在ARM板子上把玩Tensorflow Lite

在ARM64平台下安装TensorFlow 在ARM64平台下安装TensorFlow 1.安装前环境配置 2.安装TensorFlow 阅读详情
AI摘要

本文详细介绍如何将TensorFlow Lite部署到ARM平台,包括交叉编译环境搭建、源码编译、模型转换及最终在ARM板子上的运行测试。特别关注了性能优化技巧和常见问题解决方案。

前几天Google的IO大会上发布的ML Kit,ML Kit为端上部署深度学习模型提供了一套完整的解决方案,本地运行、云端都支持。里面本地部署用到的就是Tensorflow lite。

Tensorflow Lite是在Google去年IO大会上发表的,目前Tensorflow Lite也还在不断的完善迭代中。

Tensorflow Lite在Android和iOS上部署官网有比较详细的介绍以及对应的Demo。而对于ARM板子上的部署及测试,官网及网上的资料则相对较少。本文主要描述如何把Tensorflow Lite编译到ARM板子上,并运行相应的Demo。

0.准备工作:在Ubuntu上准备ARM的交叉编译环境

可以通过 apt-get install 直接在ubuntu上安装交叉编译环境

sudo apt-get install g++-arm-linux-gnueabihf
sudo apt-get install -y gcc-arm-linux-gnueabihf

1.下载Tensorflow源码

git clone https://github.com/tensorflow/tensorflow

2.下载Tensorflow相关依赖包

先cd到Tensorflow工程的根目录,然后执行下面的脚本

./tensorflow/contrib/lite/download_dependencies.sh

3.编译Tensorflow Lite

注意./tensorflow/contrib/lite/build_rpi_lib.sh中的目标编译平台是ARMV7,这里最好不要改,即使你的目标平台是ARMv8。改为ARMv8能也能编译通过,但是貌似没有把优化编译进去,运行起来会非常慢,亲测。

# 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.
# ==============================================================================

set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR/../../.."

#change CC_PREFIX if u need
CC_PREFIX=arm-linux-gnueabihf- make -j 3 -f tensorflow/contrib/lite/Makefile TARGET=RPI TARGET_ARCH=armv7

在根目录下运行该脚本,如下:

./tensorflow/contrib/lite/build_rpi_lib.sh

编译结束,会在tensorflow/contrib/lite/gen/lib/rpi_armv7目录下产生libtensorflow-lite.a静态库。

4.编译 label_image Demo

第三步的 build_rpi_lib.sh 脚本实际是调用的 ./tensorflow/contrib/lite/Makefile对Tensorflow Lite 源码进行编译,但是该 Makefile 并不能编译 tensorflow/contrib/lite/examples/label_image 目录下的Demo,所以需要修改 Makefile 把 label_image 的源码配置到Makefile中,修改方式可以参考 Makefile 里对 MINIMAL Demo 的配置。如果你不想自己改,下面是已经修改好的。

# Find where we're running from, so we can store generated files here.
ifeq ($(origin MAKEFILE_DIR), undefined)
    MAKEFILE_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
endif

# Try to figure out the host system
HOST_OS :=
ifeq ($(OS),Windows_NT)
    HOST_OS = WINDOWS
else
    UNAME_S := $(shell uname -s)
    ifeq ($(UNAME_S),Linux)
            HOST_OS := LINUX
    endif
    ifeq ($(UNAME_S),Darwin)
        HOST_OS := OSX
    endif
endif

ARCH := $(shell if [[ $(shell uname -m) =~ i[345678]86 ]]; then echo x86_32; else echo $(shell uname -m); fi)

# Where compiled objects are stored.
OBJDIR := $(MAKEFILE_DIR)/gen/obj/
BINDIR := $(MAKEFILE_DIR)/gen/bin/
LIBDIR := $(MAKEFILE_DIR)/gen/lib/
GENDIR := $(MAKEFILE_DIR)/gen/obj/

# Settings for the host compiler.
CXX := $(CC_PREFIX)gcc
CXXFLAGS := --std=c++11 -O3 -DNDEBUG
CC := $(CC_PREFIX)gcc
CFLAGS := -O3 -DNDEBUG
LDOPTS :=
LDOPTS += -L/usr/local/lib
ARFLAGS := -r

INCLUDES := \
-I. \
-I$(MAKEFILE_DIR)/../../../ \
-I$(MAKEFILE_DIR)/downloads/ \
-I$(MAKEFILE_DIR)/downloads/eigen \
-I$(MAKEFILE_DIR)/downloads/gemmlowp \
-I$(MAKEFILE_DIR)/downloads/neon_2_sse \
-I$(MAKEFILE_DIR)/downloads/farmhash/src \
-I$(MAKEFILE_DIR)/downloads/flatbuffers/include \
-I$(GENDIR)
# This is at the end so any globally-installed frameworks like protobuf don't
# override local versions in the source tree.
INCLUDES += -I/usr/local/include

LIBS := \
-lstdc++ \
-lpthread \
-lm \
-lz

# If we're on Linux, also link in the dl library.
ifeq ($(HOST_OS),LINUX)
    LIBS += -ldl
endif

include $(MAKEFILE_DIR)/ios_makefile.inc
include $(MAKEFILE_DIR)/rpi_makefile.inc

# This library is the main target for this makefile. It will contain a minimal
# runtime that can be linked in to other programs.
LIB_NAME := libtensorflow-lite.a
LIB_PATH := $(LIBDIR)$(LIB_NAME)

# A small example program that shows how to link against the library.
MINIMAL_PATH := $(BINDIR)minimal
LABEL_IMAGE_PATH :=$(BINDIR)label_image

MINIMAL_SRCS := \
tensorflow/contrib/lite/examples/minimal/minimal.cc
MINIMAL_OBJS := $(addprefix $(OBJDIR), \
$(patsubst %.cc,%.o,$(patsubst %.c,%.o,$(MINIMAL_SRCS))))


LABEL_IMAGE_SRCS := \
tensorflow/contrib/lite/examples/label_image/label_image.cc \
tensorflow/contrib/lite/examples/label_image/bitmap_helpers.cc 
LABEL_IMAGE_OBJS := $(addprefix $(OBJDIR), \
$(patsubst %.cc,%.o,$(patsubst %.c,%.o,$(LABEL_IMAGE_SRCS))))

# What sources we want to compile, must be kept in sync with the main Bazel
# build files.

CORE_CC_ALL_SRCS := \
$(wildcard tensorflow/contrib/lite/*.cc) \
$(wildcard tensorflow/contrib/lite/kernels/*.cc) \
$(wildcard tensorflow/contrib/lite/kernels/internal/*.cc) \
$(wildcard tensorflow/contrib/lite/kernels/internal/optimized/*.cc) \
$(wildcard tensorflow/contrib/lite/kernels/internal/reference/*.cc) \
$(wildcard tensorflow/contrib/lite/*.c) \
$(wildcard tensorflow/contrib/lite/kernels/*.c) \
$(wildcard tensorflow/contrib/lite/kernels/internal/*.c) \
$(wildcard tensorflow/contrib/lite/kernels/internal/optimized/*.c) \
$(wildcard tensorflow/contrib/lite/kernels/internal/reference/*.c) \
$(wildcard tensorflow/contrib/lite/downloads/farmhash/src/farmhash.cc) \
$(wildcard tensorflow/contrib/lite/downloads/fft2d/fftsg.c)
# Remove any duplicates.
CORE_CC_ALL_SRCS := $(sort $(CORE_CC_ALL_SRCS))
CORE_CC_EXCLUDE_SRCS := \
$(wildcard tensorflow/contrib/lite/*test.cc) \
$(wildcard tensorflow/contrib/lite/*/*test.cc) \
$(wildcard tensorflow/contrib/lite/*/*/*test.cc) \
$(wildcard tensorflow/contrib/lite/*/*/*/*test.cc) \
$(wildcard tensorflow/contrib/lite/kernels/test_util.cc) \
$(MINIMAL_SRCS) \
$(LABEL_IMAGE_SRCS)
# Filter out all the excluded files.
TF_LITE_CC_SRCS := $(filter-out $(CORE_CC_EXCLUDE_SRCS), $(CORE_CC_ALL_SRCS))
# File names of the intermediate files target compilation generates.
TF_LITE_CC_OBJS := $(addprefix $(OBJDIR), \
$(patsubst %.cc,%.o,$(patsubst %.c,%.o,$(TF_LITE_CC_SRCS))))
LIB_OBJS := $(TF_LITE_CC_OBJS)

# For normal manually-created TensorFlow C++ source files.
$(OBJDIR)%.o: %.cc
    @mkdir -p $(dir $@)
    $(CXX) $(CXXFLAGS) $(INCLUDES) -c $< -o $@

# For normal manually-created TensorFlow C++ source files.
$(OBJDIR)%.o: %.c
    @mkdir -p $(dir $@)
    $(CC) $(CCFLAGS) $(INCLUDES) -c $< -o $@

# The target that's compiled if there's no command-line arguments.
all: $(LIB_PATH)  $(MINIMAL_PATH) $(LABEL_IMAGE_PATH)

# Gathers together all the objects we've compiled into a single '.a' archive.
$(LIB_PATH): $(LIB_OBJS)
    @mkdir -p $(dir $@)
    $(AR) $(ARFLAGS) $(LIB_PATH) $(LIB_OBJS)

$(MINIMAL_PATH): $(MINIMAL_OBJS) $(LIB_PATH)
    @mkdir -p $(dir $@)
    $(CXX) $(CXXFLAGS) $(INCLUDES) \
    -o $(MINIMAL_PATH) $(MINIMAL_OBJS) \
    $(LIBFLAGS) $(LIB_PATH) $(LDFLAGS) $(LIBS)


$(LABEL_IMAGE_PATH): $(LABEL_IMAGE_OBJS) $(LIB_PATH)
    @mkdir -p $(dir $@)
    $(CXX) $(CXXFLAGS) $(INCLUDES) \
    -o $(LABEL_IMAGE_PATH) $(LABEL_IMAGE_OBJS) \
    $(LIBFLAGS) $(LIB_PATH) $(LDFLAGS) $(LIBS)


# Gets rid of all generated files.
clean:
    rm -rf $(MAKEFILE_DIR)/gen

# Gets rid of target files only, leaving the host alone. Also leaves the lib
# directory untouched deliberately, so we can persist multiple architectures
# across builds for iOS and Android.
cleantarget:
    rm -rf $(OBJDIR)
    rm -rf $(BINDIR)

$(DEPDIR)/%.d: ;
.PRECIOUS: $(DEPDIR)/%.d

-include $(patsubst %,$(DEPDIR)/%.d,$(basename $(TF_CC_SRCS)))

修改完成后再次执行 ./tensorflow/contrib/lite/build_rpi_lib.sh ,此时在 ./tensorflow/contrib/lite/gen/bin/rpi_armv8 目录下会产生编译好的label_image二进制文件。

5.拷贝程序到板子上

准备测试图片 tensorflow/contrib/lite/examples/label_image/testdata/grace_hopper.bmp ,当然用其他的图片测试也行。此外,还需要从https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/g3doc/models.md 地址下载你想要测试的tf lite模型。还需要准备ImageNet的标签文件。最后需要传到板子上的是如下几个文件。

grace_hopper.bmp
label_image
labels.txt
mobilenet_v1_1.0_224_quant.tflite/mobilenet_v1_1.0_224.tflite

6.在ARM板子上运行Tensorflow Lite

到此准备工作全部完成了,最后可以在板子上测试Tensorflow Lite的性能了,使用姿势如下:

 ./label_image -v 1 -m ./mobilenet_v1_1.0_224.tflite  -i ./grace_hopper.bmp -l ./labels.txt

运行效果如下:

average time: 855.91 ms 
0.860174: 653 military uniform
0.0481021: 907 Windsor tie
0.00786706: 466 bulletproof vest
0.00644932: 514 cornet
0.00608028: 543 drumstick

接下来可以再测试下量化后的MobileNet效果:

./label_image -v 4 -m ./mobilenet_v1_1.0_224_quant.tflite  -i ./grace_hopper.bmp -l ./labels.txt

效果如下:

average time: 185.988 ms 
0.427451: 653 military uniform
0.305882: 907 Windsor tie
0.0431373: 668 mortarboard
0.0313726: 458 bow tie
0.0235294: 543 drumstick

上述Demo运行时默认线程数为10,若想测试单线程效果,只需再添加-t 1参数即可。单线程在板子上的性能效果如下,从结果看TF Lite的多线程反而没起到加速的效果(2 3 4线程数量我都试过,这个一个跟TF Lite的线程优化有关,二是可能跟ARM板子上的大小核相关,单线程情况下默认使用的是大核)

./label_image -v 1 -m ./mobilenet_v1_1.0_224.tflite  -i ./grace_hopper.bmp -l ./labels.txt -t 1 

average time: 297.647 ms 
0.860174: 653 military uniform
0.0481024: 907 Windsor tie
0.00786706: 466 bulletproof vest
0.00644934: 514 cornet
0.00608031: 543 drumstick
./label_image -v 4 -m ./mobilenet_v1_1.0_224_quant.tflite  -i ./grace_hopper.bmp -l ./labels.txt -t 1  

average time: 145.173 ms 
0.427451: 653 military uniform
0.305882: 907 Windsor tie
0.0431373: 668 mortarboard
0.0313726: 458 bow tie
0.0235294: 543 drumstick

从性能上看,如果不考虑识别的准确率的话,TF Lite量化后的性能收益还是很不错的。在同等平台下,NCNN跑Mobilenet的耗时比TF Lite的非量化版本略快。

Reference:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/g3doc/rpi.md
https://pastebin.com/LDEGyG46

转载请联系本人,本文原地址:https://blog.youkuaiyun.com/computerme/article/details/80345065

Tensorflowlite 部署到 arm开发板 Tensorflowlite 部署到 arm开发板一 先在本机上操作1 下载TensorFlow下载依赖2 准备ARM的交叉编译环境2.1 下载安装包2.2 解压安装包2.3 配置环境变量2.4 查看编译器版本3 交叉编译生成静态库4 官方Demo :label_image的编译4.1 整理头文件4.2 cmake ,make 进行编译二 在开发板上操作 一 先在本机上操作 本机:Ubuntu18.04 1 下载TensorFlow 我选择的版本是:tensorflow-2.6.0 下载网址: http 阅读详情

相关推荐

嵌入式AI实战:在ARM开发板上部署TensorFlow Lite图像识别模型

边缘计算将人工智能从云端下沉到终端设备,实现低延迟、高隐私的实时推理。其核心原理是在资源受限的嵌入式环境中部署轻量化模型,通过模型压缩、硬件加速等技术优化性能。这一技术价值在于推动AI在物联网、智能视觉等场景的规模化落地。以ARM架构嵌入式Linux开发板为例,部署AI应用需关注环境适配与资源效率。通过交叉编译TensorFlow Lite推理库,将MobileNetV2等模型转换为TFLite格式,并利用C++ API实现高效部署。整个过程涉及模型量化、性能调优等关键环节,为边缘AI应用开发提供完整实践路

weixin_33937913的博客 1689

linux arm系统安装tensorflow

首先要找跟python版本对应的tensoflow版本,在网上找了很久,没有找到跟2.7相关的aarch64的tf版本whl文件,可以通过编译源码,也可以通过whl进行安装。本篇介绍在python3.7下选用whl文件安装方法。OS为Linux version 4.19.71-arm64-desktop,安装tensorflow,安装通过编译好的whl二进制包进行安装。有些说后面配置环境变量,结果发现并没有生效,因此通过建立软链接的方式,识别。(2)下载配套的tensorflow的版本。

zcc_0015的专栏 1741

在XIAO nRF52840 Sense上部署TensorFlow Lite TinyML手势识别模型

微型机器学习(TinyML)是机器学习在微控制器等资源受限设备上的部署技术,其核心原理是将训练好的轻量化模型嵌入设备端,实现本地实时推理。这项技术的价值在于为物联网和边缘计算设备提供了低功耗、低延迟、高隐私的智能决策能力,广泛应用于手势控制、语音唤醒、异常检测等场景。TensorFlow Lite Micro作为谷歌推出的轻量级推理框架,通过模型量化等技术,使得深度学习模型能在仅有几十KB内存的MCU上运行。本文以Seeed Studio XIAO nRF52840 Sense开发板为例,详细阐述了从数据采

weixin_34200628的博客 7025

ARM64(aarch64)下安装tensorflow

ARM64/aarch64下安装tensorflow

SimonLiu的博客 9100

嵌入式AI实战:在Linux开发板上部署TensorFlow Lite人脸检测应用

边缘AI(Edge AI)是将人工智能模型部署到资源受限的边缘设备(如嵌入式开发板)上运行的技术范式。其核心原理在于利用轻量级推理框架(如TensorFlow Lite)对预训练模型进行优化和转换,使其能在ARM架构的Linux环境中高效执行。这项技术的核心价值在于实现低延迟、高隐私的本地实时智能处理,摆脱对云端网络的依赖。典型的应用场景包括物联网设备、智能摄像头、机器人等需要快速响应的领域。本文以TensorFlow Lite Runtime为技术栈,详细演示了如何在“平地铲”这类嵌入式开发板上,从环境搭

weixin_34343000的博客 536

嵌入式Linux开发板AI实战:从TensorFlow Lite部署到实时摄像头推理

边缘AI(Edge AI)是一种将人工智能模型部署在终端设备本地进行推理的技术范式,其核心原理在于将计算任务从云端下沉至网络边缘,直接在设备端处理数据。这种架构通过减少数据传输延迟、增强数据隐私性和降低网络依赖,为物联网和嵌入式系统带来了显著的技术价值。在计算机视觉(CV)和自然语言处理(NLP)等应用场景中,边缘AI能够实现实时响应和离线运行。TensorFlow Lite作为专为移动和嵌入式设备设计的轻量级推理框架,是实现这一目标的关键工具。它通过模型量化(Quantization)等技术,将预训练模型

weixin_33744854的博客 383

Tensorflow(libtensorflow) 1.15.5编译小记(二)ARM架构版本编译(鲲鹏/飞腾本机编译、树莓派,交叉编译)

在鲲鹏CPU的华为云服务器上编译ARM架构下的的libtensorflow。手动编译Git 2.x版本、安装特定版本的Python依赖库、源码编译bazel 0.26.1,生成libtensorflow_jni和libtensorflow_framework.so。

tylunas的博客 3002

031、TensorFlow Lite Micro的安装与编译

文章摘要 本文详细记录了TensorFlow Lite Micro(TFLM)的安装与编译过程,重点分享了实践中的常见问题与解决方案。作者从一次深夜编译失败的经历出发,总结了三个关键准备:编译器工具链(推荐GCC 10.3+)、Python 3.8环境和CMake构建系统。文章通过分步指南演示了官方构建流程,特别强调了交叉编译时链接脚本和启动文件的适配问题,并列举了"undefined reference"等典型错误的应对策略。最后建议开发者先运行完整版再考虑裁剪,同时保持基线版本以备回退。全文充满实战经验

2401_88858637的博客 136

在ARM(firefly3399)板子上把玩Tensorflow Lite

基本的步骤与链接的这位老兄一致。 https://blog.youkuaiyun.com/computerme/article/details/80345065 唯一要改变的就是要指定静态编译 -static,刚开始没指定,报错了,查了好多资料都没解决,然后想着重新搭建一个交叉编译环境,先跑测试程序,跑测试程序也报了同样的错,如下: -bash: ./hellos: No such file or di...

空大白 5197

TensorFlow Lite Micro语音识别系统源码拆解:从ESP32到离线KWS

在嵌入式AI与TinyML快速发展的当下,语音识别已从云端大型模型走向资源受限的MCU。其核心原理在于利用TensorFlow Lite Micro运行时,结合模型量化与MFCC特征提取,在本地完成关键词唤醒(KWS)任务。这种方案无需网络连接,具备低延迟、高隐私、低功耗等技术价值,广泛应用于智能家居、便携设备等离线语音控制场景。本文基于一套实际可运行的TensorFlow Lite Micro语音识别系统源码,从工程实践角度拆解其架构、模型转换流程、音频采集与推理优化关键点,并分享调试中的常见陷阱,帮助开

weixin_34274029的博客 3599

2021.11.23 Covins 多机器人单目协同建图 跑Euroc数据集 更新

近日,一直在调试如何使用Covins跑通数据集,因为是初学者,所以很多bug出来的时候原理都不懂,只能复制——百度——尝试解决的过程。 现分享一下近日的结果以及与Covins作者帮助解答的一些问题。 使用代码行跑依次跑Euroc多数据集 这里的意思是使用作者提供的covins_examples文件夹中的euroc_examples_mh123_vigba.sh文件,这个文件是将三个Euroc数据集依次运行,跑完第一个数据集,第二个数据集运行的时候在第一个数据集生成地图的基础上继续绘制,由于我只下载了两个数据

qq_42614598的博客 2473

tensorflow-lite arm mnist 自定义模型部署

tensorflow-lite arm mnist 自定义模型调试成功 调试一周,终于在arm开发板上调通tensorflow-lite,看了一圈博客和官网,大部分都是Android的示例,arm的比较少,在这儿记录下,顺便当写文档了,代码就直接贴在下面。 说明: 1、不讲如何训练模型(百度一大把); 2、不讲如何生成tflite模型文件(按照官网说明就能搞定:https://www.tensor...

theeagle19881018的博客 2183

已解决-Parallels Desktop 16 网络初始化失败:您的虚拟机将继续正常运作,但将无法连接网络

我是月球挖掘机,相信不少打工人为了尝鲜已经更新了MacOS 11 Big Sur,当然,苹果每次的系统大更新,都会给我们软件的功能无法使用惊喜,这次的也不例外。 这个问题是我在更新macOS Big Sur之后,Parallels Desktop打开虚拟机后,提示: 报错信息 网络初始化失败:您的虚拟机将继续正常运作,但将无法连接网络 这是我的软件版本: 起初我以为是我的虚拟机坏了,结果重装了一遍虚拟机,没有任何用处。我开始在网上找方法,只能找到那个使用命令行打开软件的命令,除此之外没有了

月球挖掘机 5万+

ARM64开发板运行Tensorflow lite图片分类demo

编译环境:docker 编译参考:https://tensorflow.google.cn/lite/guide/build_arm64 一:编译Tensorflowlite 从github上下载tensorflow源码, 地址:https://github.com/tensorflow/tensorflow 加速下载: pip3 install -i http://mirrors.aliyun.com/pypi/simple/ --upgrade tensorflow .

Melon的博客 1385

MSP430项目设计:2020年TI杯大学生电子设计竞赛 坡道行驶电动小车(C题)循迹小车(分享项目展示视频与源码)

文章目录题目要求一、硬件设计二、理论分析与计算三、电路与程序设计四、测试方案与测试结果五、项目展示 哔哩哔哩项目展示视频:https://www.bilibili.com/video/BV1oz4y1d7mH/ 百度网盘资料链接:https://pan.baidu.com/s/1PC-lkSORH_XCgIG-u3HCog 提取码:c7zz 取走记得点赞啊! 题目要求 1.任务 利用TI的MSP430/MSP432平台,设计制作一个四轮电动小车。要求小车能沿着指定路线在坡道上自动循迹骑线行驶。小车必须独立

mbs706的博客 4万+

本地部署gradle

在部署CAS构建执行包时,如果按照CAS的官方命令gradlew clean build,如果系统没安装过gradle,这个步骤将会从网上下载gradle,但是进度非常慢,耗时很长。为了更快地完成项目构建,我们可以直接在本地部署好gradle,节省一点时间。

益添的博客 779

ARM板 --Tensorflow Lite

前几天Google的IO大会上发布的ML Kit,ML Kit为端上部署深度学习模型提供了一套完整的解决方案,本地运行、云端都支持。里面本地部署用到的就是Tensorflow lite。Tensorflow Lite是在Google去年IO大会上发表的,目前Tensorflow Lite也还在不断的完善迭代中。Tensorflow Lite在Android和iOS上部署官网有比较详细的介绍已经对应...

u011304078的博客 2693

Mac上快速部署DeepSeek模型:Ollama终端操作全指南

本文详细介绍了在Mac上使用Ollama终端快速部署DeepSeek模型的完整指南。从硬件要求、Ollama安装、模型下载运行,到高级配置、可视化界面及常见问题解决,提供了全流程操作步骤与优化技巧,帮助开发者高效搭建本地AI助手,实现稳定、私密的离线使用体验。

weixin_29251567的博客 550

TensorFlow-Lite-Micro MCU部署

本文深入分析TensorFlow Lite for Microcontrollers在MCU上的实现机制,涵盖静态内存管理、算子裁剪与量化压缩技术,并提供从模型转换到嵌入式部署的完整流程,适用于STM32、ESP32等资源受限设备的关键词检测、异常识别等TinyML应用。

weixin_32312889的博客 1054

智能车实战——极速越野组GPS与惯导融合定位导航全解析

本文深入解析了智能车极速越野组中GPS与惯导模块的融合定位导航技术。通过对比GPS的全局定位与惯导的高频姿态感知,详细阐述了如何利用MM32SPN27主控,将两者数据融合以实现精准、实时的车辆控制。内容涵盖硬件选型、软件数据处理、PID控制及系统调试等实战环节,为智能车开发者提供了一套完整的解决方案。

pz8901234的博客 1202

RT-DETR改进策略【卷积层】| CVPR-2020 Strip Pooling 空间池化模块 处理不规则形状的对象 含二次创新

一、本文介绍 本文记录的是利用Strip Pooling模块优化RT-DETR的目标检测网络模型。Strip Pooling结合了长而窄的卷积核形状在一个空间维度上的长程关系捕捉能力和在另一个空间维度上的局部细节捕捉能力,有效地处理复杂的场景信息。这一机制通过采用1×N1×N1×N或N×1N×1N×1的池化核形状来适应不同的图像特征,提高模型对目标形状和分布的适应性。在场景解析网络中,Strip Pooling可以被用于提升对具有长程带状结构或离散分布目标的解析能力,特别是在复杂场景或不同对象布局条件下效果

Limiiiing的博客 579

tensorflow arm-linux移植,Tensorflowlite移植ARM平台:FLC-MCM63MC

一、LINUX环境下操作:1.安装交叉编译工具sudo apt-get install g++-arm-linux-gnueabihfsudo apt-get install -y gcc-arm-linux-gnueabihf2.下载Tensorflowgit clonehttps://github.com/tensorflow/tensorflow.gitcd tensorflowgit c...

weixin_39636987的博客 619

基于八叉树的k近邻搜索

在八叉树中,每个节点都表示一个正方体的体积元素(体素),并且每个节点都有八个子节点(在不为空的情况下)。搜索最近邻点:一旦确定了查询点在八叉树中的位置,就可以开始搜索最近邻点了。搜索过程通常从查询点所在的叶节点开始,并逐步扩展到相邻的叶节点和父节点,直到找到k个最近邻点为止。k近邻搜索的目标是在给定的点云数据中,找到一个查询点的k个最近邻点。定位查询点:在搜索过程中,首先需要确定查询点在八叉树中的位置。返回结果:最后,搜索算法会返回找到的k个最近邻点的索引和它们与查询点之间的距离。

twnkie的博客 674

XIAO nRF52840 Sense边缘AI实战:TensorFlow Lite Micro模型部署全流程

边缘计算和嵌入式AI是物联网领域的关键技术,通过在设备端本地处理数据,实现低延迟、高隐私保护和离线运行能力。其核心原理是将轻量级机器学习模型部署到微控制器,利用TensorFlow Lite Micro等框架进行本地推理。这项技术的价值在于为智能家居、可穿戴设备、工业传感器等场景提供实时智能决策,无需依赖云端。本文以Seeed Studio XIAO nRF52840 Sense开发板为例,详细解析如何将TFLite Micro模型部署到资源受限的嵌入式设备,涵盖环境搭建、模型转换、内存优化等工程实践,并深

weixin_34315485的博客 7199

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

RIOT 上的 TensorFlow Lite for Microcontrollers:MNIST 手写数字识别与 hello_world 实战指南

本指南以 RIOT 仓库中的 `tests/pkg/tflite-micro` 测试应用为主线,系统讲解如何在 RIOT 中集成 TensorFlow Lite for Microcontrollers(TFLite Micro),完成从模型训练、量化、嵌入式部署到板端推理的完整闭环。读完本文,你将掌握:用 Keras 训练一个极简 MLP 手写数字识别模型并做后训练量化;用 BLOB 机制把 `

gitblog_00257的博客 187

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: Linux下手动安装screen
下一篇: onnx与tensorflow格式的相互转换
IT修道者
IT修道者 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄17年 326粉丝 95原创
评论 40
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值