TensorFlow DecodePng 抛出值错误

TensorFlow DecodePng throws Value Error

对于png图像的解码,通常我们使用以下代码段。

image_placeholder = tf.placeholder(tf.string)
image_tensor = tf.read_file(image_placeholder)
image_tensor = tf.image.decode_png(image_tensor, channels=1)

为了使用 Tensorflow 服务部署模型,我按照 Inception_saved_model 的示例为我自己的模型版本。下面是该程序中用于读取传入的 tensorproto 的代码。

image_placeholder = tf.placeholder(tf.string, name='images')

feature_configs = {'images': tf.FixedLenFeature(shape=[], dtype=tf.string), }
tf_example = tf.parse_example(image_placeholder, feature_configs)
image_tensor = tf_example['images']

image_tensor = tf.image.decode_png(image_tensor, channels=1)

当我使用此代码时,Decode_png 抛出值错误:

ValueError: Shape must be rank 0 but is rank 1 for 'DecodePng' (op: 'DecodePng') with input shapes: [?].

有人可以帮我解决我哪里出错了吗?我在此处提供的代码与 Inception 示例中给出的代码类似。

tf.parse_example 对批处理 ("rank 1") 进行操作,而 decode_png 需要单个图像(标量字符串,"rank 0")。在使用 decode_png.

之前,我会使用 tf.parse_single_example 或将 reshape 添加到标量 (shape=[])