Pocketflow 使用

Pocketflow的简介:https://pocketflow.github.io/

由两个modules组成:Learner module 负责利用随机hyperparameters压缩并fine-tuning,optimizer module 负责依据随机参数对应的结果确定最佳的压缩参数。Learn module 遍历的hyperparameter来自于:

NameDescription
ChannelPrunedLearnerchannel pruning with LASSO-based channel selection (He et al., 2017)
DisChnPrunedLearnerdiscrimination-aware channel pruning (Zhuang et al., 2018)
WeightSparseLearnerweight sparsification with dynamic pruning schedule (Zhu & Gupta, 2017)
UniformQuantLearnerweight quantization with uniform reconstruction levels (Jacob et al., 2018)
UniformQuantTFLearnerweight quantization with uniform reconstruction levels and TensorFlow APIs
NonUniformQuantLearnerweight quantization with non-uniform reconstruction levels (Han et al., 2016)

压缩后可以快速训练收敛。

optimizer module 的策略来自于

Gaussian Processes (GP, Mockus, 1975), Tree-structured Parzen Estimator (TPE, Bergstra et al., 2013), and Deterministic Deep Policy Gradients (DDPG, Lillicrap et al., 2016) 以及当前hyperparameters的reward

安装Pocketflow:https://pocketflow.github.io/installation/

本地安装或在docker环境中安装

本地安装:

配置文件 path.conf 说明数据集路径(.tfrecord)以及预训练模型的路径

首先安装 anaconda 和 tensorflow,注意python 版本不能高于3.6

一句话就可训练:./scripts/run_local.sh nets/resnet_at_cifar10_run.py

docker环境安装:

官方推荐  horovod docker ,因其支持多GPU分布

一句话训练:./scripts/run_docker.sh nets/resnet_at_cifar10_run.py

 

压缩方法:

参考https://pocketflow.github.io/tutorial/

输出:*.tflite 文件

Step 1: 准备数据成TFRecord格式

Step 2: 根据上面的步骤训练或直接下载 .ckpt 模型 保存在 models

Step 3: 选择压缩方法 开始调优压缩后的模型 

./scripts/run_local.sh nets/resnet_at_ilsvrc12_run.py \ --learner dis-chn-pruned

压缩方法与arg对应:

Learner nameLearner classNote
full-precFullPrecLearnerNo model compression
channelChannelPrunedLearnerChannel pruning with LASSO-based channel selection (He et al., 2017)
dis-chn-prunedDisChnPrunedLearnerDiscrimination-aware channel pruning (Zhuang et al., 2018)
weight-sparseWeightSparseLearnerWeight sparsification with dynamic pruning schedule (Zhu & Gupta, 2017)
uniformUniformQuantLearnerWeight quantization with uniform reconstruction levels (Jacob et al., 2018)
uniform-tfUniformQuantTFLearnerWeight quantization with uniform reconstruction levels and TensorFlow APIs
non-uniformNonUniformQuantLearnerWeight quantization with non-uniform reconstruction levels (Han et al., 2016)

保存在models_dcp_eval文件夹

Step 3: 转化成 tflite 格式:

python tools/conversion/export_pb_tflite_models.py \ --model_dir models_dcp_eval

保存在 models_dcp_eval

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/313054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PowerBI 11月更新 数据PPT是否会引领新一轮革命

PowerBI Desktop 2019年11月更新新鲜出炉了:罗叔作为全球第 80 人观看更新内容者,快速将本月更新全部奉上,供大家参考。 打开预览特性,如下:本次更新出了三大功能: Power Query 支持 AI新的功能区&#xff…

pip ImportError: cannot import name 'main' after update

sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall Chang pip to pip3

WeihanLi.Npoi 近期更新

WeihanLi.Npoi 近期更新Intro最近对我的 NPOI 扩展做了一些改变,一方面提高性能,一方面修复bug,增加一些新的功能来让它更加好用,前几天发布了 1.5.0 版本,下面来介绍一下最近的更新默认导入/导出格式变更在 1.5.0 版本…

【.NETCore 3】Ids4 ║ 多项目集成统一认证中心的思考

