python 版本切换
sudo update-alternatives --list python

sudo update-alternatives --config python

卸载TensorFlow

先介绍卸载, 如果你的tensorflow是用pip安装的,那下面简单的命令就可以完成卸载了

sudo pip uninstall tensorflow_gpu
sudo pip3 uninstall tensorflow_gpu

这里介绍一个完全基于 Tensorflow 的模型量化方法,以 yolo v3 为例

1)利用现有yolo v3 模型 生成 Tensorflow pb 模型
基于 https://github.com/mystic123/tensorflow-yolo-v3
Run python ./convert_weights.py and python ./convert_weights_pb.py

2)完全基于 Tensorflow 的量化
https://blog.csdn.net/u011961856/article/details/76736103

1.源码编译安装tensorflow
可参考 https://blog.csdn.net/u011961856/article/details/76725411

2 编译量化工具

sudo bazel build tensorflow/tools/quantization:quantize_graph

3.模型量化:

sudo bazel-bin/tensorflow/tools/quantization/quantize_graph --input=/tmp/classify_image_graph_def.pb --output_node_names="softmax" --output=/tmp/quantized_graph.pb --mode=eightbit

/tmp/ 这个路径我的修改为自己的绝对路径

sudo bazel-bin/tensorflow/tools/quantization/quantize_graph --input=/home/zhangjun/tensorflow/tmp/classify_image_graph_def.pb --output_node_names="softmax" --output=/home/zhangjun/tensorflow/tmp/quantized_graph.pb --mode=eightbit

4.测试量化模型:
测试量化前的模型结果:

sudo bazel-bin/tensorflow/examples/label_image/label_image --graph=/tmp/classify_image_graph_def.pb --input_width=299 --input_height=299 --input_mean=128 --input_std=128 --input_layer="Mul:0" --output_layer="softmax:0" --labels="/tmp/imagenet_synset_to_human_label_map.txt" --image="/tmp/cropped_panda.jpg"

/tmp/ 这个路径我的修改为自己的绝对路径

sudo bazel-bin/tensorflow/examples/label_image/label_image --graph=/home/zhangjun/tensorflow/tmp/classify_image_graph_def.pb --input_width=299 --input_height=299 --input_mean=128 --input_std=128 --input_layer="Mul:0" --output_layer="softmax:0" --labels="/home/zhangjun/tensorflow/tmp/imagenet_synset_to_human_label_map.txt" --image="/home/zhangjun/tensorflow/tmp/cropped_panda.jpg"

测试量化后的模型结果:

   sudo bazel-bin/tensorflow/examples/label_image/label_image --graph=/tmp/quantized_graph.pb --input_width=299 --input_height=299 --input_mean=128 --input_std=128 --input_layer="Mul:0" --output_layer="softmax:0" --labels="/tmp/imagenet_synset_to_human_label_map.txt" --image="/tmp/cropped_panda.jpg"

/tmp/ 这个路径我的修改为自己的绝对路径

bazel-bin/tensorflow/examples/label_image/label_image --graph=/home/zhangjun/tensorflow/tmp/quantized_graph.pb --input_width=299 --input_height=299 --input_mean=128 --input_std=128 --input_layer="Mul:0" --output_layer="softmax:0" --labels="/home/zhangjun/tensorflow/tmp/imagenet_synset_to_human_label_map.txt" --image="/home/zhangjun/tensorflow/tmp/cropped_panda.jpg"

tensorflow 对于 模型的量化目前来说并不成熟,处于开发阶段,tensorflow lite 是应该已经支持 量化模型的运行, 而 tensorflow 本身的支持很有限,貌似正在集成

