TensorFlow
文章平均质量分 57
TensorFlow学习知识分享
17岁boy想当攻城狮
在时间的大钟上,只有两个字「现在」
展开
-
Keras Model AttributeError:’str‘ object has no attribute ’call‘
这个问题是因为你在使用load_model时使用了单引号,在Python上一律使用双引号keras_model = tf.keras_models.load_model("./test.h5")写入时也使用双引号open("./test1.tflite","wb").write(tflite_model)原创 2021-09-27 10:26:41 · 1097 阅读 · 0 评论 -
基于Stm32F746g_disg平台下移植zephry使用TinyML预测模型
前言本文没有使用文件系统,以最小RTOS为例来调用Tensor Flow TFLite模型Tensor FLow TFLite的工作流程就是先训练好模型,然后转换为TFLite模型文件,最后在通过Tensor Flow Tflite加载调用相关知识什么是Tensor Flow和lite以及数据流图_17岁boy的博客-CSDN博客神经网络全连接层详解_17岁boy的博客-CSDN博客Tensor Flow V2:基于Tensor Flow Keras的摄氏度到华氏度温度转原创 2021-09-29 10:21:29 · 896 阅读 · 0 评论 -
AttributeError:type object ‘TFLiteConverterV2 ‘has no attribute ‘form_keras_model_file ‘
在Tensor Flow2.0以上加载keras模型文件使用load_modelkeras_model = tf_keras_models.load_model("xx.h5")然后在调用from_keras_model转换成liteconverter = tf.lite.TFLiteConverter.from_keras_model(keras_model)原创 2021-09-27 10:23:40 · 573 阅读 · 0 评论 -
TFLite模型文件转C语言文件
目录TFLite模型文件转C语言文件TFLite模型文件转C语言文件TFLite本身就是一个二进制文件,可以直接打包成C语言的unsigned char类型数组,由于文件比较大一个一个读写到数组里太麻烦了,我们可以直接在Linux下使用xxd命令,通过apt可以直接安装sudo apt install xxd然后使用xxd命令进行转换xxd -i model.tflite > model.h就可以看到当前目录下有一个model.h的文件,并且里面自动生成了unsigne原创 2021-09-29 10:15:12 · 1748 阅读 · 2 评论 -
什么是TLV存储格式以及为什么Protocol Buffer要比Json和XML传输时要快
这是Protocol Buffer里的一种存储格式,即:Tag(标识) - Lenght(长度) - Value(字节值)为什么Protocol Buffer会比Json与XML要快呢?就体现在这点上面,在传输过程中Json与XML是直接把原生的字符串给你传输过去了,不做任何编码处理,纯粹就是字符串解析,比如:在Protocol Buffer中定义一个消息:message Person { int32 age = 5;}仅仅定义一个age的元素,其值为5然后在用XML定义一个原创 2022-01-17 16:46:27 · 1091 阅读 · 0 评论 -
Tensor Flow Lite C++ API 介绍
Class类介绍 类名 作用 tflite::ErrorReporter 用于汇报错误,当发生错误时可以通过此类获取错误信息 tflite::FlatBufferModel 用于序列化模型 tflite::Interpreter 从张量输入和输出的节点图的解释器 tflite::InterpreterBuilder 构建一个能够解释模型的解释器 tflite::OpResolver 给定操作码或自定义操作名称返回 Tf原创 2021-09-29 10:08:20 · 1559 阅读 · 0 评论 -
Tensor Flow V2:将Tensor Flow H5模型文件转换为tflite
H5模型文件介绍h5文件全称HDF5,是Tensor Flow2.0新增的文件模型,它保存了训练时的所有参数包括权重等特征信息,与其它模型文件不同的是它保存只有一个二进制文件,保存的文件会比较大因为包含了所有训练信息。Tflite模型文件介绍Tflite是Tensor Flow Tflite上特有的模型文件类型,它文件较小也是一个纯二进制文件,是一个轻量级的模型库,Tensor Flow的模型文件可以与Tflite之间互相转换,但是每次转换会丢失精度,Tflite会过滤掉许多可能重复的特征信息,原创 2021-09-27 10:36:45 · 2018 阅读 · 0 评论 -
TinyML与Tensor Flow Lite的关系
目录发展历史简介Tensor Flow Lite for Microcontrollers主要模块发展历史Tensor Flow Lite是针对移动设备以及可穿戴设备领域的深度学习框架,是基于Tensor Flow的,但是Tensor Flow Lite并非能够在一些微型的MCU出色的运行,以及由于它算法的原因并不能很好的处于低功耗模式运行,如果一些芯片只能运行在低功耗的情况下,那么Tensor Flow Lite就显得不是那么融洽了,所以诞生了一个主题:TinyML,全拼:Mach原创 2021-09-29 10:10:16 · 870 阅读 · 0 评论 -
train_image_classifier.py:Cannot assign a device for operation CifarNet/conv1/Conv2D: node CifarNet
出错内容如下:Errors may have originated from an input operation.Input Source operations connected to node CifarNet/conv1/Conv2D: fifo_queue_Dequeue (defined at train_image_classifier.py:487) CifarNet/conv1/weights/read (defined at /home/zhihao/.local/lib/p原创 2021-12-20 10:20:26 · 354 阅读 · 0 评论 -
Tensor Flow V2:基于Tensor Flow Keras的摄氏度到华氏度温度转换的训练模型
理论知识什么是Keras?Keras是一个由纯Python编写的人工神经网络库,可以用它来完成深度学习的应用,它的作者是François Chollet,目前已经加入谷歌,源代码是开放的基于MIT开源许可方式开源在Github上。实战温度转换模型训练首先第一步导入tensor flow包于numpy包,用numpy主要用于处理矩阵,我们在存储数据集的时候用numpy来做存储与处理,然后在转化为tf的向量#!/usr/bin/env python# coding=utf-8impor原创 2021-09-26 17:11:08 · 473 阅读 · 0 评论 -
Tensor Flow PB文件量化到TFLITE
代码非常简单:import tensorflow as tfimport ioimport PILimport numpy as npdef rep(): #需要是验证集的数据源 record_iterator = tf.python_io.tf_record_iterator(path='/home/zhihao/models/research/slim/ci_data/cifar10_train.tfrecord') count = 0 #将图像从prot原创 2022-01-21 17:17:31 · 1297 阅读 · 0 评论 -
搭建迁移训练Slim框架环境
目录前言配置环境安装Python3.7下载Slim框架测试下载训练集开始训练评估模型前言Slim是一个小巧、微型基于Tensor Flow的训练框架,它支持许多轻量级的神经网络,如:Mobilenet,能够快速训练在微型低功耗的设备上运算的神经网络,在MCU上一般运算赫兹都在百兆上,与一般的CPU几G赫兹的运算能力来说相差甚远,所以如果神经网络里的卷积函数与全连接层里的神经元代码与激活函数代码过于复杂的情况下对运算能力要求也就更高,不然比如我们识别一个人脸分类在CP.原创 2022-01-19 11:52:34 · 1111 阅读 · 2 评论 -
基于Zephyr在微型MCU上使用Tensor Flow Lite Micro做图像分类
首先需要保证你已经拥有了一个图像分类的模型。其次我们需要Zephyr RTOS。这些可以参考如下文章:基于Stm32F746g_disg平台下移植zephry使用TinyML预测模型_17岁boy的博客-CSDN博客原创 2021-12-09 13:51:45 · 1606 阅读 · 0 评论 -
Slim生成的ckpt文件转PB文件
前言搭建Slim框架方法请参考这篇文章:搭建迁移训练Slim框架环境_17岁boy的博客-CSDN博客生成PB文件转换的方式也很简单,Slim自带了一个graph.py文件,文件存在于models/research/slim/export_inference_graph.py,这个文件可以生成对应包含神经网络算子布局的PB文件,但是没有包含神经元权重这些信息,仅仅包含对应神经网络的网格结构布局(layout),说白了就是生成一个包含神经网络的空壳结构文件,只是没有实际的训练出来的权重数据。输原创 2022-01-20 16:27:58 · 829 阅读 · 0 评论 -
ImportError: cannot import name ‘py_checkpoint_reader‘ from ‘tensorflow.pyth
今天在使用tensor flow里的freeze_graph.py来将模型与权重文件合并时出现了“ImportError: cannot import name 'py_checkpoint_reader' from 'tensorflow.pyth”的错误。这个错误是因为你下载的tensor flow是1.11.0版本的,而你的tensorflow是1.14.0以上的,所以会报这个错误。我们可以在git时指定版本,指定为1.15,1.14与1.15无差异写法:git clone -b r1.原创 2021-11-22 14:26:19 · 1750 阅读 · 0 评论 -
Ubnutu20.04安装Tensorflow
我们只需要先安装python3和pip3,然后通过pip3直接安装Tensorflow就可以了。pip仓库里已经自带了Tensorflowsudo apt install python3sudo apt install python3-pip然后pip3直接安装。sudo pip3 install temsorflow就可以看到已经在下载安装了。...原创 2021-03-10 09:58:08 · 298 阅读 · 1 评论 -
Tensor Flow量化里representative_dataset参数是什么意思?
representative_dataset是代表性数据集的意思,一般我们取的是validation的那一段数据集,一般我们在量化PB文件的时候就需要这一个参数,这个参数的作用是用于矫正与标准化网络里所有浮点数数组大小,representative_dataset一般给的值是验证集里的数据,这样让Tensor Flow来矫正网络里所有的浮点数数组的输入与输出范围,如验证集里的图像大小是64x64,72x72,128x128,那么浮点数数组会被量化的大小一般取值范围是64x64-128x128,这样能保证输入原创 2022-01-21 13:17:06 · 1107 阅读 · 2 评论 -
使用pip安装tensorflow很慢的问题
pip默认使用的是国外的源,国内网速有限制,可以使用国内源,这里推荐豆瓣的源:https://pypi.douban.com/simple安装时使用-i指定sudo pip3 install tensorflow -ihttps://pypi.douban.com/simple速度飞快。原创 2021-05-17 16:45:19 · 1371 阅读 · 5 评论 -
什么是Tensor Flow和lite以及数据流图
概述Tensor Flow是谷歌Google Brain实验室维护开发的,它于2015年11月9日发布第一个初始版本,遵循Apache 2.0开源协议,经过变迁第一个稳定版本是1.12.0在2018年10月9日发布,它支持跨平台能够在WIn、Linux、Unix上稳定运行。Tensor Flow Lite是Tensor Flow的一个分支,它基于Tensor Flow,它的目标是在移动设备、最小单片机设备上运行,所以它被设计的非常简洁,它也被简称为tflite,除了Tensor Flow Lite以外还原创 2021-09-26 16:59:53 · 1688 阅读 · 0 评论