【问题标题】:tensorflow lite toco python APl: NameError: "name 'tempfile' is not defined"tensorflow lite toco python APl:NameError:“名称'tempfile'未定义”
【发布时间】:2017-12-05 02:18:54
【问题描述】:

我从https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/toco/g3doc/python_api.md 运行示例

import tensorflow as tf

img = tf.placeholder(name="img", dtype=tf.float32, shape=(1, 64, 64, 3))
val = img + tf.constant([1., 2., 3.]) + tf.constant([1., 4., 4.])
out = tf.identity(val, name="out")
with tf.Session() as sess:
  tflite_model = tf.contrib.lite.toco_convert(sess.graph_def, [img], [out])
  open("test.tflite", "wb").write(tflite_modeL)

但我在 python3 中收到错误为“NameError: name 'tempfile' is not defined”和 python2 中的“NameError: global name 'tempfile' is not defined”

NameError                                 Traceback (most recent call last)
<ipython-input-21-24c36564faa4> in <module>()
      5 out = tf.identity(val, name="out")
      6 with tf.Session() as sess:
----> 7   tflite_model = tf.contrib.lite.toco_convert(sess.graph_def, [img], [out])
  8   open("test.tflite", "wb").write(tflite_modeL)

python3.5/site-packages/tensorflow/contrib/lite/python/lite.py in toco_convert(input_data, input_tensors, output_tensors, inference_type, input_format, output_format, quantized_input_stats, drop_control_dependency)
    196   data = toco_convert_protos(model.SerializeToString(),
    197                              toco.SerializeToString(),
--> 198                              input_data.SerializeToString())
    199   return data
    200 

python3.5/site-packages/tensorflow/contrib/lite/python/lite.py in toco_convert_protos(model_flags_str, toco_flags_str, input_data_str)
     89     return _toco_convert_protos(model_flags_str, toco_flags_str, input_data_str)
     90 
---> 91   with tempfile.NamedTemporaryFile() as fp_toco, \
     92            tempfile.NamedTemporaryFile() as fp_model, \
     93            tempfile.NamedTemporaryFile() as fp_input, \

NameError: name 'tempfile' is not defined

如何让它发挥作用?

【问题讨论】:

标签: tensorflow tensorflow-lite


【解决方案1】:

自 TensorFlow 1.7 以来,此问题已得到修复(请参阅 github bug)。

我刚刚在最新的 TensorFlow 版本 1.9 中成功执行了你的 sn-p:

import tensorflow as tf
img = tf.placeholder(name="img", dtype=tf.float32, shape=(1, 64, 64, 3))
val = img + tf.constant([1., 2., 3.]) + tf.constant([1., 4., 4.])
out = tf.identity(val, name="out")
with tf.Session() as sess:
tflite_model = tf.contrib.lite.toco_convert(sess.graph_def, [img], [out])
open("converteds_model.tflite", "wb").write(tflite_model)

TFLite 模型 converts_model.tflite 被保存到文件中。

【讨论】:

    猜你喜欢
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 2021-10-18
    相关资源
    最近更新 更多