Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 不是JPEG文件:以0xc3 0xbf开头_Python_Tensorflow - Fatal编程技术网

Python 不是JPEG文件:以0xc3 0xbf开头

Python 不是JPEG文件:以0xc3 0xbf开头,python,tensorflow,Python,Tensorflow,我正在尝试使用tf.image.decode_jpeg对jpeg文件进行解码,但它说它不是jpeg文件。我不知道是什么问题。有人能帮我解决这个问题吗 这是我的测试代码 import tensorflow as tf path = "/root/PycharmProjects/mscoco/train2014/COCO_train2014_000000291797.jpg" with open(path, "r", encoding="latin-1") as f: image = f

我正在尝试使用tf.image.decode_jpeg对jpeg文件进行解码,但它说它不是jpeg文件。我不知道是什么问题。有人能帮我解决这个问题吗

这是我的测试代码

import tensorflow as tf

path = "/root/PycharmProjects/mscoco/train2014/COCO_train2014_000000291797.jpg"

with open(path, "r", encoding="latin-1") as f:
    image = f.read()


encoded_jpeg = tf.placeholder(dtype=tf.string)
decoded_jpeg = tf.image.decode_jpeg(encoded_jpeg, channels=3)

sess = tf.InteractiveSession()

sess.run(decoded_jpeg, feed_dict={encoded_jpeg: image})
这就是错误:

Not a JPEG file: starts with 0xc3 0xbf
Traceback (most recent call last):
  File "/usr/lib/python3.4/site-packages/tensorflow/python/client/session.py", line 965, in _do_call
    return fn(*args)
  File "/usr/lib/python3.4/site-packages/tensorflow/python/client/session.py", line 947, in _run_fn
    status, run_metadata)
  File "/usr/lib64/python3.4/contextlib.py", line 66, in __exit__
    next(self.gen)
  File "/usr/lib/python3.4/site-packages/tensorflow/python/framework/errors.py", line 450, in raise_exception_on_not_ok_status
    pywrap_tensorflow.TF_GetCode(status))
tensorflow.python.framework.errors.InvalidArgumentError: Invalid JPEG data, size 165886
     [[Node: DecodeJpeg = DecodeJpeg[acceptable_fraction=1, channels=3, fancy_upscaling=true, ratio=1, try_recover_truncated=false, _device="/job:localhost/replica:0/task:0/cpu:0"](_recv_Placeholder_0)]]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/PycharmProjects/mytf/models/im2txt/im2txt/data/test.py", line 14, in <module>
    sess.run(decoded_jpeg, feed_dict={encoded_jpeg: image})
  File "/usr/lib/python3.4/site-packages/tensorflow/python/client/session.py", line 710, in run
    run_metadata_ptr)
  File "/usr/lib/python3.4/site-packages/tensorflow/python/client/session.py", line 908, in _run
    feed_dict_string, options, run_metadata)
  File "/usr/lib/python3.4/site-packages/tensorflow/python/client/session.py", line 958, in _do_run
    target_list, options, run_metadata)
  File "/usr/lib/python3.4/site-packages/tensorflow/python/client/session.py", line 978, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors.InvalidArgumentError: Invalid JPEG data, size 165886
     [[Node: DecodeJpeg = DecodeJpeg[acceptable_fraction=1, channels=3, fancy_upscaling=true, ratio=1, try_recover_truncated=false, _device="/job:localhost/replica:0/task:0/cpu:0"](_recv_Placeholder_0)]]
Caused by op 'DecodeJpeg', defined at:
  File "/root/PycharmProjects/mytf/models/im2txt/im2txt/data/test.py", line 10, in <module>
    decoded_jpeg = tf.image.decode_jpeg(encoded_jpeg, channels=3)
  File "/usr/lib/python3.4/site-packages/tensorflow/python/ops/gen_image_ops.py", line 283, in decode_jpeg
    name=name)
  File "/usr/lib/python3.4/site-packages/tensorflow/python/framework/op_def_library.py", line 703, in apply_op
    op_def=op_def)
  File "/usr/lib/python3.4/site-packages/tensorflow/python/framework/ops.py", line 2317, in create_op
    original_op=self._default_original_op, op_def=op_def)
  File "/usr/lib/python3.4/site-packages/tensorflow/python/framework/ops.py", line 1239, in __init__
    self._traceback = _extract_stack()