CNN模型 int8量化实现方式(二)相关推荐

  1. CNN模型 INT8 量化实现方式(一)

    当前CNN模型基本都是 float32,将其转换为 INT8 可以降低模型大小,提升速度,精度降低的也不太多.那么在实际中如何实现这个量化了?在网上找到了三种实践方法, 基于腾讯的NCNN, Tens ...

  2. OpenVINO 2022.3实战六:NNCF 实现 YOLOv5 模型 INT8 量化

    OpenVINO 2022.3实战六:NNCF 实现 YOLOv5 模型 INT8 量化 1 将YOLOv5模型转换为OpenVINO IR 使用OpenVINO模型优化器将YOLOv5模型转换为Op ...

  3. 【部署加速】模型Int8量化

    0前言 为什么量化有用? 因为CNN对噪声不敏感. 2. 为什么用量化? 模型太大,比如alexnet就200MB,存储压力大的哟,必须要降一降温: 每个层的weights范围基本都是确定的,且波动不 ...

  4. 【Python深度学习】基于Tensorflow2.0构建CNN模型尝试分类音乐类型(二)

    前情提要 基于上文所说 基于Tensorflow2.0构建CNN模型尝试分类音乐类型(一) 我用tf2.0和Python3.7复现了一个基于CNN做音乐分类器.用余弦相似度评估距离的一个音乐推荐模型. ...

  5. NHibernate初学者指南(6):映射模型到数据库之方式二

    使用Fluent NHibernate自动映射 使用Fluent NHibernate自动映射,首先要将映射的实体放到一个命名空间中,这使得通知AutoMapper哪些实体和值对象包含在映射中更容易. ...

  6. TensorRT INT8量化原理与实现(非常详细)

    目录 一.模型量化是什么? 二.为什么要做模型量化? 三.模型量化的目标是什么? 四.模型量化的必要条件 五.模型量化的分类 5.1 线性量化和非线性量化 5.2 逐层量化.逐组量化和逐通道量化 5. ...

  7. 使用OpenVINOTM对YOLOv5进行INT8量化

    终于来了一个yolo5的 本身一直停留在v5阶段  这个也是拿来主义 自学 真的为自学 多谢理解啦 如题 .. 使用OpenVINOTM 2022.1 Post-training Optimizati ...

  8. 【嵌入式AI】CNN模型压缩(剪枝,量化)详解与tensorflow实验

    1,CNN模型压缩综述 1 模型压缩的必要性及可行性 (1)必要性:首先是资源受限,其次在许多网络结构中,如VGG-16网络,参数数量1亿3千多万,占用500MB空间,需要进行309亿次浮点运算才能完 ...

  9. 模型加速之INT8量化原理及实践(基于TensorRT)

    一.模型量化: 1.量化的定义是将网络参数从Float-32量化到更低位数,如Float-16.INT8.1bit等. 2.量化的作用:更小的模型尺寸.更低的功耗.更快的计算速度.下图是不同数据结构比 ...

最新文章

  1. java实现序列化接口6_只有实现 Java.io. 接口的类的对象才能被序列化和反序列化。用关键字 修饰的对象变量将不会序列化。_程序设计基础(C#)答案_学小易找答案...
  2. 使用session防止表单进行重复提交
  3. 收集bug开源框架_划重点 | 小程序框架全面测评
  4. js list操作_使用 Node.js 实现一个命令行 todo-list(1)- 基本功能
  5. java打印前线程的id_logback打印日志输出线程ID:切面模式
  6. Eclipse快捷键与使用技巧总结
  7. Ubuntu、SUSE的发音
  8. android ndk 混淆,OLLVM + NDK 混淆编译环境搭建
  9. 乌龟git配置ssh密钥
  10. Android简单实现汉字笔顺动画——Java版
  11. 51单片机教室人数进出统计检测数码管显示装置红外传感器
  12. LaTeX中的参考文献-BibTeX
  13. 实拍:丽江特色美食腊排骨火锅
  14. VisualSVN 5.1.7破译License Key
  15. Android 适配时用到的限定词
  16. VC++计算正反坐标方向角
  17. opencv 数学形态学(2) 膨胀运算:dilate
  18. 微信web H5 安卓无法播放的解决方案
  19. PASCAL VOC2012数据集
  20. 实现电路阻抗匹配的两个方法

热门文章

  1. 多帧点云拼接的全局ICP算法【附Matlab代码链接】
  2. 差异表达基因-火山图和聚类图解释
  3. 离散数学当中的部分符号总结
  4. mysql 事务_MySQL事务
  5. 用 Python 帮运营妹纸快速搞定 Excel 文档
  6. MPB:农科院牧医所赵圣国组-微生物超高分子量DNA提取方法
  7. MPB:中科院深圳先进院戴磊组小鼠粪便样本中16S拷贝数的定量检测
  8. 德国耶拿大学植物微生物组实验室急招博士生项目,申请截止19年3月20日
  9. QIIME 2用户文档. 14机器学习预测样品元数据分类和回归q2-sample-classifier(2018.11)
  10. 再这么配培养基,你的细菌都被毒死了!