如何使张量具有四维



以下代码:

def decode_img(img):
  # convert the compressed string to a 3D uint8 tensor
  img = tf.image.decode_jpeg(img, channels=3)
  # Use `convert_image_dtype` to convert to floats in the [0,1] range.
  img = tf.image.convert_image_dtype(img, tf.float32)
  # resize the image to the desired size.
  return tf.image.resize(img, [200, 200])

def process_path(file_path):
  #label = get_label(file_path)
  # load the raw data from the file as a string
  img = tf.io.read_file(file_path)
  img = decode_img(img)
  return img
model.predict(process_path('data/train/nonfood/0_808.jpg'))

给出以下错误

ValueError: Error when checking input: expected input_1 to have 4 dimensions, but got array with shape (200, 200, 3)

我想我需要将图像格式化为大小

(1,200,200,3)

但是,格式化的正确语法是什么?

您需要模拟batch_size索引,因为在Keras和TensorFlow中,您只能对批次进行预测。

您可以使用np.expand_dims(photo,axis=0)tf.expand_dims(photo, axis=0)

翻译成你的情况,这意味着在你的decode_imgreturn tf.expand_dims(img,0(

最新更新