# Neural Network Quantization **Repository Path**: aloha-qing/neural-network-quantization ## Basic Information - **Project Name**: Neural Network Quantization - **Description**: 实验用量化仓库,my_quant、pytorch-quant-demo重构版本 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: ga-rf - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2021-05-20 - **Last Updated**: 2022-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Neural Network Quantization ## 介绍 实验用量化仓库,my_quant、pytorch-quant-demo重构版本 ## 进度 ### 2021/5/24 - autoq, qmodule重构基本完成,现支持混合精度量化 - 现存问题: - 本地cpu上vgg19推理速度过慢,需要在服务器上进行实验,其精度损失未知 - 需要更多的baseline模型,其中有些模型需要额外的量化操作支持,目前支持的操作类型 - Conv - Linear - Relu - Maxpooling - ConvBNRelu - 下一步: - 迁移遗传算法模块 - 完成能量估算模块 ### 2021/5/27 - 基本完成ecore - 下一步 - 迁移遗传算法模块, 开始实验 ### 2021/5/28 TODOs: - 迁移遗传算法模块,需要介于fitness函数和原来不同,需要大幅重新编写 - 对于算法本身,尝试使用现有的GA库而不是自己编写。 - 参考[GeneticAlgorithmPython](https://github.com/ahmedfgad/GeneticAlgorithmPython) ### 2021/5/31 测试GA 目前问题 - **GA中fitness函数编写,目前使用的仍是纯精度,需要改成能耗+精度** - autoq模块在GPU上使用时有问题,可能原因和module list有关 - **如何记录数据** -- main方法缺少设计 ### 2021/6/1 目前工作: - 遗传算法编写 - hint: 目前写的遗传算法应该属于一个多目标遗传算法,之前编写的遗传算法是基于单目标编写的,需要重新考量 - 更多见[TODOs](#TODOs) ### 2021/6/2 实验记录 - 文件类型: csv - 记录内容:记录每次迭代,挑选出的fitness最高的n个体,记录其: - 迭代轮次 - 量化策略 - 能量 - 精度损失 - 表头设计: | epoch | policy | energy | accur_loss | | ----- | ------ | ------ | ---------- | ~~[如何使用python读写csv文件]([csv --- CSV 文件读写 — Python 3.9.5 文档](https://docs.python.org/zh-cn/3/library/csv.html?highlight=csv)) 使用`csv.DictReader` 和 `csv.DictWriter`~~ 使用`json` ## TODOs - qcore.autoq能在cpu上正常使用,而无法在gpu上使用 - ecore在使用时需要将输入的形状作为参数,这个参数不易获取 - 通过dataloader获取时易产生bug - [x] 缺少记录数据的模块 log - [x] 遗传算法GA需要重新编写 - [x] 添加QAT模块进一步提高精度 - [x] 封装 GA - [ ] 修改qcore使其可以适配mobilenet和shufflenet(对比实验需要)