语意分割如果只有数据集(只有图片),没有val_list.txt等文件,可参考如下代码:
##制作label list
import os
import pandas as pd
from sklearn.model_selection import train_test_split
DATAPATH='/home/aistudio/work/dataset/'
lab_train_lists=os.listdir(DATAPATH+'lab_train')
lab_train_lists.sort()
print(lab_train_lists[:2])
img_train_lists=os.listdir(DATAPATH+'img_train')
img_train_lists.sort()
total=[DATAPATH+'img_train/'+img_train_list+' '+\
DATAPATH+'lab_train/'+lab_train_list for img_train_list,lab_train_list in zip(img_train_lists,lab_train_lists)]
df=pd.DataFrame(total)
train_df, val_df = train_test_split(df, test_size=0.2, random_state=1000)
val_df.to_csv(DATAPATH+'val_list.txt',index=0,header=0)
train_df.to_csv(DATAPATH+'train_list.txt',index=0,header=0)
test_lists=os.listdir(DATAPATH+'img_testA/')
test_lists.sort()
test_total=[DATAPATH+'img_testA/'+test_list for test_list in test_lists]
test_df=pd.DataFrame(test_total)
test_df.to_csv(DATAPATH+'test_list.txt',index=0,header=0)
这个代码是在ai studio上面跑的,自己可有修改自己数据集的路径
另外,初版更加具备可读性,还是贴出来.上面这个只是想练习函数式
##制作label list
import os
import pandas as pd
from sklearn.model_selection import train_test_split
lab_train_lists=os.listdir('/home/aistudio/work/dataset/lab_train')
lab_train_lists.sort()
img_train_lists=os.listdir('/home/aistudio/work/dataset/img_train')
img_train_lists.sort()
print(img_train_lists[0])
print(lab_train_lists[0])
total=[]
for i in range(len(img_train_lists)):
total.append('/home/aistudio/work/dataset/img_train/'+img_train_lists[i]+' '+'/home/aistudio/work/dataset/lab_train/'+lab_train_lists[i])
total[:10]
df=pd.DataFrame(total)
#val_df=df.loc[:14598]
#train_df=df.loc[14598:]
train_df, val_df = train_test_split(df, test_size=0.2, random_state=1000)
val_df.to_csv("/home/aistudio/work/dataset/val_list.txt",index=0,header=0)
train_df.to_csv("/home/aistudio/work/dataset/train_list.txt",index=0,header=0)
# test_lists=os.listdir('/home/aistudio/work/dataset/img_testA/')
# test_lists.sort()
# test_total=[]
# for i in range(len(test_lists)):
# test_total.append('/home/aistudio/work/dataset/img_testA/'+test_lists[i])
# test_df=pd.DataFrame(test_total)
# test_df.to_csv("/home/aistudio/work/dataset/test_list.txt",index=0,header=0)
看吧,第一版只是删去了for循环,内容基本上一致的