2016-06-12 10 views
0

Ich möchte tf.image.resize_image_with_crop_or_pad verwenden, um einen Teil des Eingabebildes zu beschneiden. Aber da kommt ein Fehler: ValueError: 'image' must be fully defined. Und ich überprüfte die Why do I get ValueError('\'image\' must be fully defined.') when transforming image in Tensorflow? Ich fügte Tensor.set_shape() hinzu, aber es kann auch nicht funktionieren. Ich liste meinen Code und Fehler wie folgt:Tensorflow: Tensor.set_shape() ValueError: 'Bild' muss vollständig definiert sein

example = tf.image.decode_png(file_contents, channels=3) 
example.set_shape = ([256,256,3]) 
crop_image = tf.image.resize_image_with_crop_or_pad(example, crop_size, crop_size) 

Fehler:

File "/home/kang/Documents/work_code_PC1/VGG_tensorflow_UCMerced/readUClandUsedImagetxt.py", line 97, in _input_pipeline 
    crop_image = tf.image.resize_image_with_crop_or_pad(image, crop_size, crop_size) 

    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/image_ops.py", line 534, in resize_image_with_crop_or_pad 
    _Check3DImage(image, require_static=True) 

    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/image_ops.py", line 221, in _Check3DImage 
    raise ValueError('\'image\' must be fully defined.') 

ValueError: 'image' must be fully defined. 

Ich weiß nicht, warum der Fehler heraus kommt sogar habe ich die bestimmte Form dem Bild. Aber ich testen Sie den Code wie folgt:

example = tf.image.decode_png(file_contents, channels=3) 
example = tf.reshape(example, [256,256,3]) 
crop_image = tf.image.resize_image_with_crop_or_pad(example, crop_size, crop_size) 

Es funktioniert. Ich denke, die Umformung in die gleiche Form ändert nicht die Reihenfolge der Werte in Tensor, habe ich recht? Vielleicht kann es die Lösung sein.

Antwort

1

Das Problem ist bei der Linie

example.set_shape = ([256,256,3]) 

Sie überschreiben die Methode tf.Tensor.set_shape und es auf einen Wert.

set_shape ist eine Methode, so haben Sie es richtig nennen:

example.set_shape([256,256,3]) 

Danach wird der Code arbeiten.

I think reshape to the same shape does not change the order of values in Tensor, am I right?

Ja, du hast Recht

+0

Oh. Vielen Dank. Das ist ein dummer Fehler ... –

Verwandte Themen