我正在尝试创建一个Keras模型,用一组从路径列表中获取的图像进行训练。我知道tf.keras.utils.image_dataset_from_directory
方法存在,但它不能满足我的需求,因为我想学习处理图像的正确方法,而且我需要进行回归,而不是分类。我尝试的每种方法都以这样或那样的方式失败,主要是因为x_train变量的类型是错误的。
我用来加载单个图像的最有前途的函数是:
def encode_image(img_path):
img = tf.keras.preprocessing.image.load_img(img_path)
img_array = tf.keras.preprocessing.image.img_to_array(img)
img_array = tf.expand_dims(img_array, 0)
return img_array
x_train = df['filename'].apply(lambda i: encode_image(i))
这不起作用,因为当我这样调用.fit()方法时:
history = model.fit(x_train, y_train, epochs=1)
我收到以下错误:
Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray)
这让我明白我传递的数据格式错误。有人能给我一个基本的例子来创建一个(x_train,y_train)对来提供一个模型来使用一组图像进行训练吗?非常感谢
1条答案
按热度按时间ars1skjm1#
Numpy错误可以使用**tf.convert_to_tensor()**方法修复。
您请求的图像工作参考代码如下:
希望这能解决你的疑问。