我从kaggle下载了数据集: https://www.kaggle.com/c/dogs-vs-cats/data
然后尝试使用cv2.split('。')[ - 3]命令从下载的数据中获取图像标签。 (代码到底)
然而,我得到了“索引超出范围错误”。我检查了文件名,并在从kaggle数据集解压缩后只看到1.jpg,2.jpg,3.jpg。
根据我的阅读,数据集应该在文件名中有标签。即 https://www.packtpub.com/mapt/book/big_data_and_business_intelligence/9781788475655/23/ch23lvl1sec118/deep-learning-for-cats-versus-dogs
所以我的问题是
Q1:我认为我的python语法是正确的。看起来我只有两个参数[0]和[1],文件名为“num.jpg”而不是“label.num.jpg”,对吧?
Q2:如果是这样,任何人都可以帮我指出为什么我无法在文件名中找到带有标签的正确数据集?
ps:我是python,kaggle,(或编程领域)的新手。
谢谢 米拉
ps:我的部分代码:
for img in tqdm(os.listdir(TRAIN_DIR))
path = os.path.join(TRAIN_DIR, img)
img_data = cv2.imread(path)
cv2.imshow('train_data_image:', img_data)
print ('test:', img.split('.')[-3])
答案 0 :(得分:1)
仅供参考 - 我找到了我的问题的答案......
事实证明我使用的测试数据确实不应该包含数据集中的标签。我下载了火车数据,它的文件名中有标签(狗/猫)。
谢谢! 米拉