首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tensorflow lite推理与常规推理的结果不同

tensorflow lite推理与常规推理的结果不同
EN

Stack Overflow用户
提问于 2018-03-28 21:06:45
回答 1查看 1.1K关注 0票数 5

我有一个模型,可以从图像中提取512个特征(-1,1之间的数字)。我使用这里的https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite指令将这个模型转换为tflite浮点格式

我在与原始模型和tflite模型相同的图像上运行推断。

我得到了不同的向量结果,我希望得到非常相似的结果,因为我没有使用量化格式。据我所知,tf-lite应该只会提高推理的执行时间,而不会影响特征计算。

我的问题是这很正常吗?还有人遇到过这种情况吗?我在任何地方都没有找到任何关于这方面的话题。

使用代码进行了更新。

我已经训练了这个网络(删除了许多项目,因为我不能共享整个网络) placeholder = tf.placeholder(name='input',dtype=tf.float32,shape=None,128,128,1)

代码语言:javascript
复制
with slim.arg_scope([slim.conv2d, slim.separable_conv2d],
                      activation_fn=tf.nn.relu, normalizer_fn=slim.batch_norm):
    net = tf.identity(placeholder)
    net = slim.conv2d(net, 32, [3, 3], scope='conv11')
    net = slim.separable_conv2d(net, 64, [3, 3], scope='conv12')
    net = slim.max_pool2d(net, [2, 2], scope='pool1')  # 64x64

    net = slim.separable_conv2d(net, 128, [3, 3], scope='conv21')
    net = slim.max_pool2d(net, [2, 2], scope='pool2')  # 32x32
    net = slim.separable_conv2d(net, 256, [3, 3], scope='conv31')

    net = slim.max_pool2d(net, [2, 2], scope='pool3')  # 16x16
    net = slim.separable_conv2d(net, 512, [3, 3], scope='conv41')
    net = slim.max_pool2d(net, [2, 2], scope='pool4')  # 8x8
    net = slim.separable_conv2d(net, 1024, [3, 3], scope='conv51')
    net = slim.avg_pool2d(net, [8, 8], scope='pool5')  # 1x1
    net = slim.dropout(net)
    net = slim.conv2d(net, feature_vector_size, [1, 1], activation_fn=None, normalizer_fn=None, scope='features')
    embeddings = tf.nn.l2_normalize(net, 3, 1e-10, name='embeddings') 

bazel-bin/tensorflow/contrib/lite/toco/toco --input_file=/tmp/network_512.pb --input_format=TENSORFLOW_GRAPHDEF --output_format=TFLITE --output_file=/tmp/tffiles/network_512.tflite --inference_type=FLOAT --input_type=FLOAT --input_array=input--output_array=embeddings--input_format=1,128,128,1

我在python中使用tensorflow运行network_512.pb,在network_512.tflite中使用https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite/java/demo中的代码运行,其中我修改了代码以加载并运行我的网络。

EN

回答 1

Stack Overflow用户

发布于 2018-04-02 22:42:44

更新我找到的内容。我做的测试是使用演示应用程序tensorflow提供并更改它,以使用我的服装模型和提取特征,在那里我注意到特征值的差异。

一旦我在最新的android上手动编译了tf-lite库,并使用我使用的相同流程(到目前为止是TF- c++ )运行流程,我得到了几乎相同的功能结果。

没有时间去调查差异来自哪里。但我现在很开心。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49535439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档