![](/img/trans.png)
[英]TypeError: Dimension value must be integer or None or have an __index__ method, got value 'TensorShape([None, 16])'
[英]Tensorflow ValueError: All shapes must be fully defined: [TensorShape([Dimension(None), Dimension(None), Dimension(3)]), TensorShape([])
我想使用批处理从文件夹中读取图像。但是在解码之后,当我使用tf.train.batch
时可能会出现一些问题。 这是代码。
def get_batch(image, label, batch_size, capacity):
image = tf.cast(image, tf.string)
label = tf.cast(label, tf.int32)
input_queue = tf.train.slice_input_producer([image, label])
label = input_queue[1]
image_contents = tf.read_file(input_queue[0])
image = tf.image.decode_jpeg(image_contents, channels=3)
image = tf.image.per_image_whitening(image)
image_batch, label_batch = tf.train.batch([image, label],
batch_size = batch_size,
num_threads = 8,
capacity = capacity)
label_batch = tf.reshape(label_batch, [batch_size])
image_batch = tf.cast(image_batch, tf.float32)
return image_batch, label_batch
错误说我还没有定义一些张量形状。 我不知道该怎么办,也许我没有以正确的方式使用解码,这是错误所在。
Traceback (most recent call last):
File "input_data.py", line 118, in <module>
image_batch, label_batch = get_batch(image_list, label_list, BATCH_SIZE, CAPACITY)
File "input_data.py", line 90, in get_batch
capacity = capacity)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/input.py", line 538, in batch
capacity=capacity, dtypes=types, shapes=shapes, shared_name=shared_name)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/data_flow_ops.py", line 453, in __init__
shapes = _as_shape_list(shapes, dtypes)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/data_flow_ops.py", line 71, in _as_shape_list
raise ValueError("All shapes must be fully defined: %s" % shapes)
ValueError: All shapes must be fully defined: [TensorShape([Dimension(None), Dimension(None), Dimension(3)]), TensorShape([])]
您要批处理的数据必须具有预定义的形状,在这种情况下,张量image
没有,您需要使用image.set_shape
或tf.image.resize_images
指定形状
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.