ValueError: 参数必须是密集张量 - Python 和 TensorFlow

8
我正在提取一些可能与我遇到的问题相关的代码部分:
from PIL import Image
import tensorflow as tf

data = Image.open('1-enhanced.png')
...
...
raw_data = data
raw_img = raw_data

我收到了以下这个长消息,但我不确定该如何分析它(你有任何想法吗):

Traceback (most recent call last):
  File "C:\Python35\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 490, in apply_op
    preferred_dtype=default_dtype)
  File "C:\Python35\lib\site-packages\tensorflow\python\framework\ops.py", line 669, in convert_to_tensor
    ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
  File "C:\Python35\lib\site-packages\tensorflow\python\framework\constant_op.py", line 176, in _constant_tensor_conversion_function
    return constant(v, dtype=dtype, name=name)
  File "C:\Python35\lib\site-packages\tensorflow\python\framework\constant_op.py", line 165, in constant
    tensor_util.make_tensor_proto(value, dtype=dtype, shape=shape, verify_shape=verify_shape))
  File "C:\Python35\lib\site-packages\tensorflow\python\framework\tensor_util.py", line 376, in make_tensor_proto
    _GetDenseDimensions(values)))
ValueError: Argument must be a dense tensor: <PIL.PngImagePlugin.PngImageFile image mode=L size=150x150 at 0x1E07D3C0AC8> - got shape [150, 150], but wanted [].

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "conv_visuals.py", line 54, in <module>
    x = tf.reshape(raw_data, shape=[-1,150,150,1])
  File "C:\Python35\lib\site-packages\tensorflow\python\ops\gen_array_ops.py", line 2448, in reshape
    name=name)
  File "C:\Python35\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 503, in apply_op
    as_ref=input_arg.is_ref).dtype.name
  File "C:\Python35\lib\site-packages\tensorflow\python\framework\ops.py", line 669, in convert_to_tensor
    ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
  File "C:\Python35\lib\site-packages\tensorflow\python\framework\constant_op.py", line 176, in _constant_tensor_conversion_function
    return constant(v, dtype=dtype, name=name)
  File "C:\Python35\lib\site-packages\tensorflow\python\framework\constant_op.py", line 165, in constant
    tensor_util.make_tensor_proto(value, dtype=dtype, shape=shape, verify_shape=verify_shape))
  File "C:\Python35\lib\site-packages\tensorflow\python\framework\tensor_util.py", line 376, in make_tensor_proto
    _GetDenseDimensions(values)))
ValueError: Argument must be a dense tensor: <PIL.PngImagePlugin.PngImageFile image mode=L size=150x150 at 0x1E07D3C0AC8> - got shape [150, 150], but wanted [].

谢谢。

2
猜测一下:将其转换为numpy数组:numpy.asarray(Image.open('1-enhanced.png').convert('L'))。然后尝试解决它? - Dair
非常感谢您的评论。是的,我认为已经解决了这个错误。不过我还遇到了另一个错误,但似乎与这个错误无关。 - Simplicity
1个回答

11

看起来问题已经解决,只是发布一下评论:

尝试将其转换为NumPy数组:

numpy.asarray(Image.open('1-enhanced.png').convert('L'))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接