![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度学习框架
JKANG94
这个作者很懒,什么都没留下…
展开
-
使用tvm在jetson-nano的arm-cpu上部署优化AI模型
tvm在jetson-nano远程部署调优arm-cpu模型原创 2022-02-15 22:20:10 · 960 阅读 · 1 评论 -
ubuntu环境安装编译tvm
ubuntu环境下载安装tvm原创 2021-12-23 16:44:57 · 1062 阅读 · 0 评论 -
TVM优化深度学习模型基于autotvm和auto-scheduling
在上篇文章中介绍了利用tvm将深度学习模型部署到端侧,只是涉及到简单的格式转换和动态库生成,没有针对部署硬件进行性能优化,本篇文章介绍两种优化模型执行性能的方法。一、基于autotvm参考社区基于autotvm优化模型和tune优化模型未优化版import osimport onnximport numpy as npfrom PIL import Imageimport tvmfrom tvm import relayimport tvm.contrib.graph_executor原创 2021-08-15 17:59:46 · 947 阅读 · 0 评论 -
TVM部署神经网络模型到android端
tvm是深度学习编译器,它可以把神经网络模型编译成动态库,然后部署到多种硬件上,包括各种端侧设备。一、安装tvm此处是在linux环境下安装tvm,通过tvm的python接口将深度学习模型编译成动态链接库,参考链接:tvm安装教程二、交叉编译libtvm_runtime.so下载NDK工具,解压到/opt目录下,然后在tvm的代码的根目录执行以下shell命令,在buildruntime目录下得到libtvm_runtime.soset -eexport ANDROID_NDK = /opt/原创 2021-08-14 00:23:44 · 2015 阅读 · 2 评论 -
TNN源码解析1-从benckmark梳理TNN逻辑
TNN 介绍TNN benckmark配置NDK(在benchmark\benchmark_android目录下的benchmark_models.sh文件中指定NDK的路径exportANDROID_NDK=youpath)把目标手机链接到电脑上,使用adb连接直接运行bench_android.shTNN运行机制简介完成了benchmark的运行之后,我们便从其入口开始(test\test.cc),梳理其运行机制,很容易发现程序的入口int main(int argc,原创 2021-07-25 20:28:24 · 912 阅读 · 0 评论 -
TNN模型结构详解
TNN模型包含2个文件:模型结构描述文件tnnproto和模型权重文件tnnmodel模型描述文件,对模型的结构信息和每一层的参数信息进行了描述,是文本格式的文件,具体内容如下:模型权重文件,保存各个算子的权值,是二进制文件,具体内容遵守以下协议:...原创 2021-07-25 13:49:37 · 2192 阅读 · 0 评论 -
ONNX模型结构转文本格式
深度学习端侧推理框架核心元素:模型结构定义及存储tensor的定义内存分配算法多线程计算onnx框架的模型结构利用protobuf库定义模型元素及保存模型结构,以下借助protobuf的API将onnx模型由二进制转为文本格式,文本格式可以清楚的查看onnx模型都有哪些字段和内容,配合对应的proto文件帮助更深刻理解模型结构。下载onnx.proto文件, 注释最后一行,因为使用protobuf-lite会少很多实用接口。// For using protobuf-lite//opti原创 2021-07-03 21:41:52 · 643 阅读 · 0 评论 -
MNN框架源码解读--多线程计算线程池实现分析
MNN在算子计算时实现了多线程进行加速,对应的多线程编译选项:MNN_USE_THREAD_POOL,默认开启,使用 MNN 内部的无锁线程池实现多线程优化,关闭后,视MNN_OPENMP开关选择OpenMP或关闭多线程优化。(注:MNN 的无锁线程池最多允许两个实例同时使用,即最多供两个模型同时推理使用。参考代码 source/backend/cpu/ThreadPool.cpp 中 MNN_THREAD_POOL_MAX_TASKS 宏的定义。以Matmul算子的计算为例,代码中与多线程相关的两个宏M原创 2021-06-20 00:04:58 · 1186 阅读 · 0 评论 -
MNN框架源码解读--Convert模块
Convert模块-模型转换一、编译Convertcd MNN/./schema/generate.shmkdir buildcd buildcmake .. -DMNN_BUILD_CONVERTER=true && make -j4二、转换命令进入build目录,可以看到刚才编译出的可执行文件MNNConvert。tensorflow:./MNNConvert -f TF --modelFile XXX.pb --MNNModel XXX.mnn --bizCode原创 2021-05-30 16:41:39 · 1606 阅读 · 0 评论 -
MNN模型结构解读
MNN模型结构解读–反序列化为文本格式MNN是阿里开源的端侧深度学习框架,支持Tensorflow、Caffe、ONNX、tflite主流模型文件格式,通过Convert模块将已经训练好的网络模型转为MNN定义的模型格式,官方已经支持Netron工具可视化MNN模型,由于MNN的模型结构定义使用了flatbuffers库,因此可以通过flatbuffers的接口将.mnn格式的文件解析为文本格式。flatbuffers是谷歌开源的序列化结构化库,相比protobuf库性能更好更加轻量,只需包含inclu原创 2021-05-30 15:04:41 · 2062 阅读 · 0 评论