【发布时间】:2019-09-21 06:29:07
【问题描述】:
在将照片预定义到文件夹及其分类的初始步骤之后,我正在使用 keras 库来预处理我的数据。我不想手动这样做,所以我制作了自己的脚本,但它不起作用,有人可以帮助调试它吗?
它没有给出具体的错误,但它只是没有完成工作并停在照片ISIC_0000006。 wah 是照片是否被归类为癌症,yay 是照片是否被归类为良性癌症。如果数据不正确,则数据集返回 1,如果正常则返回 0。我仍然不知道问题所在。
This 是我正在使用的数据集。
顺便说一句,我还是个孩子,所以请不要指望我对编程了解太多。
数据集中的示例行:
ISIC_0000000 = 0
ISIC_0000001 = 0
ISIC_0000002 = 1
ISIC_0000003 = 0
ISIC_0000004 = 0
ISIC_0000005 = 1
我的代码:
import pandas as pd
import os
dataset = pd.read_csv('ISIC-2017_Training_Part3_GroundTruth.csv')
dataset = dataset.iloc[:, :-1]
x = 0
xb = 0
xm = 0
prevName = 'ISIC_0000000.jpg'
newName = 'yay/benign1'
while(x <= 1500):
x = x + 1
if prevName == dataset.iloc[x-1, 0] + '.jpg':
if x < 10:
prevName = 'ISIC_000000' + str(x-1) + '.jpg'
if prevName == 'ISIC_0000005.jpg': #dataset has random hole so skips over
x = x + 1
prevName = 'ISIC_0000006.jpg'
elif x < 100:
prevName = 'ISIC_00000' + str(x-1) + '.jpg'
elif x < 1000:
prevName = 'ISIC_0000' + str(x-1) + '.jpg'
else:
prevName = 'ISIC_000' + str(x-1) + '.jpg'
if dataset.iloc[x-1, 1] == 1:
xm = xm + 1
newName = 'melanoma' + str(xm)
else:
xb = xb + 1
newName = 'benign' + str(xb)
if newName == 'benign' + str(xb):
newName = 'yay/' + newName + '.jpg'
os.rename(prevName, newName)
else:
newName = 'wah/' + newName + '.jpg'
os.rename(prevName, newName)
prevName = 'ISIC_000000' + str(x+1) + '.jpg'
编辑!!!这是我的新代码,感谢 Abhineet Gupta 能够更深入地浏览数据集,但奇怪的是停在照片 34:
import pandas as pd
import os
dataset = pd.read_csv('_ISIC-2017_Training_Part3_GroundTruth.csv')
dataset = dataset.iloc[:, :-1]
x = 0
xb = 0
xm = 0
prevName = 'ISIC_0000000.jpg'
newName = 'yay/benign1'
while(x <= 1500):
x = x + 1
prevName = 'ISIC_' + str(x).zfill(7) + '.jpg'
if prevName == dataset.iloc[x-1, 0] + '.jpg':
if x == '0000005':
x = x + 1
prevName = 'ISIC_000006.jpg'
if dataset.iloc[x-1, 1] == 1:
xm = xm + 1
newName = 'melanoma' + str(xm)
else:
xb = xb + 1
newName = 'benign' + str(xb)
if newName == 'benign' + str(xb):
newName = 'yay/' + newName + '.jpg'
os.rename(prevName, newName)
else:
newName = 'wah/' + newName + '.jpg'
os.rename(prevName, newName)
prevName = 'ISIC_000000' + str(x+1) + '.jpg'
最后一次编辑:原来不是代码错误,只是 .csv 文件搞砸了。感谢 Abhineet Gupta 和 mrk 的解决方案!!!
【问题讨论】:
-
能否添加几行csv文件,以便更容易重现您的代码?谢谢
-
我现在编辑了代码! :)
标签: python pandas csv deep-learning dataset