Ark*_*lin 5 tensorflow tensorflow-lite
我有一个模型,可以从图像(-1,1之间的数字)中提取512个特征。我使用这里的指令转换此模型来tflite浮点格式 https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite
我在与原始模型和tflite模型相同的图像上进行推断。
我得到的矢量结果不同,我期望得到非常相似的结果,因为我没有使用量化格式。从我的理解中,tf-lite应该只会改善推理性能,而不会影响特征计算。
我的问题是正常的吗?其他人遇到过这个吗?我在任何地方都没有找到与此有关的任何主题。
用代码更新。
我已经训练过这个网络(由于无法共享整个网络,因此删除了很多项目)占位符= tf.placeholder(name ='input',dtype = tf.float32,shape = [None,128,128,1])
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')
Run Code Online (Sandbox Code Playgroud)
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_arrays =输入--output_arrays =嵌入--input_shapes = 1,128,128,1
我在python中使用tensorflow运行network_512.pb,并使用https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite/java/demo 中的代码运行network_512.tflite,其中我修改了代码以加载我的网络并运行它。
更新我发现的。我所做的测试是使用演示应用程序tensorflow提供并将其更改为使用我的服装模型并提取特征,在那里我注意到特征值的差异。
一旦我在最新的 android 上手动编译了 tf-lite c++ lib,并使用我使用的相同流程(到目前为止是 TF-C API)运行流程,我就得到了几乎相同的功能结果。
没有时间去调查差异从何而来。但我现在很高兴。
| 归档时间: |
|
| 查看次数: |
633 次 |
| 最近记录: |