SeuTao / RSNA2019_Intracranial-Hemorrhage-Detection

Code for 1st Place Solution in Intracranial Hemorrhage Detection Challenge @ RSNA2019
411 stars 113 forks source link

Empty set in 'df[df['study_instance_uid'].isin(name_list)' #10

Open bbb801 opened 3 years ago

bbb801 commented 3 years ago

Dear Sir, Congrats!

I am trying to reproduce the results. However, in your '.../2DNet/src/dataset/dataset.py' (see (1), (2) ) and in '.../2DNet/src/train.py' (see (3) ,(4) ), I paste some codes as belows:

(1): def init(self, df = None, name_list = None, transform = None ): self.df = df[df['study_instance_uid'].isin(name_list)] self.name_list = name_list self.transform = transform

def __getitem__(self, idx):
    study_name = self.name_list[idx % len(self.name_list)]
    study_train_df = self.df[self.df['study_instance_uid']==study_name]

(2) train_dataset = RSNA_Dataset_train_by_study_context(df_all, c_train, train_transform)

(3) df_all = pd.read_csv(csv_path) kfold_path_train = '../data/fold_5_by_study/' kfold_path_val = '../data/fold_5_by_study_image/'

for num_fold in range(5):
    print('fold_num:',num_fold)

    with open(snapshot_path + '/log.csv', 'a', newline='') as f:
        writer = csv.writer(f)
        writer.writerow([num_fold]) 

    f_train = open(kfold_path_train + 'fold' + str(num_fold) + '/train.txt', 'r')
    f_val = open(kfold_path_val + 'fold' + str(num_fold) + '/val.txt', 'r')
    c_train = f_train.readlines()
    c_val = f_val.readlines()
    f_train.close()
    f_val.close()
    c_train = [s.replace('\n', '') for s in c_train]
    c_val = [s.replace('\n', '') for s in c_val]  

(4) csv_path = '../data/stage1_train_cls.csv'

The problem is 'df[df['study_instance_uid'].isin(name_list)' where name_list is from 'filename' (see 'stage1_train_cls.csv'); it has not elements in 'study_instance_uid'. This command will end up an empty set. So, I get an error and I am confused bt this step. Could you give some advice? Thank you!

image image