SSD Tensorflow:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start

 

我们在运行SSD Tensorflow版本的时候,会出现以下问题,我运行的命令为:

DATASET_DIR=VOC2012/
OUTPUT_DIR=tfrecords
python tf_convert_data.py \
    --dataset_name=pascalvoc \
    --dataset_dir=${DATASET_DIR} \
    --output_name=voc_2012_train \
    --output_dir=${OUTPUT_DIR}

通过百度是搜不到github上面的issues上面的答案的,我这里把问题的解决方法写出来,希望帮助大家玩SSD。错误信息为:

 Converting image 1/5138Traceback (most recent call last):
  File "tf_convert_data.py", line 59, in <module>
    tf.app.run()
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/platform/app.py", line 48, in run
    _sys.exit(main(_sys.argv[:1] + flags_passthrough))
  File "tf_convert_data.py", line 54, in main
    pascalvoc_to_tfrecords.run(FLAGS.dataset_dir, FLAGS.output_dir, FLAGS.output_name)
  File "/home/xyxt/Downloads/SSD-Tensorflow/datasets/pascalvoc_to_tfrecords.py", line 218, in run
    _add_to_tfrecord(dataset_dir, img_name, tfrecord_writer)
  File "/home/xyxt/Downloads/SSD-Tensorflow/datasets/pascalvoc_to_tfrecords.py", line 177, in _add_to_tfrecord
    _process_image(dataset_dir, name)
  File "/home/xyxt/Downloads/SSD-Tensorflow/datasets/pascalvoc_to_tfrecords.py", line 83, in _process_image
    image_data = tf.gfile.FastGFile(filename, 'r').read()
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/lib/io/file_io.py", line 126, in read
    pywrap_tensorflow.ReadFromStream(self._read_buf, length, status))
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/lib/io/file_io.py", line 94, in _prepare_value
    return compat.as_str_any(val)
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/util/compat.py", line 106, in as_str_any
    return as_str(value)
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/util/compat.py", line 84, in as_text
    return bytes_or_text.decode(encoding)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

解决办法为:

pascalvoc_to_tfrecords.py
image_data = tf.gfile.FastGFile(filename, 'r').read()
改成:
image_data = tf.gfile.FastGFile(filename, 'rb').read()

就可以了。


参考文献

[1].can't create dataset: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte . https://github.com/balancap/SSD-Tensorflow/issues/108

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农民小飞侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值