ValueError:形状必须为3级,但输入形状为[384,12,12,3],[3],[3]的'adjust_hue / Slice'(op:'Slice')为4级

时间:2018-11-28 06:38:30

标签: python tensorflow

在进行TensorFlow项目时,我遇到了一个问题,但我不知道如何解决。我有

enter image description here

  

ValueError:对于输入形状为[384,12,12,3],[3],[3]的'adjust_hue / Slice'(op:'Slice'),形状必须为3级,但为4级。 / p>

2 个答案:

答案 0 :(得分:0)

根据[https://github.com/tensorflow/tensorflow/issues/8926]

某些tf.image函数仅接受单个图像作为输入。

但是某些图像操作(例如tf.image.random_brightness(),tf.image.random_contrast())允许批量处理。

解决方案是使用lambda批量处理:

    hue = lambda x: tf.image.random_hue(x, 0.5)
    inputs = tf.map_fn(hue, inputs)

答案 1 :(得分:0)

只需在train.py的函数image_color_distort中删除/注释tf.image.random_hue和image.random_saturation,就像下面的代码:

def image_color_distort(inputs):
    inputs = tf.image.random_contrast(inputs, lower=0.5, upper=1.5)
    inputs = tf.image.random_brightness(inputs, max_delta=0.2)
    # inputs = tf.image.random_hue(inputs,max_delta= 0.2)
    # inputs = tf.image.random_saturation(inputs,lower = 0.5, upper= 1.5)

    return inputs