![]() |
help with error - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: help with error (/thread-25932.html) |
help with error - sveto4ka - Apr-16-2020 Can you tell me how to solve problem: Full code:DATA_DIR = '/content/drive/My Drive/Severtal/data/severstal-steel-defect-detection' USER_DATA = '/content/drive/My Drive/Severtal' SUBMISSION_CSV_FILE = '/content/drive/My Drive/Severtal/data/sample_submission.csv' DATAA_DIR = '/content/drive/My Drive/Severtal/data/train_images/' DATAAA_DIR = '/content/drive/My Drive/Severtal/data/' #Вычисляем параметры изображения (среднее значения пикселя, стандартное отклонение) imagee = cv2.imread(DATAA_DIR+"0a4ef8ee7.jpg") IMAGE_RGB_MEANst =cv2.mean(imagee) IMAGE_RGB_MEAN=IMAGE_RGB_MEANst[:3] IMAGE_RGB_STDst =cv2.meanStdDev(imagee) IMAGE_RGB_STD = IMAGE_RGB_STDst[1] #Прописываем путь, куда будет сохраняться наша сеть: USER_DATA + '/model_unet_resnet18.pth' CHECKPOINT_FILE = USER_DATA + '/model_unet_resnet18.pth' #Для дальнейшей оценки затраченного времени, создаем функцию «time_to_str» с аргументом t и необязательным аргументом mode, по умолчанию равный min def time_to_str(t, mode='min'): if mode=='min': t = int(t)/60 hr = t//60 min = t%60 return '%2d hr %02d min'%(hr,min) elif mode=='sec': t = int(t) min = t//60 sec = t%60 return '%2d min %02d sec'%(min,sec) else: raise NotImplementedError #МОДЕЛЬ BatchNorm2d = nn.BatchNorm2d # Предобработка данных def image_to_input(image): input = image.astype(np.float32) input = input[...,::-1]/255 input = input.transpose(0,3,1,2) input[:,0] = (input[:,0]-IMAGE_RGB_MEAN[0])/IMAGE_RGB_STD[0] input[:,1] = (input[:,1]-IMAGE_RGB_MEAN[1])/IMAGE_RGB_STD[1] input[:,2] = (input[:,2]-IMAGE_RGB_MEAN[2])/IMAGE_RGB_STD[2] return input # Создаем класс «KaggleTestDataset» с аргументом Dataset class KaggleTestDataset(Dataset): def __init__(self): df = pd.read_csv(DATA_DIR + '/sample_submission.csv') df['ImageId'] = df['ImageId_ClassId'].apply(lambda x: x.split('_')[0]) self.uid = df['ImageId'].unique().tolist() def __str__(self): string = '' string += '\tlen = %d\n'%len(self) return string def __len__(self): return len(self.uid) def __getitem__(self, index): # print(index) image_id = self.uid[index] image = cv2.imread(DATA_DIR + '/test_images/%s'%(image_id), cv2.IMREAD_COLOR) return image, image_id def null_collate(batch): batch_size = len(batch) input = [] image_id = [] for b in range(batch_size): input.append(batch[b][0]) image_id.append(batch[b][1]) input = np.stack(input) input = torch.from_numpy(image_to_input(input)) return input, image_id def run_make_submission_csv(): threshold = 0.5 min_size = 3500 # Загрузка сети print('load net ...') # Загрузка данных print('load data ...') dataset = KaggleTestDataset() print(dataset) loader = DataLoader( dataset, sampler = SequentialSampler(dataset), batch_size = 8, drop_last = False, num_workers = 0, pin_memory = True, collate_fn = null_collate ) # Начинаем тут! image_id_class_id = [] encoded_pixel = [] start = timer() for t,(input, image_id) in enumerate(loader): print('\r t = 3%d / 3%d %s %s : %s'%( t, len(loader)-1, str(input.shape), image_id[0], time_to_str((timer() - start),'sec'), ),end='', flush=True) input = input.cuda() with torch.no_grad(): logit = net(input) probability= torch.sigmoid(logit) |