Tensorflow:tf.image.central_crop 问题

Tensorflow: Issue with tf.image.central_crop

我在使用 tf.image.central_crop()

时遇到了以下问题
def preprocessor(image):
    image = tf.reshape(image, (IMAGE_HEIGHT, IMAGE_WIDTH, IMAGE_CHANNELS))
    print(image.get_shape())
    image = tf.image.central_crop(image,0.8)
    print(image.get_shape())
    return image

输出

(384, 384, 3)  and (?, ?, 3)

central_crop() 函数似乎丢失了有关 图像的 高度 宽度 的信息张量。 为什么会这样?

Tensorflow version:  tensorflow 1.0.0, tensorflow-gpu 1.0.1

你是对的。除非对其进行评估,否则无法检索张量的形状。如果你想在接下来的操作中使用它,你可以使用 "tf.shape(image)"。

TF 裁剪了图像但无法获得其形状。如果你只想检查它是否在做,请按照这个(运行 会话):

import tensorflow as tf
import numpy as np
IMAGE_HEIGHT = 384
IMAGE_WIDTH = 384
IMAGE_CHANNELS = 3

def preprocessor(image):
    image = tf.reshape(image, (IMAGE_HEIGHT, IMAGE_WIDTH, IMAGE_CHANNELS))
    image = tf.image.central_crop(image,0.8)
    shape = tf.shape(image)
    return image,shape

image = tf.random_normal([IMAGE_HEIGHT,IMAGE_WIDTH,IMAGE_CHANNELS])
image_cropped,shape = preprocessor(image)

sess = tf.Session()
im_v,im_crop_v,shape_v = sess.run([image,image_cropped,shape])
print(im_v.shape)
print(im_crop_v.shape)
print(shape_v)

输出:

(384, 384, 3)
(308, 308, 3)
[308 308   3]