我正在开发一个端到端训练和量化感知的训练示例。使用CIFAR10数据集,我加载了一个预训练的MobilenetV2模型,然后使用TensorFlow指南中的代码来量化我的模型。整个过程适当结束后,我得到以下结果:
Quant TFLite test_accuracy: 0.94462
Quant TF test accuracy: 0.744700014591217
TF test accuracy: 0.737500011920929
Quant TFLite test_accuracy: 0.9817
Quant TF test accuracy: 0.9815
TF test accuracy: 0.9811
注意,我并没有更改我从TensorFlow指南中附带的代码,我只是使用了一个不同的数据集和模型。
当您的模型没有完全收敛并且您的测试数据集的大小没有被认为大到足以与这些数据不同时,这是可能的。此外,即使你的模型是收敛的,减少比特推理的方法有时可以限制每个节点中随机变量的范围,有时可以匹配你的情况,帮助梯度更好地找到最优点。但是,我仍然鼓励您扩展您的测试集,并检查模型收敛性,因为差距太大了。
此外,对于MNIST来说,数据很简单,当它的平均值在0.9815左右时,差异不大。据我理解,这是合理的。
我做了一个模型,预测一个字符在一个图像,做车牌识别。它在我的电脑上运行得非常好,但我需要把这项工作放在一个Android应用程序中。所以我开发了一个小应用程序,将我的keras模型转换为TFLITE。现在它总是预测同一个角色。 有没有更好的方法转换模型,还是我遗漏了什么? 编辑:这是我管理位图的操作
我正在培训一个Keras模型,我想在量化的8位环境(微控制器)中使用TFLite部署它。为了提高量化性能,我进行量化感知训练。然后,我使用验证集作为代表性数据集创建量化的TFLite模型。使用验证集评估性能,如图所示: 不同条件下20次运行的不同批次的错误率 如果我不是简单地从QA训练模型(图中红色)生成TFLite模型(图中青色),而是将权重从QA训练模型复制到原始模型,然后生成TFLite模型
我使用以下代码生成量化的tflite模型 但是根据训练后量化: 生成的模型将完全量化,但为了方便起见,仍然采用浮点输入和输出。 要为Google Coral Edge TPU编译tflite模型,我还需要量化输入和输出。 在模型中,我看到第一个网络层将浮点输入转换为,最后一个网络层将转换为浮点输出。如何编辑tflite模型以除去第一个和最后一个浮动层? 我知道我可以在转换期间将输入和输出类型设置为
TF-IDF TF(term frequency),表示一个词在一个文档中出现的频率;IDF(inverse document frequency),表示一个词出现在多少个文档中。 它的思路是这样的:同一个词在短文档中出现的次数和在长文档中出现的次数一样多时,对于短文档价值更大;一个出现概率很低的词一旦出现在文档中,其价值应该大于其他普遍出现的词。 这在信息检索领域的向量模型中做相似度计算非常有效
我有这个代码,用于使用tenorflow hub的预训练通用编码器构建语义搜索引擎。我无法转换为tlite。我已将模型保存到我的目录中。 导入模型: 根据数据训练模型: 保存模型: 保存工作正常,但当我转换到tflite它给出错误。 转换码: 错误:
我试图按照张量流量化中的说明来生成一个量化的张量流精简版模型。 首先,我使用tf。contrib。量化。创建_training_graph()和tf。contrib。量化。在我的训练过程中创建_eval_graph(),将伪量化节点插入到图形中,并最终生成一个冻结的pb文件(model.pb)。 其次,我使用以下命令将我的伪量化tensorflow模型转换为量化tensorflow lite模型。