前言哈喽大家好,好久都没有写文章了,这次又重新开始写技术文章了,半年前我还是一直保持每周都写文章的,后来是为了响应群友的号召,开始踏上了录制视频(https://www.bilibili.com/video/av58096866&#xff…

darknet 训练 cannot load image

train.txt 的末尾 不应是\r\n 而应是 \n

.NET 社区 NB,2019 中国 .NET 开发者峰会

点击蓝字关注我们作为广州 .NET 技术俱乐部的一名成员,很荣幸以志愿者的身份见证并参与了 首届社区组织的中国 .NET 开发者峰会 ,这次大会共分为三天,第一天的 .NET 之夜,第二天的 .NET 开发者峰会,第三天的 .NET Core…

多版本opencv 兼容

https://blog.csdn.net/learning_tortosie/article/details/80594399 多版本OpenCV共存 假设我们已经安装好一版OpenCV,一般都安装在/usr/local下。 如果需要安装另一个版本的OpenCV,就不能再安装到/usr/local,而是选择其他路径&#xff0c…

SQL Server 中 JSON_MODIFY 的使用

SQL Server 中 JSON_MODIFY 的使用IntroSQL Server 从 2016 开始支持了一些 JSON操作,最近的项目里也是好多地方直接用字段直接存成了 JSON,需要了解一下怎么在SQL Server 中操作 JSON.JSON支持适用于 SQL Server 2016 及以上版本 和 Azure SQL Database…

TypeScript 3.7稳定版发布

TypeScript 3.7 发布了,此版本带来了许多新特性。Optional Chaining首先一大亮点是 Optional Chaining,这是社区呼唤特别强烈的一个 ECMAScript 特性。最初它是 TypeScript 的 issue 跟踪器上第 16 个 issue,于 5 年前提交,要知道…

Ubuntu 16.04 安装 cuda 7.5.run BEGIN failed--compilation aborted at ./cuda-installer.pl line 5

sudo apt install freeglut3-dev build-essential libx11-dev libxmu-dev \ libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev libglfw3-dev libgles2-mesa-dev

.NET手撸绘制TypeScript类图——上篇

.NET手撸绘制TypeScript类图——上篇近年来随着交互界面的精细化, TypeScript越来越流行,前端的设计也越来复杂,而 类图正是用简单的箭头和方块,反映对象与对象之间关系/依赖的好方式。许多工具都能生成 C#类图,有些工…

阅读源码学设计模式-单例模式

有些编码套路是公认的,大家都参照其编写符合可观赏性的代码,那就是设计模式现在.NETcore 默认提供了DI功能,那我想设计一个全局的引擎类,进行注入服务、解析服务、配置中间件。并且要求该引擎类全局唯一,其他地方不能进…

word 中同样的字号和行距倍数,不一样的行距

https://blog.csdn.net/missingu1314/article/details/24430165 http://www.xyduan.net/the-same-single-line-spacing-line-spacing-is-different/ 两篇文档,都是小四号字,都是单倍行距,可是行距明显不同,把其中的一个文档的一…

我终于知道post和get的区别

IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。码农:你知道get和post请求到底有什么区别&am…

【译】使用Blazor构建桌面应用

随着最近.NET Core 3的正式发布,我认为我会尝试一个有趣的小实验。我喜欢使用Electron来创建基于Web的桌面应用程序。我想了解有关Blazor(ASP.NET系列的最新成员)的更多信息。在这篇文章中,我将向您确切演示如何在15分钟内开始使用…

CAP的学习和应用

前言:用CAP有一段时间了,这里简单记录一下,这么好用的东西,小伙伴们赶紧上车吧一.CAP使用场景?平时工作中经常使用到MQ,如(kafka,rabbitmq...),用来简单的发布/订阅,经常会遇到以下几个问题常用方案,把SQL放前面,MQ放后面,MQ执行失败了,我们把整个SQL进行回滚,这种方案在单应用…

darknet activate_array

void activate_array(float *x, const int n, const ACTIVATION a) { int i; for(i 0; i < n; i){ x[i] activate(x[i], a); } }