tensorflow pb to tflite 精度下降

在尝试将TensorFlow模型转换为TFLite以部署于移动端进行OCR任务时,发现模型精度显著下降,无法满足业务需求。经过模型训练、固化为PB文件、再转换为TFLite的流程,无论是在Python的TF Interpreter还是Android端,精度都受到影响。网络结构基于slim库,尽管简单分类问题上表现优秀,但转换后的TFLite模型精度严重下滑。目前问题尚未解决,计划后续深入研究。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前希望在手机端使用深度模型做OCR,于是尝试在手机端部署tensorflow模型,用于图像分类。

思路主要是想使用tflite部署到安卓端,但是在使用tflite的时候发现模型的精度大幅度下降,已经不能支持业务需求了,最后就把OCR模型调用写在服务端了,但是精度下降的原因目前也没有找到,现在这里记录一下。

工作思路:1.训练图像分类模型;2.模型固化成pb;3.由pb转成tflite文件;

但是使用python 的tf interpreter 调用tflite文件就已经出现精度下降的问题,android端部署也是一样。

1.网络结构

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import tensorflow as tf

slim = tf.contrib.slim


def ttnet(images, num_classes=10, is_training=False,
          dropout_keep_prob=0.5,
          prediction_fn=slim.softmax,
          scope='TtNet'):
  end_points = {}

  with tf.variable_scope(scope, 'TtNet', [images, num_classes]):
    net = slim.conv2d(images, 32, [3, 3], scope='conv1')
    # net = slim.conv2d(images, 64, [3, 3], scope='conv1_2')
    net = slim.max_pool2d(net, [2, 2], 2, scope='pool1')
    net = slim.batch_norm(net, activation_fn=tf.nn.relu, scope='bn1')
    # net = slim.conv2d(net, 128, [3, 3], scope='conv2_1')
    net = slim.conv2d(net, 64, [3, 3], scope='conv2')
    net = slim.max_pool2d(net, [2, 2], 2, scope='pool2')
    net = slim.conv2d(net, 128, [3, 3], scope='conv3')
    net = slim.max_pool2d(net, [2, 2], 2, scope='pool3')
    net = slim.conv2d(net, 256, [3, 3], scope='conv4')
    net = slim.max_pool2d(net, [2, 2], 2, scope='pool4')
    net = slim.batch_norm(net, activation_fn=tf.nn.relu, scope='bn2')
    # net = slim.conv2d(net, 512, [3, 3], scope='conv5
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值