Python 来自数据帧的Keras flow_给出0个图像
我尝试使用Keras的方法来阅读训练和测试图像 我的培训和测试图像都在同一个目录中,我从两个不同的csv文件中读取路径 我读取测试图像的代码如下所示Python 来自数据帧的Keras flow_给出0个图像,python,keras,Python,Keras,我尝试使用Keras的方法来阅读训练和测试图像 我的培训和测试图像都在同一个目录中,我从两个不同的csv文件中读取路径 我读取测试图像的代码如下所示 # Read test file testdf = pd.read_csv("test.csv") # load images test_datagen = ImageDataGenerator(rescale=1./255) test_generator = test_datagen.flow_from_dataframe( data
# Read test file
testdf = pd.read_csv("test.csv")
# load images
test_datagen = ImageDataGenerator(rescale=1./255)
test_generator = test_datagen.flow_from_dataframe(
dataframe=testdf, directory=IMAGE_PATH,
x_col='image_name', y_col=None,
has_ext=True, target_size=(10,10)
,batch_size=32,color_mode='rgb',shuffle=False, class_mode=None)
我得到这样的输出
Found 0 images.
而读取训练数据的类似代码可以正常工作。我检查了图像是否存在于给定的路径中,它们确实存在。这一错误的可能原因是什么?如何尝试调试该问题
编辑:这是一项回归任务,因此所有图像都在一个目录中,而不是在子目录中,这与分类任务所期望的一样
编辑2:我添加了
usecols=[0]
来读取\u csv,现在test\u datagen会找到目录中的所有图像,而不仅仅是test.csv文件中提到的图像问题的发生是由于数据框中的NaN。忽略这些列是行不通的。解决办法是用其他东西代替NaN。比如说,
testdf = pd.read_csv("test.csv")
testdf.fillna(0, inplace=True)
这将用0替换NaN。然后像往常一样使用
ImageDataGenerator
。我也遇到了同样的错误,并找到了解决方法。
我使用的是绝对路径,使用的是正确的数据帧,一切都很好,但是代码抛出了一个错误——“找不到图像”
我检查后发现,我的数据框中包含的图像名称没有扩展名,文件夹中的图像也有扩展名。
例如,DataFrame中的图像名称为“abc”,但文件夹中的图像名称为“abc.png”。
只需在DataFrame中的图像名称中添加.png,它就能解决您的问题。
我刚刚尝试了下面的代码,结果成功了
def append_ext(fn):
return fn+".png"
train_valid_data["id_code"]=train_valid_data["id_code"].apply(append_ext)
test_data["id_code"]=test_data["id_code"].apply(append_ext)
让我知道它是否解决了您的问题,或者您是否需要进一步解释。我也有同样的问题。首先,确保参数
目录
的绝对路径正确
my df中的文件名的值为image.pgm.png
,文件夹中的实际图像文件的格式为image.pgm
image.pgm
=>仍然无法工作image.pgm
重命名为image.pgm.png
,它与df=>中的格式完全匹配李>
“image_name”列中的图像名称应仅为图像名称,不包含路径。你能确认吗?@sdcbr是的。示例:
12345.png
。它们都以png结尾,名字中有随机数字/字母。