不是JPEG文件:以0xc3 0xbf开头
回溯(最近一次呼叫最后一次):
文件“/usr/lib/python3.4/site packages/tensorflow/python/client/session.py”,第965行,在
返回fn(*args)
文件“/usr/lib/python3.4/site packages/tensorflow/python/client/session.py”,第947行,在
状态,运行(元数据)
文件“/usr/lib64/python3.4/contextlib.py”,第66行,在__
下一个(self.gen)
文件“/usr/lib/python3.4/site packages/tensorflow/python/framework/errors.py”,第450行,处于raise\u exception\u on\u not\u ok\u状态
pywrap_tensorflow.TF_GetCode(状态))
tensorflow.python.framework.errors.InvalidArgumentError:无效的JPEG数据,大小165886
[[Node:DecodeJpeg=DecodeJpeg[可接受的分数=1,通道=3,高级放大=true,比率=1,尝试恢复\u截断=false,\u设备=“/job:localhost/replica:0/task:0/cpu:0”](\u recv\u占位符\u 0)]]
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“/root/PycharmProjects/mytf/models/im2text/im2text/data/test.py”,第14行,在
运行(已解码的\u jpeg,提要\u dict={encoded\u jpeg:image})
文件“/usr/lib/python3.4/site packages/tensorflow/python/client/session.py”,第710行,正在运行
运行_元数据_ptr)
文件“/usr/lib/python3.4/site packages/tensorflow/python/client/session.py”,第908行,正在运行
提要(dict字符串、选项、运行元数据)
文件“/usr/lib/python3.4/site packages/tensorflow/python/client/session.py”,第958行,运行
目标\u列表、选项、运行\u元数据)
文件“/usr/lib/python3.4/site packages/tensorflow/python/client/session.py”,第978行,在
提升类型(e)(节点定义、操作、消息)
tensorflow.python.framework.errors.InvalidArgumentError:无效的JPEG数据,大小165886
[[Node:DecodeJpeg=DecodeJpeg[可接受的分数=1,通道=3,高级放大=true,比率=1,尝试恢复\u截断=false,\u设备=“/job:localhost/replica:0/task:0/cpu:0”](\u recv\u占位符\u 0)]]
由op“DecodeJpeg”引起,定义于:
文件“/root/PycharmProjects/mytf/models/im2text/im2text/data/test.py”,第10行,在
解码的\u jpeg=tf.image.decode\u jpeg(编码的\u jpeg,通道=3)
文件“/usr/lib/python3.4/site packages/tensorflow/python/ops/gen_image_ops.py”,第283行,格式为decode_jpeg
名称=名称)
文件“/usr/lib/python3.4/site packages/tensorflow/python/framework/op_def_library.py”,第703行,在apply_op
op_def=op_def)
文件“/usr/lib/python3.4/site packages/tensorflow/python/framework/ops.py”,第2317行,在create_op中
初始值=自身值。\默认值\初始值,初始值=初始值)
文件“/usr/lib/python3.4/site packages/tensorflow/python/framework/ops.py”,第1239行,在__
self.\u traceback=\u extract\u stack()

我无法

您正在读取图像文件,就像它是文本文件一样

换句话:

with open(path, "r", encoding="latin-1") as f:


以二进制文件形式读取图像(“rb”=读取二进制文件)。

您正在读取图像文件,就像它是文本文件一样

换句话:

with open(path, "r", encoding="latin-1") as f:


以二进制文件的形式读取图像(“rb”=读取二进制文件)。

非常准确。原来
c3 bf
是拉丁语-1中
ff
的UTF-8编码,这是JFIF图像标记起始的第一个字节(作为二进制数据,将其解析为任何一种编码都是不正确的)。原来
c3 bf
是拉丁语-1中
ff
的UTF-8编码,它是JFIF图像标记起始的第一个字节(作为二进制数据,将其解析为任一编码都是不正确的).您使用tensorflow而不是PIL/pillow的原因是什么?Pithons的默认图像库更多?您使用tensorflow而不是PIL/pillow的原因是什么?