366 KiB
366 KiB
!wget --quiet http://sceneparsing.csail.mit.edu/data/ChallengeData2017/images.tar
!wget --quiet http://sceneparsing.csail.mit.edu/data/ChallengeData2017/annotations_instance.tar
!tar -xf images.tar
!tar -xf annotations_instance.tar
!rm images.tar annotations_instance.tar
!pip install -qU torch_snippets
!wget --quiet https://raw.githubusercontent.com/pytorch/vision/master/references/detection/engine.py
!wget --quiet https://raw.githubusercontent.com/pytorch/vision/master/references/detection/utils.py
!wget --quiet https://raw.githubusercontent.com/pytorch/vision/master/references/detection/transforms.py
!wget --quiet https://raw.githubusercontent.com/pytorch/vision/master/references/detection/coco_eval.py
!wget --quiet https://raw.githubusercontent.com/pytorch/vision/master/references/detection/coco_utils.py
!pip install -q -U 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
[K |████████████████████████████████| 61kB 4.8MB/s [K |████████████████████████████████| 36.7MB 77kB/s [K |████████████████████████████████| 102kB 14.6MB/s [?25h Building wheel for contextvars (setup.py) ... [?25l[?25hdone Building wheel for pycocotools (setup.py) ... [?25l[?25hdone
from torch_snippets import *
import torchvision
from torchvision.models.detection.faster_rcnn import FastRCNNPredictor
from torchvision.models.detection.mask_rcnn import MaskRCNNPredictor
from engine import train_one_epoch, evaluate
import utils
import transforms as T
device = 'cuda' if torch.cuda.is_available() else 'cpu'
all_images = Glob('images/training')
all_annots = Glob('annotations_instance/training')
2020-11-07 13:58:04.425 | INFO | torch_snippets.loader:Glob:181 - 20210 files found at images/training 2020-11-07 13:58:04.469 | INFO | torch_snippets.loader:Glob:181 - 20210 files found at annotations_instance/training
classes_list = [4,6]
annots = []
for ann in Tqdm(all_annots):
_ann = read(ann, 1).transpose(2,0,1)
r,g,b = _ann
if np.array([num in np.unique(r) for num in classes_list]).sum()==0: continue
annots.append(ann)
from sklearn.model_selection import train_test_split
_annots = stems(annots)
trn_items, val_items = train_test_split(_annots, random_state=2)
100%|██████████| 20210/20210 [03:10<00:00, 106.29it/s]
def get_transform(train):
transforms = []
transforms.append(T.PILToTensor())
if train:
transforms.append(T.RandomHorizontalFlip(0.5))
return T.Compose(transforms)
def get_mask(path):
an = read(path, 1).transpose(2,0,1)
r,g,b = an
cls = list(set(np.unique(r)).intersection({4,6}))
print(cls)
masks = []
labels = []
for _cls in cls:
nzs = np.nonzero(r==_cls)
instances = np.unique(g[nzs])
for ix,_id in enumerate(instances):
masks.append(g==_id)
labels.append(classes_list.index(_cls)+1)
return np.array(masks), np.array(labels)
_id = trn_items[10]
img_path = f'images/training/{_id}.jpg'
get_mask(img_path)
[4, 6]
(array([[[False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], ..., [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False]], [[False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], ..., [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False]], [[False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], ..., [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False]], ..., [[False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], ..., [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False]], [[False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], ..., [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False]], [[False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], ..., [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False]]]), array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]))
class MasksDataset(Dataset):
def __init__(self, items, transforms, N):
self.items = items
self.transforms = transforms
self.N = N
def get_mask(self,path):
an = read(path, 1).transpose(2,0,1)
r,g,b = an
cls = list(set(np.unique(r)).intersection({4,6}))
masks = []
labels = []
for _cls in cls:
nzs = np.nonzero(r==_cls)
instances = np.unique(g[nzs])
for ix,_id in enumerate(instances):
masks.append(g==_id)
labels.append(classes_list.index(_cls)+1)
return np.array(masks), np.array(labels)
def __getitem__(self, ix):
_id = self.items[ix]
img_path = f'images/training/{_id}.jpg'
mask_path = f'annotations_instance/training/{_id}.png'
masks, labels = self.get_mask(mask_path)
#print(labels)
obj_ids = np.arange(1, len(masks)+1)
img = Image.open(img_path).convert("RGB")
num_objs = len(obj_ids)
boxes = []
for i in range(num_objs):
obj_pixels = np.where(masks[i])
xmin = np.min(obj_pixels[1])
xmax = np.max(obj_pixels[1])
ymin = np.min(obj_pixels[0])
ymax = np.max(obj_pixels[0])
if (((xmax-xmin)<=10) | (ymax-ymin)<=10):
xmax = xmin+10
ymax = ymin+10
boxes.append([xmin, ymin, xmax, ymax])
boxes = torch.as_tensor(boxes, dtype=torch.float32)
labels = torch.as_tensor(labels, dtype=torch.int64)
masks = torch.as_tensor(masks, dtype=torch.uint8)
area = (boxes[:, 3] - boxes[:, 1]) * (boxes[:, 2] - boxes[:, 0])
iscrowd = torch.zeros((num_objs,), dtype=torch.int64)
image_id = torch.tensor([ix])
target = {}
target["boxes"] = boxes
target["labels"] = labels
target["masks"] = masks
target["image_id"] = image_id
target["area"] = area
target["iscrowd"] = iscrowd
if self.transforms is not None:
img, target = self.transforms(img, target)
if (img.dtype == torch.float32) or (img.dtype == torch.uint8):
img = img/255.
return img, target
def __len__(self):
return self.N
def choose(self):
return self[randint(len(self))]
x = MasksDataset(trn_items, get_transform(train=True), N=100)
im,targ = x[1]
inspect(im,targ)
subplots([im, *targ['masks']], sz=10)
2020-11-07 14:01:15.692 | INFO | torch_snippets.loader:subplots:375 - plotting 8 images in a grid of 2x5 @ (5, 5)
================================================================== Tensor Shape: torch.Size([3, 512, 683]) Min: 0.000 Max: 1.000 Mean: 0.504 dtype: torch.float32 ================================================================== Dict Of 6 items ================================================================== BOXES: Tensor Shape: torch.Size([7, 4]) Min: 1.000 Max: 475.000 Mean: 278.214 dtype: torch.float32 ================================================================== ================================================================== LABELS: Tensor Shape: torch.Size([7]) Min: 1.000 Max: 1.000 Mean: 1.000 dtype: torch.int64 ================================================================== ================================================================== MASKS: Tensor Shape: torch.Size([7, 512, 683]) Min: 0.000 Max: 1.000 Mean: 0.009 dtype: torch.uint8 ================================================================== ================================================================== IMAGE_ID: Tensor Shape: torch.Size([1]) Min: 1.000 Max: 1.000 Mean: 1.000 dtype: torch.int64 ================================================================== ================================================================== AREA: Tensor Shape: torch.Size([7]) Min: 432.000 Max: 10366.000 Mean: 6474.571 dtype: torch.float32 ================================================================== ... ... 1 more items
def get_model_instance_segmentation(num_classes):
# load an instance segmentation model pre-trained pre-trained on COCO
model = torchvision.models.detection.maskrcnn_resnet50_fpn(pretrained=True)
# get number of input features for the classifier
in_features = model.roi_heads.box_predictor.cls_score.in_features
# replace the pre-trained head with a new one
model.roi_heads.box_predictor = FastRCNNPredictor(in_features, num_classes)
# now get the number of input features for the mask classifier
in_features_mask = model.roi_heads.mask_predictor.conv5_mask.in_channels
hidden_layer = 256
# and replace the mask predictor with a new one
model.roi_heads.mask_predictor = MaskRCNNPredictor(in_features_mask,
hidden_layer,num_classes)
return model
model = get_model_instance_segmentation(3).to(device)
Downloading: "https://download.pytorch.org/models/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth" to /root/.cache/torch/hub/checkpoints/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth
HBox(children=(FloatProgress(value=0.0, max=178090079.0), HTML(value='')))
dataset = MasksDataset(trn_items, get_transform(train=True), N=3000)
dataset_test = MasksDataset(val_items, get_transform(train=False), N=800)
# define training and validation data loaders
data_loader = torch.utils.data.DataLoader(
dataset, batch_size=2, shuffle=True, num_workers=0,
collate_fn=utils.collate_fn)
data_loader_test = torch.utils.data.DataLoader(
dataset_test, batch_size=1, shuffle=False, num_workers=0,
collate_fn=utils.collate_fn)
num_classes = 3
model = get_model_instance_segmentation(num_classes).to(device)
params = [p for p in model.parameters() if p.requires_grad]
optimizer = torch.optim.SGD(params, lr=0.005,
momentum=0.9, weight_decay=0.0005)
# and a learning rate scheduler
lr_scheduler = torch.optim.lr_scheduler.StepLR(optimizer,
step_size=3,
gamma=0.1)
model.eval()
pred = model(dataset[0][0][None].to(device))
inspect(pred[0])
================================================================== Dict Of 4 items ================================================================== BOXES: Tensor Shape: torch.Size([100, 4]) Min: 0.000 Max: 382.000 Mean: 177.219 dtype: torch.float32 ================================================================== ================================================================== LABELS: Tensor Shape: torch.Size([100]) Min: 1.000 Max: 2.000 Mean: 1.120 dtype: torch.int64 ================================================================== ================================================================== SCORES: Tensor Shape: torch.Size([100]) Min: 0.355 Max: 0.712 Mean: 0.409 dtype: torch.float32 ================================================================== ================================================================== MASKS: Tensor Shape: torch.Size([100, 1, 340, 382]) Min: 0.000 Max: 1.000 Mean: 0.054 dtype: torch.float32 ==================================================================
num_epochs = 5
trn_history = []
for epoch in range(num_epochs):
# train for one epoch, printing every 10 iterations
res = train_one_epoch(model, optimizer, data_loader, device, epoch, print_freq=10)
trn_history.append(res)
# update the learning rate
lr_scheduler.step()
# evaluate on the test dataset
res = evaluate(model, data_loader_test, device=device)
/usr/local/lib/python3.6/dist-packages/torch/nn/functional.py:3103: UserWarning: The default behavior for interpolate/upsample with float scale_factor changed in 1.6.0 to align with other frameworks/libraries, and now uses scale_factor directly, instead of relying on the computed output size. If you wish to restore the old behavior, please set recompute_scale_factor=True. See the documentation of nn.Upsample for details. warnings.warn("The default behavior for interpolate/upsample with float scale_factor changed "
Epoch: [0] [ 0/1500] eta: 0:16:16 lr: 0.000010 loss: 2.2653 (2.2653) loss_classifier: 0.9195 (0.9195) loss_box_reg: 0.1731 (0.1731) loss_mask: 1.1160 (1.1160) loss_objectness: 0.0399 (0.0399) loss_rpn_box_reg: 0.0168 (0.0168) time: 0.6513 data: 0.0119 max mem: 2875 Epoch: [0] [ 10/1500] eta: 0:16:16 lr: 0.000060 loss: 2.5998 (2.6990) loss_classifier: 0.9031 (0.8928) loss_box_reg: 0.1800 (0.2189) loss_mask: 1.3047 (1.4537) loss_objectness: 0.0399 (0.0971) loss_rpn_box_reg: 0.0132 (0.0365) time: 0.6557 data: 0.0690 max mem: 4126 Epoch: [0] [ 20/1500] eta: 0:16:07 lr: 0.000110 loss: 2.3038 (2.2296) loss_classifier: 0.8112 (0.7332) loss_box_reg: 0.1800 (0.2395) loss_mask: 1.0804 (1.1661) loss_objectness: 0.0265 (0.0665) loss_rpn_box_reg: 0.0102 (0.0243) time: 0.6540 data: 0.0871 max mem: 4126 Epoch: [0] [ 30/1500] eta: 0:15:57 lr: 0.000160 loss: 1.4503 (1.9446) loss_classifier: 0.3333 (0.5951) loss_box_reg: 0.1977 (0.2451) loss_mask: 0.6966 (1.0212) loss_objectness: 0.0301 (0.0623) loss_rpn_box_reg: 0.0087 (0.0209) time: 0.6486 data: 0.0963 max mem: 4126 Epoch: [0] [ 40/1500] eta: 0:15:56 lr: 0.000210 loss: 1.1571 (1.7586) loss_classifier: 0.2501 (0.5046) loss_box_reg: 0.2067 (0.2340) loss_mask: 0.6182 (0.9355) loss_objectness: 0.0446 (0.0620) loss_rpn_box_reg: 0.0087 (0.0226) time: 0.6562 data: 0.0884 max mem: 4131 Epoch: [0] [ 50/1500] eta: 0:15:48 lr: 0.000260 loss: 1.1051 (1.6331) loss_classifier: 0.2395 (0.4632) loss_box_reg: 0.2037 (0.2460) loss_mask: 0.5177 (0.8413) loss_objectness: 0.0446 (0.0616) loss_rpn_box_reg: 0.0081 (0.0209) time: 0.6583 data: 0.0791 max mem: 4131 Epoch: [0] [ 60/1500] eta: 0:15:41 lr: 0.000310 loss: 1.1051 (1.5487) loss_classifier: 0.1952 (0.4314) loss_box_reg: 0.2243 (0.2512) loss_mask: 0.4432 (0.7832) loss_objectness: 0.0462 (0.0616) loss_rpn_box_reg: 0.0095 (0.0213) time: 0.6523 data: 0.0721 max mem: 4131 Epoch: [0] [ 70/1500] eta: 0:15:54 lr: 0.000360 loss: 1.0199 (1.4867) loss_classifier: 0.2294 (0.4076) loss_box_reg: 0.2438 (0.2603) loss_mask: 0.4432 (0.7373) loss_objectness: 0.0462 (0.0599) loss_rpn_box_reg: 0.0107 (0.0216) time: 0.7012 data: 0.0947 max mem: 4131 Epoch: [0] [ 80/1500] eta: 0:15:49 lr: 0.000410 loss: 0.9602 (1.4117) loss_classifier: 0.1960 (0.3806) loss_box_reg: 0.2150 (0.2553) loss_mask: 0.4014 (0.6991) loss_objectness: 0.0297 (0.0560) loss_rpn_box_reg: 0.0095 (0.0207) time: 0.7145 data: 0.1064 max mem: 4131 Epoch: [0] [ 90/1500] eta: 0:15:53 lr: 0.000460 loss: 0.9084 (1.3598) loss_classifier: 0.1752 (0.3622) loss_box_reg: 0.1835 (0.2572) loss_mask: 0.3799 (0.6670) loss_objectness: 0.0330 (0.0536) loss_rpn_box_reg: 0.0070 (0.0199) time: 0.7080 data: 0.1020 max mem: 4473 Epoch: [0] [ 100/1500] eta: 0:15:48 lr: 0.000509 loss: 0.8353 (1.2975) loss_classifier: 0.1699 (0.3416) loss_box_reg: 0.2368 (0.2553) loss_mask: 0.3307 (0.6320) loss_objectness: 0.0175 (0.0502) loss_rpn_box_reg: 0.0057 (0.0184) time: 0.7126 data: 0.0970 max mem: 4473 Epoch: [0] [ 110/1500] eta: 0:15:48 lr: 0.000559 loss: 0.8168 (1.2722) loss_classifier: 0.1372 (0.3259) loss_box_reg: 0.2181 (0.2537) loss_mask: 0.3334 (0.6144) loss_objectness: 0.0160 (0.0586) loss_rpn_box_reg: 0.0064 (0.0196) time: 0.7096 data: 0.0945 max mem: 4473 Epoch: [0] [ 120/1500] eta: 0:15:46 lr: 0.000609 loss: 0.9003 (1.2430) loss_classifier: 0.1705 (0.3144) loss_box_reg: 0.2616 (0.2566) loss_mask: 0.3729 (0.5952) loss_objectness: 0.0218 (0.0569) loss_rpn_box_reg: 0.0102 (0.0199) time: 0.7260 data: 0.1024 max mem: 4473 Epoch: [0] [ 130/1500] eta: 0:15:40 lr: 0.000659 loss: 0.8918 (1.2197) loss_classifier: 0.1694 (0.3053) loss_box_reg: 0.2331 (0.2602) loss_mask: 0.3524 (0.5803) loss_objectness: 0.0245 (0.0546) loss_rpn_box_reg: 0.0084 (0.0194) time: 0.7095 data: 0.0853 max mem: 4473 Epoch: [0] [ 140/1500] eta: 0:15:34 lr: 0.000709 loss: 0.8490 (1.1986) loss_classifier: 0.1652 (0.2953) loss_box_reg: 0.2302 (0.2582) loss_mask: 0.3517 (0.5654) loss_objectness: 0.0255 (0.0593) loss_rpn_box_reg: 0.0074 (0.0204) time: 0.6977 data: 0.0726 max mem: 4473 Epoch: [0] [ 150/1500] eta: 0:15:34 lr: 0.000759 loss: 0.7261 (1.1702) loss_classifier: 0.1417 (0.2851) loss_box_reg: 0.1823 (0.2537) loss_mask: 0.3778 (0.5545) loss_objectness: 0.0190 (0.0573) loss_rpn_box_reg: 0.0065 (0.0196) time: 0.7280 data: 0.0850 max mem: 4473 Epoch: [0] [ 160/1500] eta: 0:15:30 lr: 0.000809 loss: 0.7103 (1.1436) loss_classifier: 0.1268 (0.2765) loss_box_reg: 0.1819 (0.2518) loss_mask: 0.3649 (0.5409) loss_objectness: 0.0218 (0.0554) loss_rpn_box_reg: 0.0050 (0.0189) time: 0.7420 data: 0.0975 max mem: 4473 Epoch: [0] [ 170/1500] eta: 0:15:21 lr: 0.000859 loss: 0.6961 (1.1174) loss_classifier: 0.1095 (0.2663) loss_box_reg: 0.1657 (0.2459) loss_mask: 0.3624 (0.5320) loss_objectness: 0.0171 (0.0548) loss_rpn_box_reg: 0.0060 (0.0183) time: 0.7016 data: 0.0866 max mem: 4473 Epoch: [0] [ 180/1500] eta: 0:15:12 lr: 0.000909 loss: 0.7290 (1.1038) loss_classifier: 0.1072 (0.2593) loss_box_reg: 0.1932 (0.2462) loss_mask: 0.3745 (0.5246) loss_objectness: 0.0171 (0.0549) loss_rpn_box_reg: 0.0060 (0.0187) time: 0.6673 data: 0.0650 max mem: 4473 Epoch: [0] [ 190/1500] eta: 0:15:09 lr: 0.000959 loss: 0.8180 (1.0891) loss_classifier: 0.1337 (0.2526) loss_box_reg: 0.2335 (0.2461) loss_mask: 0.3636 (0.5169) loss_objectness: 0.0374 (0.0542) loss_rpn_box_reg: 0.0096 (0.0194) time: 0.7028 data: 0.0863 max mem: 4473 Epoch: [0] [ 200/1500] eta: 0:15:06 lr: 0.001009 loss: 0.7390 (1.0742) loss_classifier: 0.1156 (0.2470) loss_box_reg: 0.2151 (0.2464) loss_mask: 0.3466 (0.5074) loss_objectness: 0.0328 (0.0538) loss_rpn_box_reg: 0.0175 (0.0196) time: 0.7542 data: 0.1204 max mem: 4473 Epoch: [0] [ 210/1500] eta: 0:15:01 lr: 0.001059 loss: 0.7492 (1.0611) loss_classifier: 0.1222 (0.2409) loss_box_reg: 0.1683 (0.2427) loss_mask: 0.3621 (0.5034) loss_objectness: 0.0313 (0.0540) loss_rpn_box_reg: 0.0159 (0.0200) time: 0.7440 data: 0.1013 max mem: 4473 Epoch: [0] [ 220/1500] eta: 0:14:54 lr: 0.001109 loss: 0.7671 (1.0502) loss_classifier: 0.1222 (0.2363) loss_box_reg: 0.1740 (0.2426) loss_mask: 0.3884 (0.4974) loss_objectness: 0.0316 (0.0537) loss_rpn_box_reg: 0.0174 (0.0202) time: 0.7140 data: 0.0800 max mem: 4473 Epoch: [0] [ 230/1500] eta: 0:14:52 lr: 0.001159 loss: 0.8191 (1.0468) loss_classifier: 0.1327 (0.2318) loss_box_reg: 0.1858 (0.2409) loss_mask: 0.4003 (0.4993) loss_objectness: 0.0348 (0.0539) loss_rpn_box_reg: 0.0130 (0.0209) time: 0.7488 data: 0.1029 max mem: 4473 Epoch: [0] [ 240/1500] eta: 0:14:47 lr: 0.001209 loss: 0.7891 (1.0363) loss_classifier: 0.1025 (0.2271) loss_box_reg: 0.1499 (0.2388) loss_mask: 0.4373 (0.4967) loss_objectness: 0.0292 (0.0530) loss_rpn_box_reg: 0.0048 (0.0207) time: 0.7614 data: 0.1126 max mem: 4473 Epoch: [0] [ 250/1500] eta: 0:14:39 lr: 0.001259 loss: 0.7479 (1.0273) loss_classifier: 0.1064 (0.2230) loss_box_reg: 0.1431 (0.2354) loss_mask: 0.4046 (0.4941) loss_objectness: 0.0322 (0.0537) loss_rpn_box_reg: 0.0047 (0.0212) time: 0.7104 data: 0.0997 max mem: 4473 Epoch: [0] [ 260/1500] eta: 0:14:34 lr: 0.001309 loss: 0.7479 (1.0168) loss_classifier: 0.1056 (0.2184) loss_box_reg: 0.1125 (0.2321) loss_mask: 0.4035 (0.4913) loss_objectness: 0.0350 (0.0538) loss_rpn_box_reg: 0.0143 (0.0211) time: 0.7231 data: 0.1069 max mem: 4473 Epoch: [0] [ 270/1500] eta: 0:14:28 lr: 0.001359 loss: 0.6159 (1.0020) loss_classifier: 0.0764 (0.2136) loss_box_reg: 0.1067 (0.2286) loss_mask: 0.3547 (0.4855) loss_objectness: 0.0277 (0.0531) loss_rpn_box_reg: 0.0061 (0.0212) time: 0.7314 data: 0.1119 max mem: 4473 Epoch: [0] [ 280/1500] eta: 0:14:23 lr: 0.001409 loss: 0.5947 (0.9896) loss_classifier: 0.0691 (0.2095) loss_box_reg: 0.1111 (0.2257) loss_mask: 0.3179 (0.4813) loss_objectness: 0.0236 (0.0521) loss_rpn_box_reg: 0.0035 (0.0210) time: 0.7352 data: 0.1157 max mem: 4473 Epoch: [0] [ 290/1500] eta: 0:14:16 lr: 0.001459 loss: 0.5959 (0.9811) loss_classifier: 0.0773 (0.2061) loss_box_reg: 0.1111 (0.2243) loss_mask: 0.3370 (0.4790) loss_objectness: 0.0187 (0.0508) loss_rpn_box_reg: 0.0035 (0.0209) time: 0.7322 data: 0.1074 max mem: 4473 Epoch: [0] [ 300/1500] eta: 0:14:08 lr: 0.001508 loss: 0.6483 (0.9711) loss_classifier: 0.0810 (0.2030) loss_box_reg: 0.1158 (0.2222) loss_mask: 0.3645 (0.4754) loss_objectness: 0.0108 (0.0498) loss_rpn_box_reg: 0.0059 (0.0207) time: 0.6926 data: 0.0852 max mem: 4473 Epoch: [0] [ 310/1500] eta: 0:14:00 lr: 0.001558 loss: 0.6385 (0.9584) loss_classifier: 0.0913 (0.1994) loss_box_reg: 0.1441 (0.2207) loss_mask: 0.3306 (0.4691) loss_objectness: 0.0108 (0.0487) loss_rpn_box_reg: 0.0075 (0.0205) time: 0.6939 data: 0.0790 max mem: 4473 Epoch: [0] [ 320/1500] eta: 0:13:52 lr: 0.001608 loss: 0.6305 (0.9511) loss_classifier: 0.1057 (0.1972) loss_box_reg: 0.1517 (0.2197) loss_mask: 0.2950 (0.4647) loss_objectness: 0.0162 (0.0489) loss_rpn_box_reg: 0.0075 (0.0207) time: 0.6922 data: 0.0739 max mem: 4473 Epoch: [0] [ 330/1500] eta: 0:13:47 lr: 0.001658 loss: 0.5848 (0.9404) loss_classifier: 0.0951 (0.1941) loss_box_reg: 0.1205 (0.2167) loss_mask: 0.3052 (0.4610) loss_objectness: 0.0169 (0.0482) loss_rpn_box_reg: 0.0053 (0.0204) time: 0.7154 data: 0.0885 max mem: 4473 Epoch: [0] [ 340/1500] eta: 0:13:40 lr: 0.001708 loss: 0.5848 (0.9316) loss_classifier: 0.0877 (0.1914) loss_box_reg: 0.1083 (0.2147) loss_mask: 0.3052 (0.4577) loss_objectness: 0.0153 (0.0474) loss_rpn_box_reg: 0.0052 (0.0204) time: 0.7395 data: 0.0989 max mem: 4703 Epoch: [0] [ 350/1500] eta: 0:13:34 lr: 0.001758 loss: 0.6230 (0.9242) loss_classifier: 0.0926 (0.1895) loss_box_reg: 0.1467 (0.2135) loss_mask: 0.3320 (0.4542) loss_objectness: 0.0185 (0.0469) loss_rpn_box_reg: 0.0075 (0.0202) time: 0.7328 data: 0.0954 max mem: 4703 Epoch: [0] [ 360/1500] eta: 0:13:26 lr: 0.001808 loss: 0.6169 (0.9164) loss_classifier: 0.1083 (0.1870) loss_box_reg: 0.1563 (0.2118) loss_mask: 0.3377 (0.4511) loss_objectness: 0.0158 (0.0464) loss_rpn_box_reg: 0.0075 (0.0202) time: 0.6957 data: 0.0797 max mem: 4703 Epoch: [0] [ 370/1500] eta: 0:13:19 lr: 0.001858 loss: 0.6363 (0.9121) loss_classifier: 0.1041 (0.1852) loss_box_reg: 0.1368 (0.2114) loss_mask: 0.3377 (0.4484) loss_objectness: 0.0142 (0.0465) loss_rpn_box_reg: 0.0090 (0.0205) time: 0.6937 data: 0.0847 max mem: 4703 Epoch: [0] [ 380/1500] eta: 0:13:13 lr: 0.001908 loss: 0.5914 (0.9040) loss_classifier: 0.0954 (0.1827) loss_box_reg: 0.1205 (0.2097) loss_mask: 0.3184 (0.4451) loss_objectness: 0.0196 (0.0460) loss_rpn_box_reg: 0.0134 (0.0204) time: 0.7308 data: 0.1070 max mem: 4703 Epoch: [0] [ 390/1500] eta: 0:13:06 lr: 0.001958 loss: 0.6231 (0.9003) loss_classifier: 0.0954 (0.1813) loss_box_reg: 0.1349 (0.2091) loss_mask: 0.3184 (0.4432) loss_objectness: 0.0218 (0.0459) loss_rpn_box_reg: 0.0158 (0.0208) time: 0.7182 data: 0.0857 max mem: 4703 Epoch: [0] [ 400/1500] eta: 0:12:58 lr: 0.002008 loss: 0.6725 (0.8938) loss_classifier: 0.0890 (0.1798) loss_box_reg: 0.1103 (0.2071) loss_mask: 0.3674 (0.4409) loss_objectness: 0.0271 (0.0455) loss_rpn_box_reg: 0.0096 (0.0206) time: 0.6954 data: 0.0732 max mem: 4703 Epoch: [0] [ 410/1500] eta: 0:12:54 lr: 0.002058 loss: 0.7020 (0.8899) loss_classifier: 0.1168 (0.1782) loss_box_reg: 0.1103 (0.2064) loss_mask: 0.3925 (0.4397) loss_objectness: 0.0271 (0.0451) loss_rpn_box_reg: 0.0092 (0.0204) time: 0.7515 data: 0.1277 max mem: 4703 Epoch: [0] [ 420/1500] eta: 0:12:45 lr: 0.002108 loss: 0.6772 (0.8824) loss_classifier: 0.1004 (0.1763) loss_box_reg: 0.1310 (0.2045) loss_mask: 0.3433 (0.4370) loss_objectness: 0.0143 (0.0444) loss_rpn_box_reg: 0.0092 (0.0202) time: 0.7394 data: 0.1303 max mem: 4703 Epoch: [0] [ 430/1500] eta: 0:12:40 lr: 0.002158 loss: 0.5874 (0.8794) loss_classifier: 0.0965 (0.1751) loss_box_reg: 0.1044 (0.2050) loss_mask: 0.3062 (0.4345) loss_objectness: 0.0153 (0.0443) loss_rpn_box_reg: 0.0065 (0.0206) time: 0.7191 data: 0.1073 max mem: 4806 Epoch: [0] [ 440/1500] eta: 0:12:35 lr: 0.002208 loss: 0.6087 (0.8792) loss_classifier: 0.0958 (0.1748) loss_box_reg: 0.1073 (0.2049) loss_mask: 0.3330 (0.4342) loss_objectness: 0.0239 (0.0445) loss_rpn_box_reg: 0.0085 (0.0207) time: 0.7793 data: 0.1500 max mem: 4806 Epoch: [0] [ 450/1500] eta: 0:12:28 lr: 0.002258 loss: 0.7486 (0.8779) loss_classifier: 0.1144 (0.1737) loss_box_reg: 0.1403 (0.2045) loss_mask: 0.4252 (0.4344) loss_objectness: 0.0332 (0.0444) loss_rpn_box_reg: 0.0177 (0.0209) time: 0.7454 data: 0.1456 max mem: 4806 Epoch: [0] [ 460/1500] eta: 0:12:21 lr: 0.002308 loss: 0.7012 (0.8733) loss_classifier: 0.1252 (0.1726) loss_box_reg: 0.1475 (0.2036) loss_mask: 0.3176 (0.4322) loss_objectness: 0.0332 (0.0442) loss_rpn_box_reg: 0.0129 (0.0207) time: 0.7159 data: 0.0905 max mem: 4806 Epoch: [0] [ 470/1500] eta: 0:12:13 lr: 0.002358 loss: 0.5469 (0.8662) loss_classifier: 0.1027 (0.1710) loss_box_reg: 0.1104 (0.2022) loss_mask: 0.2885 (0.4287) loss_objectness: 0.0182 (0.0438) loss_rpn_box_reg: 0.0065 (0.0205) time: 0.7151 data: 0.0813 max mem: 4806 Epoch: [0] [ 480/1500] eta: 0:12:06 lr: 0.002408 loss: 0.5200 (0.8596) loss_classifier: 0.0771 (0.1689) loss_box_reg: 0.1013 (0.2003) loss_mask: 0.2578 (0.4270) loss_objectness: 0.0109 (0.0431) loss_rpn_box_reg: 0.0054 (0.0202) time: 0.7113 data: 0.0901 max mem: 4806 Epoch: [0] [ 490/1500] eta: 0:11:58 lr: 0.002458 loss: 0.5536 (0.8537) loss_classifier: 0.0668 (0.1670) loss_box_reg: 0.0859 (0.1984) loss_mask: 0.3380 (0.4258) loss_objectness: 0.0091 (0.0425) loss_rpn_box_reg: 0.0054 (0.0201) time: 0.6950 data: 0.0746 max mem: 4806 Epoch: [0] [ 500/1500] eta: 0:11:52 lr: 0.002507 loss: 0.5943 (0.8511) loss_classifier: 0.0799 (0.1662) loss_box_reg: 0.0932 (0.1982) loss_mask: 0.3623 (0.4242) loss_objectness: 0.0091 (0.0422) loss_rpn_box_reg: 0.0069 (0.0203) time: 0.7020 data: 0.0831 max mem: 4806 Epoch: [0] [ 510/1500] eta: 0:11:46 lr: 0.002557 loss: 0.6542 (0.8473) loss_classifier: 0.0898 (0.1652) loss_box_reg: 0.1179 (0.1968) loss_mask: 0.3623 (0.4231) loss_objectness: 0.0172 (0.0420) loss_rpn_box_reg: 0.0069 (0.0202) time: 0.7532 data: 0.0920 max mem: 4806 Epoch: [0] [ 520/1500] eta: 0:11:38 lr: 0.002607 loss: 0.6542 (0.8441) loss_classifier: 0.0839 (0.1642) loss_box_reg: 0.1179 (0.1958) loss_mask: 0.3679 (0.4223) loss_objectness: 0.0201 (0.0417) loss_rpn_box_reg: 0.0051 (0.0201) time: 0.7386 data: 0.0956 max mem: 4806 Epoch: [0] [ 530/1500] eta: 0:11:32 lr: 0.002657 loss: 0.5638 (0.8384) loss_classifier: 0.0817 (0.1628) loss_box_reg: 0.1103 (0.1942) loss_mask: 0.2719 (0.4202) loss_objectness: 0.0169 (0.0413) loss_rpn_box_reg: 0.0048 (0.0199) time: 0.7267 data: 0.0967 max mem: 4806 Epoch: [0] [ 540/1500] eta: 0:11:24 lr: 0.002707 loss: 0.5977 (0.8354) loss_classifier: 0.0756 (0.1616) loss_box_reg: 0.1096 (0.1933) loss_mask: 0.2952 (0.4196) loss_objectness: 0.0160 (0.0408) loss_rpn_box_reg: 0.0077 (0.0201) time: 0.7055 data: 0.0812 max mem: 4806 Epoch: [0] [ 550/1500] eta: 0:11:16 lr: 0.002757 loss: 0.6107 (0.8320) loss_classifier: 0.1074 (0.1611) loss_box_reg: 0.1195 (0.1927) loss_mask: 0.2952 (0.4176) loss_objectness: 0.0184 (0.0406) loss_rpn_box_reg: 0.0115 (0.0200) time: 0.6743 data: 0.0653 max mem: 4806 Epoch: [0] [ 560/1500] eta: 0:11:09 lr: 0.002807 loss: 0.5871 (0.8276) loss_classifier: 0.0967 (0.1599) loss_box_reg: 0.1057 (0.1914) loss_mask: 0.2833 (0.4161) loss_objectness: 0.0197 (0.0403) loss_rpn_box_reg: 0.0048 (0.0198) time: 0.6891 data: 0.0830 max mem: 4806 Epoch: [0] [ 570/1500] eta: 0:11:02 lr: 0.002857 loss: 0.5871 (0.8251) loss_classifier: 0.0874 (0.1590) loss_box_reg: 0.0940 (0.1897) loss_mask: 0.3628 (0.4159) loss_objectness: 0.0234 (0.0407) loss_rpn_box_reg: 0.0049 (0.0198) time: 0.7019 data: 0.1036 max mem: 4806 Epoch: [0] [ 580/1500] eta: 0:10:56 lr: 0.002907 loss: 0.6084 (0.8228) loss_classifier: 0.1058 (0.1586) loss_box_reg: 0.0926 (0.1893) loss_mask: 0.3594 (0.4143) loss_objectness: 0.0275 (0.0406) loss_rpn_box_reg: 0.0079 (0.0201) time: 0.7519 data: 0.1214 max mem: 4806 Epoch: [0] [ 590/1500] eta: 0:10:48 lr: 0.002957 loss: 0.6084 (0.8203) loss_classifier: 0.1080 (0.1582) loss_box_reg: 0.1008 (0.1883) loss_mask: 0.3126 (0.4135) loss_objectness: 0.0218 (0.0405) loss_rpn_box_reg: 0.0077 (0.0199) time: 0.7229 data: 0.1008 max mem: 4806 Epoch: [0] [ 600/1500] eta: 0:10:41 lr: 0.003007 loss: 0.6901 (0.8179) loss_classifier: 0.1055 (0.1571) loss_box_reg: 0.1014 (0.1873) loss_mask: 0.3654 (0.4131) loss_objectness: 0.0256 (0.0403) loss_rpn_box_reg: 0.0072 (0.0200) time: 0.6918 data: 0.0726 max mem: 4806 Epoch: [0] [ 610/1500] eta: 0:10:34 lr: 0.003057 loss: 0.7033 (0.8172) loss_classifier: 0.1020 (0.1566) loss_box_reg: 0.1127 (0.1865) loss_mask: 0.4086 (0.4139) loss_objectness: 0.0256 (0.0402) loss_rpn_box_reg: 0.0130 (0.0200) time: 0.7116 data: 0.0914 max mem: 4806 Epoch: [0] [ 620/1500] eta: 0:10:26 lr: 0.003107 loss: 0.7033 (0.8152) loss_classifier: 0.0999 (0.1558) loss_box_reg: 0.1127 (0.1859) loss_mask: 0.3753 (0.4128) loss_objectness: 0.0216 (0.0404) loss_rpn_box_reg: 0.0114 (0.0202) time: 0.6785 data: 0.0733 max mem: 4806 Epoch: [0] [ 630/1500] eta: 0:10:18 lr: 0.003157 loss: 0.5473 (0.8121) loss_classifier: 0.0851 (0.1550) loss_box_reg: 0.1226 (0.1851) loss_mask: 0.2979 (0.4116) loss_objectness: 0.0187 (0.0403) loss_rpn_box_reg: 0.0060 (0.0201) time: 0.6722 data: 0.0796 max mem: 4806 Epoch: [0] [ 640/1500] eta: 0:10:11 lr: 0.003207 loss: 0.6247 (0.8114) loss_classifier: 0.0931 (0.1543) loss_box_reg: 0.1184 (0.1839) loss_mask: 0.3690 (0.4128) loss_objectness: 0.0187 (0.0403) loss_rpn_box_reg: 0.0076 (0.0201) time: 0.7144 data: 0.0937 max mem: 4806 Epoch: [0] [ 650/1500] eta: 0:10:04 lr: 0.003257 loss: 0.6247 (0.8069) loss_classifier: 0.0834 (0.1533) loss_box_reg: 0.0692 (0.1826) loss_mask: 0.3537 (0.4111) loss_objectness: 0.0158 (0.0400) loss_rpn_box_reg: 0.0073 (0.0199) time: 0.7148 data: 0.0811 max mem: 4806 Epoch: [0] [ 660/1500] eta: 0:09:57 lr: 0.003307 loss: 0.5024 (0.8046) loss_classifier: 0.0776 (0.1528) loss_box_reg: 0.0821 (0.1822) loss_mask: 0.3059 (0.4099) loss_objectness: 0.0181 (0.0398) loss_rpn_box_reg: 0.0064 (0.0199) time: 0.6999 data: 0.1002 max mem: 4806 Epoch: [0] [ 670/1500] eta: 0:09:50 lr: 0.003357 loss: 0.5855 (0.8023) loss_classifier: 0.0863 (0.1520) loss_box_reg: 0.0896 (0.1815) loss_mask: 0.3349 (0.4096) loss_objectness: 0.0232 (0.0395) loss_rpn_box_reg: 0.0074 (0.0197) time: 0.7053 data: 0.1036 max mem: 4806 Epoch: [0] [ 680/1500] eta: 0:09:43 lr: 0.003407 loss: 0.5613 (0.8002) loss_classifier: 0.0694 (0.1510) loss_box_reg: 0.0862 (0.1806) loss_mask: 0.3604 (0.4089) loss_objectness: 0.0234 (0.0399) loss_rpn_box_reg: 0.0091 (0.0198) time: 0.7109 data: 0.0901 max mem: 4806 Epoch: [0] [ 690/1500] eta: 0:09:36 lr: 0.003457 loss: 0.5815 (0.7975) loss_classifier: 0.0669 (0.1502) loss_box_reg: 0.0894 (0.1799) loss_mask: 0.3160 (0.4079) loss_objectness: 0.0210 (0.0398) loss_rpn_box_reg: 0.0078 (0.0198) time: 0.7273 data: 0.0990 max mem: 4806 Epoch: [0] [ 700/1500] eta: 0:09:29 lr: 0.003506 loss: 0.6611 (0.7970) loss_classifier: 0.0741 (0.1497) loss_box_reg: 0.0933 (0.1800) loss_mask: 0.3473 (0.4076) loss_objectness: 0.0194 (0.0398) loss_rpn_box_reg: 0.0078 (0.0198) time: 0.7168 data: 0.0947 max mem: 4806 Epoch: [0] [ 710/1500] eta: 0:09:21 lr: 0.003556 loss: 0.7792 (0.7966) loss_classifier: 0.1238 (0.1493) loss_box_reg: 0.1255 (0.1801) loss_mask: 0.3670 (0.4070) loss_objectness: 0.0205 (0.0402) loss_rpn_box_reg: 0.0187 (0.0200) time: 0.6990 data: 0.0869 max mem: 4806 Epoch: [0] [ 720/1500] eta: 0:09:14 lr: 0.003606 loss: 0.6545 (0.7942) loss_classifier: 0.0924 (0.1484) loss_box_reg: 0.1069 (0.1791) loss_mask: 0.3670 (0.4062) loss_objectness: 0.0313 (0.0405) loss_rpn_box_reg: 0.0178 (0.0200) time: 0.7066 data: 0.1016 max mem: 4806 Epoch: [0] [ 730/1500] eta: 0:09:08 lr: 0.003656 loss: 0.6706 (0.7943) loss_classifier: 0.0829 (0.1481) loss_box_reg: 0.1319 (0.1792) loss_mask: 0.3513 (0.4059) loss_objectness: 0.0377 (0.0409) loss_rpn_box_reg: 0.0144 (0.0201) time: 0.7623 data: 0.1238 max mem: 4806 Epoch: [0] [ 740/1500] eta: 0:09:01 lr: 0.003706 loss: 0.7649 (0.7935) loss_classifier: 0.0957 (0.1478) loss_box_reg: 0.1396 (0.1790) loss_mask: 0.3896 (0.4059) loss_objectness: 0.0281 (0.0407) loss_rpn_box_reg: 0.0125 (0.0201) time: 0.7487 data: 0.1026 max mem: 4806 Epoch: [0] [ 750/1500] eta: 0:08:54 lr: 0.003756 loss: 0.8276 (0.7938) loss_classifier: 0.1181 (0.1477) loss_box_reg: 0.1396 (0.1791) loss_mask: 0.3952 (0.4060) loss_objectness: 0.0223 (0.0408) loss_rpn_box_reg: 0.0122 (0.0201) time: 0.7046 data: 0.0808 max mem: 4806 Epoch: [0] [ 760/1500] eta: 0:08:47 lr: 0.003806 loss: 0.8276 (0.7939) loss_classifier: 0.1457 (0.1478) loss_box_reg: 0.1956 (0.1795) loss_mask: 0.3564 (0.4057) loss_objectness: 0.0250 (0.0407) loss_rpn_box_reg: 0.0159 (0.0202) time: 0.7246 data: 0.0871 max mem: 4806 Epoch: [0] [ 770/1500] eta: 0:08:39 lr: 0.003856 loss: 0.6741 (0.7913) loss_classifier: 0.1022 (0.1470) loss_box_reg: 0.1351 (0.1786) loss_mask: 0.3482 (0.4049) loss_objectness: 0.0203 (0.0405) loss_rpn_box_reg: 0.0133 (0.0204) time: 0.6879 data: 0.0641 max mem: 4806 Epoch: [0] [ 780/1500] eta: 0:08:32 lr: 0.003906 loss: 0.5840 (0.7902) loss_classifier: 0.0830 (0.1466) loss_box_reg: 0.0955 (0.1782) loss_mask: 0.3483 (0.4046) loss_objectness: 0.0214 (0.0403) loss_rpn_box_reg: 0.0124 (0.0204) time: 0.6662 data: 0.0699 max mem: 4806 Epoch: [0] [ 790/1500] eta: 0:08:24 lr: 0.003956 loss: 0.6329 (0.7882) loss_classifier: 0.0835 (0.1461) loss_box_reg: 0.0842 (0.1775) loss_mask: 0.3911 (0.4042) loss_objectness: 0.0214 (0.0401) loss_rpn_box_reg: 0.0099 (0.0203) time: 0.6680 data: 0.0803 max mem: 4806 Epoch: [0] [ 800/1500] eta: 0:08:16 lr: 0.004006 loss: 0.6329 (0.7876) loss_classifier: 0.0913 (0.1459) loss_box_reg: 0.0916 (0.1771) loss_mask: 0.3740 (0.4042) loss_objectness: 0.0233 (0.0401) loss_rpn_box_reg: 0.0106 (0.0204) time: 0.6492 data: 0.0760 max mem: 4806 Epoch: [0] [ 810/1500] eta: 0:08:09 lr: 0.004056 loss: 0.6804 (0.7863) loss_classifier: 0.1123 (0.1456) loss_box_reg: 0.1111 (0.1770) loss_mask: 0.3617 (0.4035) loss_objectness: 0.0183 (0.0399) loss_rpn_box_reg: 0.0139 (0.0203) time: 0.6805 data: 0.0866 max mem: 4806 Epoch: [0] [ 820/1500] eta: 0:08:02 lr: 0.004106 loss: 0.6903 (0.7866) loss_classifier: 0.1151 (0.1457) loss_box_reg: 0.1116 (0.1773) loss_mask: 0.3666 (0.4034) loss_objectness: 0.0253 (0.0399) loss_rpn_box_reg: 0.0088 (0.0204) time: 0.7145 data: 0.1051 max mem: 4806 Epoch: [0] [ 830/1500] eta: 0:07:55 lr: 0.004156 loss: 0.5958 (0.7836) loss_classifier: 0.0843 (0.1449) loss_box_reg: 0.1059 (0.1765) loss_mask: 0.3537 (0.4023) loss_objectness: 0.0229 (0.0397) loss_rpn_box_reg: 0.0082 (0.0202) time: 0.7089 data: 0.1081 max mem: 4806 Epoch: [0] [ 840/1500] eta: 0:07:49 lr: 0.004206 loss: 0.7311 (0.7851) loss_classifier: 0.1090 (0.1450) loss_box_reg: 0.1363 (0.1772) loss_mask: 0.3581 (0.4029) loss_objectness: 0.0137 (0.0398) loss_rpn_box_reg: 0.0086 (0.0203) time: 0.7493 data: 0.1055 max mem: 4806 Epoch: [0] [ 850/1500] eta: 0:07:42 lr: 0.004256 loss: 0.7924 (0.7841) loss_classifier: 0.1298 (0.1447) loss_box_reg: 0.1428 (0.1766) loss_mask: 0.3695 (0.4027) loss_objectness: 0.0267 (0.0397) loss_rpn_box_reg: 0.0102 (0.0204) time: 0.7706 data: 0.0908 max mem: 4806 Epoch: [0] [ 860/1500] eta: 0:07:35 lr: 0.004306 loss: 0.6277 (0.7840) loss_classifier: 0.0995 (0.1443) loss_box_reg: 0.1111 (0.1763) loss_mask: 0.3605 (0.4023) loss_objectness: 0.0320 (0.0407) loss_rpn_box_reg: 0.0105 (0.0205) time: 0.7240 data: 0.0955 max mem: 4806 Epoch: [0] [ 870/1500] eta: 0:07:28 lr: 0.004356 loss: 0.6129 (0.7833) loss_classifier: 0.0880 (0.1439) loss_box_reg: 0.0886 (0.1758) loss_mask: 0.3880 (0.4022) loss_objectness: 0.0435 (0.0409) loss_rpn_box_reg: 0.0173 (0.0205) time: 0.7060 data: 0.1138 max mem: 4806 Epoch: [0] [ 880/1500] eta: 0:07:21 lr: 0.004406 loss: 0.6800 (0.7830) loss_classifier: 0.0856 (0.1436) loss_box_reg: 0.0886 (0.1755) loss_mask: 0.3660 (0.4023) loss_objectness: 0.0424 (0.0410) loss_rpn_box_reg: 0.0169 (0.0205) time: 0.7411 data: 0.1292 max mem: 4806 Epoch: [0] [ 890/1500] eta: 0:07:14 lr: 0.004456 loss: 0.7078 (0.7820) loss_classifier: 0.0982 (0.1434) loss_box_reg: 0.0809 (0.1753) loss_mask: 0.3614 (0.4019) loss_objectness: 0.0409 (0.0409) loss_rpn_box_reg: 0.0134 (0.0205) time: 0.7716 data: 0.1381 max mem: 4806 Epoch: [0] [ 900/1500] eta: 0:07:07 lr: 0.004505 loss: 0.6398 (0.7803) loss_classifier: 0.0835 (0.1430) loss_box_reg: 0.0809 (0.1747) loss_mask: 0.3321 (0.4012) loss_objectness: 0.0302 (0.0410) loss_rpn_box_reg: 0.0134 (0.0205) time: 0.7152 data: 0.0963 max mem: 4806 Epoch: [0] [ 910/1500] eta: 0:06:59 lr: 0.004555 loss: 0.5888 (0.7798) loss_classifier: 0.0816 (0.1428) loss_box_reg: 0.0873 (0.1745) loss_mask: 0.3321 (0.4012) loss_objectness: 0.0282 (0.0409) loss_rpn_box_reg: 0.0060 (0.0205) time: 0.6587 data: 0.0652 max mem: 4806 Epoch: [0] [ 920/1500] eta: 0:06:52 lr: 0.004605 loss: 0.6186 (0.7787) loss_classifier: 0.0818 (0.1422) loss_box_reg: 0.1038 (0.1742) loss_mask: 0.3529 (0.4007) loss_objectness: 0.0233 (0.0409) loss_rpn_box_reg: 0.0060 (0.0207) time: 0.6931 data: 0.0646 max mem: 4806 Epoch: [0] [ 930/1500] eta: 0:06:45 lr: 0.004655 loss: 0.6209 (0.7779) loss_classifier: 0.0757 (0.1419) loss_box_reg: 0.0895 (0.1738) loss_mask: 0.3515 (0.4004) loss_objectness: 0.0312 (0.0412) loss_rpn_box_reg: 0.0114 (0.0206) time: 0.7353 data: 0.0807 max mem: 4806 Epoch: [0] [ 940/1500] eta: 0:06:38 lr: 0.004705 loss: 0.6209 (0.7765) loss_classifier: 0.0758 (0.1416) loss_box_reg: 0.0783 (0.1735) loss_mask: 0.3191 (0.3993) loss_objectness: 0.0393 (0.0413) loss_rpn_box_reg: 0.0121 (0.0208) time: 0.7225 data: 0.0877 max mem: 4806 Epoch: [0] [ 950/1500] eta: 0:06:31 lr: 0.004755 loss: 0.5828 (0.7753) loss_classifier: 0.0949 (0.1412) loss_box_reg: 0.1017 (0.1729) loss_mask: 0.3132 (0.3992) loss_objectness: 0.0290 (0.0413) loss_rpn_box_reg: 0.0104 (0.0207) time: 0.6951 data: 0.0766 max mem: 4806 Epoch: [0] [ 960/1500] eta: 0:06:24 lr: 0.004805 loss: 0.5828 (0.7736) loss_classifier: 0.0931 (0.1408) loss_box_reg: 0.1032 (0.1729) loss_mask: 0.3685 (0.3983) loss_objectness: 0.0214 (0.0410) loss_rpn_box_reg: 0.0088 (0.0206) time: 0.6945 data: 0.0751 max mem: 4806 Epoch: [0] [ 970/1500] eta: 0:06:17 lr: 0.004855 loss: 0.6902 (0.7745) loss_classifier: 0.1131 (0.1411) loss_box_reg: 0.1956 (0.1734) loss_mask: 0.3290 (0.3982) loss_objectness: 0.0216 (0.0411) loss_rpn_box_reg: 0.0177 (0.0207) time: 0.7284 data: 0.0931 max mem: 4806 Epoch: [0] [ 980/1500] eta: 0:06:10 lr: 0.004905 loss: 0.6902 (0.7737) loss_classifier: 0.1241 (0.1408) loss_box_reg: 0.1606 (0.1728) loss_mask: 0.3727 (0.3982) loss_objectness: 0.0269 (0.0412) loss_rpn_box_reg: 0.0179 (0.0208) time: 0.7381 data: 0.1037 max mem: 4806 Epoch: [0] [ 990/1500] eta: 0:06:02 lr: 0.004955 loss: 0.6192 (0.7724) loss_classifier: 0.0974 (0.1404) loss_box_reg: 0.0965 (0.1724) loss_mask: 0.3765 (0.3980) loss_objectness: 0.0229 (0.0410) loss_rpn_box_reg: 0.0076 (0.0207) time: 0.6927 data: 0.0881 max mem: 4806 Epoch: [0] [1000/1500] eta: 0:05:55 lr: 0.005000 loss: 0.6159 (0.7714) loss_classifier: 0.0883 (0.1400) loss_box_reg: 0.1022 (0.1720) loss_mask: 0.3563 (0.3977) loss_objectness: 0.0268 (0.0410) loss_rpn_box_reg: 0.0084 (0.0207) time: 0.6859 data: 0.0788 max mem: 4806 Epoch: [0] [1010/1500] eta: 0:05:48 lr: 0.005000 loss: 0.6347 (0.7708) loss_classifier: 0.0883 (0.1400) loss_box_reg: 0.0977 (0.1719) loss_mask: 0.3407 (0.3971) loss_objectness: 0.0270 (0.0409) loss_rpn_box_reg: 0.0125 (0.0209) time: 0.7203 data: 0.0897 max mem: 4806 Epoch: [0] [1020/1500] eta: 0:05:41 lr: 0.005000 loss: 0.6516 (0.7703) loss_classifier: 0.1098 (0.1397) loss_box_reg: 0.0984 (0.1719) loss_mask: 0.3540 (0.3968) loss_objectness: 0.0255 (0.0409) loss_rpn_box_reg: 0.0055 (0.0210) time: 0.7246 data: 0.0860 max mem: 4806 Epoch: [0] [1030/1500] eta: 0:05:34 lr: 0.005000 loss: 0.5926 (0.7693) loss_classifier: 0.0982 (0.1395) loss_box_reg: 0.1243 (0.1718) loss_mask: 0.3338 (0.3961) loss_objectness: 0.0198 (0.0409) loss_rpn_box_reg: 0.0124 (0.0210) time: 0.7083 data: 0.0852 max mem: 4806 Epoch: [0] [1040/1500] eta: 0:05:27 lr: 0.005000 loss: 0.5926 (0.7691) loss_classifier: 0.0997 (0.1395) loss_box_reg: 0.1257 (0.1716) loss_mask: 0.3338 (0.3957) loss_objectness: 0.0247 (0.0411) loss_rpn_box_reg: 0.0115 (0.0211) time: 0.7311 data: 0.1160 max mem: 4806 Epoch: [0] [1050/1500] eta: 0:05:20 lr: 0.005000 loss: 0.6146 (0.7678) loss_classifier: 0.0975 (0.1392) loss_box_reg: 0.0948 (0.1712) loss_mask: 0.3372 (0.3953) loss_objectness: 0.0321 (0.0411) loss_rpn_box_reg: 0.0115 (0.0211) time: 0.6980 data: 0.0934 max mem: 4806 Epoch: [0] [1060/1500] eta: 0:05:12 lr: 0.005000 loss: 0.6146 (0.7669) loss_classifier: 0.0859 (0.1389) loss_box_reg: 0.1303 (0.1710) loss_mask: 0.3478 (0.3950) loss_objectness: 0.0265 (0.0410) loss_rpn_box_reg: 0.0120 (0.0210) time: 0.6308 data: 0.0533 max mem: 4806 Epoch: [0] [1070/1500] eta: 0:05:05 lr: 0.005000 loss: 0.5919 (0.7663) loss_classifier: 0.0816 (0.1387) loss_box_reg: 0.1089 (0.1709) loss_mask: 0.4026 (0.3948) loss_objectness: 0.0178 (0.0409) loss_rpn_box_reg: 0.0114 (0.0211) time: 0.6775 data: 0.0611 max mem: 4806 Epoch: [0] [1080/1500] eta: 0:04:58 lr: 0.005000 loss: 0.6049 (0.7656) loss_classifier: 0.0932 (0.1385) loss_box_reg: 0.1088 (0.1706) loss_mask: 0.3423 (0.3944) loss_objectness: 0.0206 (0.0409) loss_rpn_box_reg: 0.0169 (0.0212) time: 0.7374 data: 0.0991 max mem: 4806 Epoch: [0] [1090/1500] eta: 0:04:51 lr: 0.005000 loss: 0.6428 (0.7644) loss_classifier: 0.1078 (0.1382) loss_box_reg: 0.1082 (0.1702) loss_mask: 0.3310 (0.3938) loss_objectness: 0.0358 (0.0410) loss_rpn_box_reg: 0.0143 (0.0212) time: 0.7196 data: 0.1115 max mem: 4806 Epoch: [0] [1100/1500] eta: 0:04:44 lr: 0.005000 loss: 0.5830 (0.7629) loss_classifier: 0.0833 (0.1378) loss_box_reg: 0.0968 (0.1696) loss_mask: 0.3426 (0.3935) loss_objectness: 0.0333 (0.0409) loss_rpn_box_reg: 0.0061 (0.0211) time: 0.6602 data: 0.0766 max mem: 4806 Epoch: [0] [1110/1500] eta: 0:04:36 lr: 0.005000 loss: 0.5603 (0.7626) loss_classifier: 0.0801 (0.1378) loss_box_reg: 0.0964 (0.1697) loss_mask: 0.3665 (0.3932) loss_objectness: 0.0264 (0.0409) loss_rpn_box_reg: 0.0053 (0.0210) time: 0.6676 data: 0.0661 max mem: 4806 Epoch: [0] [1120/1500] eta: 0:04:29 lr: 0.005000 loss: 0.6085 (0.7612) loss_classifier: 0.0993 (0.1374) loss_box_reg: 0.1075 (0.1692) loss_mask: 0.3755 (0.3929) loss_objectness: 0.0257 (0.0407) loss_rpn_box_reg: 0.0080 (0.0210) time: 0.6994 data: 0.0808 max mem: 4806 Epoch: [0] [1130/1500] eta: 0:04:22 lr: 0.005000 loss: 0.6777 (0.7611) loss_classifier: 0.0809 (0.1372) loss_box_reg: 0.1075 (0.1691) loss_mask: 0.3985 (0.3932) loss_objectness: 0.0195 (0.0407) loss_rpn_box_reg: 0.0078 (0.0209) time: 0.7177 data: 0.0928 max mem: 4806 Epoch: [0] [1140/1500] eta: 0:04:15 lr: 0.005000 loss: 0.6899 (0.7607) loss_classifier: 0.0799 (0.1370) loss_box_reg: 0.0977 (0.1689) loss_mask: 0.3907 (0.3934) loss_objectness: 0.0195 (0.0406) loss_rpn_box_reg: 0.0081 (0.0209) time: 0.7435 data: 0.0953 max mem: 4806 Epoch: [0] [1150/1500] eta: 0:04:08 lr: 0.005000 loss: 0.6818 (0.7606) loss_classifier: 0.0894 (0.1368) loss_box_reg: 0.1110 (0.1690) loss_mask: 0.3500 (0.3933) loss_objectness: 0.0296 (0.0406) loss_rpn_box_reg: 0.0146 (0.0209) time: 0.6991 data: 0.0814 max mem: 4806 Epoch: [0] [1160/1500] eta: 0:04:01 lr: 0.005000 loss: 0.6710 (0.7603) loss_classifier: 0.1109 (0.1366) loss_box_reg: 0.1472 (0.1689) loss_mask: 0.3360 (0.3931) loss_objectness: 0.0308 (0.0406) loss_rpn_box_reg: 0.0093 (0.0210) time: 0.6725 data: 0.0702 max mem: 4806 Epoch: [0] [1170/1500] eta: 0:03:54 lr: 0.005000 loss: 0.6342 (0.7593) loss_classifier: 0.0946 (0.1363) loss_box_reg: 0.1047 (0.1686) loss_mask: 0.3530 (0.3930) loss_objectness: 0.0279 (0.0405) loss_rpn_box_reg: 0.0077 (0.0209) time: 0.6813 data: 0.0794 max mem: 4806 Epoch: [0] [1180/1500] eta: 0:03:47 lr: 0.005000 loss: 0.6095 (0.7584) loss_classifier: 0.0738 (0.1360) loss_box_reg: 0.0948 (0.1682) loss_mask: 0.3882 (0.3930) loss_objectness: 0.0171 (0.0403) loss_rpn_box_reg: 0.0077 (0.0209) time: 0.6927 data: 0.0915 max mem: 4806 Epoch: [0] [1190/1500] eta: 0:03:39 lr: 0.005000 loss: 0.6307 (0.7585) loss_classifier: 0.0888 (0.1359) loss_box_reg: 0.1075 (0.1683) loss_mask: 0.3883 (0.3929) loss_objectness: 0.0154 (0.0404) loss_rpn_box_reg: 0.0065 (0.0210) time: 0.6972 data: 0.0903 max mem: 4806 Epoch: [0] [1200/1500] eta: 0:03:32 lr: 0.005000 loss: 0.6711 (0.7590) loss_classifier: 0.1032 (0.1359) loss_box_reg: 0.1110 (0.1681) loss_mask: 0.4006 (0.3931) loss_objectness: 0.0275 (0.0406) loss_rpn_box_reg: 0.0106 (0.0212) time: 0.7051 data: 0.0933 max mem: 4806 Epoch: [0] [1210/1500] eta: 0:03:25 lr: 0.005000 loss: 0.6667 (0.7582) loss_classifier: 0.1092 (0.1357) loss_box_reg: 0.1069 (0.1678) loss_mask: 0.3529 (0.3927) loss_objectness: 0.0410 (0.0407) loss_rpn_box_reg: 0.0112 (0.0212) time: 0.7166 data: 0.1017 max mem: 4806 Epoch: [0] [1220/1500] eta: 0:03:18 lr: 0.005000 loss: 0.6226 (0.7585) loss_classifier: 0.0817 (0.1354) loss_box_reg: 0.0939 (0.1674) loss_mask: 0.3529 (0.3934) loss_objectness: 0.0410 (0.0410) loss_rpn_box_reg: 0.0143 (0.0212) time: 0.7008 data: 0.0876 max mem: 4806 Epoch: [0] [1230/1500] eta: 0:03:11 lr: 0.005000 loss: 0.5259 (0.7571) loss_classifier: 0.0770 (0.1351) loss_box_reg: 0.0811 (0.1671) loss_mask: 0.3705 (0.3929) loss_objectness: 0.0263 (0.0408) loss_rpn_box_reg: 0.0155 (0.0212) time: 0.7401 data: 0.0985 max mem: 4806 Epoch: [0] [1240/1500] eta: 0:03:04 lr: 0.005000 loss: 0.5401 (0.7561) loss_classifier: 0.0737 (0.1348) loss_box_reg: 0.0855 (0.1665) loss_mask: 0.3741 (0.3929) loss_objectness: 0.0175 (0.0409) loss_rpn_box_reg: 0.0074 (0.0211) time: 0.7324 data: 0.0946 max mem: 4806 Epoch: [0] [1250/1500] eta: 0:02:57 lr: 0.005000 loss: 0.5022 (0.7541) loss_classifier: 0.0730 (0.1343) loss_box_reg: 0.0787 (0.1658) loss_mask: 0.3326 (0.3922) loss_objectness: 0.0191 (0.0407) loss_rpn_box_reg: 0.0048 (0.0210) time: 0.6748 data: 0.0652 max mem: 4806 Epoch: [0] [1260/1500] eta: 0:02:50 lr: 0.005000 loss: 0.4970 (0.7533) loss_classifier: 0.0769 (0.1343) loss_box_reg: 0.0871 (0.1656) loss_mask: 0.3111 (0.3916) loss_objectness: 0.0232 (0.0407) loss_rpn_box_reg: 0.0064 (0.0211) time: 0.6990 data: 0.0955 max mem: 4806 Epoch: [0] [1270/1500] eta: 0:02:43 lr: 0.005000 loss: 0.5432 (0.7522) loss_classifier: 0.1043 (0.1340) loss_box_reg: 0.1128 (0.1651) loss_mask: 0.3465 (0.3914) loss_objectness: 0.0202 (0.0407) loss_rpn_box_reg: 0.0101 (0.0210) time: 0.7349 data: 0.1074 max mem: 4806 Epoch: [0] [1280/1500] eta: 0:02:36 lr: 0.005000 loss: 0.6704 (0.7526) loss_classifier: 0.1043 (0.1341) loss_box_reg: 0.1128 (0.1653) loss_mask: 0.3870 (0.3914) loss_objectness: 0.0203 (0.0407) loss_rpn_box_reg: 0.0108 (0.0211) time: 0.7256 data: 0.0898 max mem: 4806 Epoch: [0] [1290/1500] eta: 0:02:29 lr: 0.005000 loss: 0.6591 (0.7521) loss_classifier: 0.1238 (0.1341) loss_box_reg: 0.1524 (0.1654) loss_mask: 0.3185 (0.3909) loss_objectness: 0.0203 (0.0406) loss_rpn_box_reg: 0.0161 (0.0211) time: 0.7047 data: 0.0900 max mem: 4806 Epoch: [0] [1300/1500] eta: 0:02:21 lr: 0.005000 loss: 0.6052 (0.7515) loss_classifier: 0.1073 (0.1341) loss_box_reg: 0.1270 (0.1653) loss_mask: 0.3185 (0.3906) loss_objectness: 0.0187 (0.0406) loss_rpn_box_reg: 0.0075 (0.0210) time: 0.6918 data: 0.0917 max mem: 4806 Epoch: [0] [1310/1500] eta: 0:02:14 lr: 0.005000 loss: 0.6353 (0.7520) loss_classifier: 0.0983 (0.1342) loss_box_reg: 0.1271 (0.1656) loss_mask: 0.3443 (0.3906) loss_objectness: 0.0195 (0.0406) loss_rpn_box_reg: 0.0077 (0.0211) time: 0.7014 data: 0.1022 max mem: 4806 Epoch: [0] [1320/1500] eta: 0:02:07 lr: 0.005000 loss: 0.6100 (0.7506) loss_classifier: 0.0886 (0.1340) loss_box_reg: 0.0919 (0.1652) loss_mask: 0.3392 (0.3899) loss_objectness: 0.0183 (0.0404) loss_rpn_box_reg: 0.0086 (0.0211) time: 0.7330 data: 0.1149 max mem: 4806 Epoch: [0] [1330/1500] eta: 0:02:00 lr: 0.005000 loss: 0.6171 (0.7511) loss_classifier: 0.0866 (0.1338) loss_box_reg: 0.0919 (0.1651) loss_mask: 0.3392 (0.3908) loss_objectness: 0.0163 (0.0403) loss_rpn_box_reg: 0.0086 (0.0212) time: 0.7319 data: 0.1035 max mem: 4806 Epoch: [0] [1340/1500] eta: 0:01:53 lr: 0.005000 loss: 0.6171 (0.7505) loss_classifier: 0.0778 (0.1334) loss_box_reg: 0.1092 (0.1646) loss_mask: 0.4133 (0.3911) loss_objectness: 0.0163 (0.0402) loss_rpn_box_reg: 0.0047 (0.0211) time: 0.7039 data: 0.0839 max mem: 4806 Epoch: [0] [1350/1500] eta: 0:01:46 lr: 0.005000 loss: 0.5928 (0.7491) loss_classifier: 0.0735 (0.1330) loss_box_reg: 0.0954 (0.1641) loss_mask: 0.3951 (0.3910) loss_objectness: 0.0130 (0.0400) loss_rpn_box_reg: 0.0059 (0.0210) time: 0.7225 data: 0.0799 max mem: 4806 Epoch: [0] [1360/1500] eta: 0:01:39 lr: 0.005000 loss: 0.5496 (0.7488) loss_classifier: 0.0739 (0.1329) loss_box_reg: 0.0954 (0.1639) loss_mask: 0.3439 (0.3911) loss_objectness: 0.0159 (0.0400) loss_rpn_box_reg: 0.0066 (0.0209) time: 0.7127 data: 0.0787 max mem: 4806 Epoch: [0] [1370/1500] eta: 0:01:32 lr: 0.005000 loss: 0.6396 (0.7487) loss_classifier: 0.0974 (0.1327) loss_box_reg: 0.0935 (0.1636) loss_mask: 0.3439 (0.3912) loss_objectness: 0.0266 (0.0404) loss_rpn_box_reg: 0.0069 (0.0209) time: 0.6950 data: 0.0908 max mem: 4806 Epoch: [0] [1380/1500] eta: 0:01:25 lr: 0.005000 loss: 0.6251 (0.7488) loss_classifier: 0.0926 (0.1326) loss_box_reg: 0.0927 (0.1636) loss_mask: 0.3495 (0.3914) loss_objectness: 0.0296 (0.0405) loss_rpn_box_reg: 0.0071 (0.0209) time: 0.7307 data: 0.1083 max mem: 4806 Epoch: [0] [1390/1500] eta: 0:01:18 lr: 0.005000 loss: 0.7355 (0.7497) loss_classifier: 0.1143 (0.1327) loss_box_reg: 0.1200 (0.1637) loss_mask: 0.3888 (0.3916) loss_objectness: 0.0392 (0.0407) loss_rpn_box_reg: 0.0152 (0.0210) time: 0.7565 data: 0.1329 max mem: 4806 Epoch: [0] [1400/1500] eta: 0:01:11 lr: 0.005000 loss: 0.7070 (0.7498) loss_classifier: 0.1143 (0.1324) loss_box_reg: 0.1196 (0.1634) loss_mask: 0.4241 (0.3917) loss_objectness: 0.0562 (0.0412) loss_rpn_box_reg: 0.0198 (0.0211) time: 0.7350 data: 0.1180 max mem: 4806 Epoch: [0] [1410/1500] eta: 0:01:03 lr: 0.005000 loss: 0.6195 (0.7493) loss_classifier: 0.0679 (0.1323) loss_box_reg: 0.1146 (0.1633) loss_mask: 0.3844 (0.3915) loss_objectness: 0.0355 (0.0411) loss_rpn_box_reg: 0.0115 (0.0211) time: 0.7278 data: 0.0870 max mem: 4806 Epoch: [0] [1420/1500] eta: 0:00:56 lr: 0.005000 loss: 0.6181 (0.7487) loss_classifier: 0.0997 (0.1321) loss_box_reg: 0.1194 (0.1630) loss_mask: 0.3498 (0.3914) loss_objectness: 0.0311 (0.0411) loss_rpn_box_reg: 0.0105 (0.0211) time: 0.7127 data: 0.0778 max mem: 4806 Epoch: [0] [1430/1500] eta: 0:00:49 lr: 0.005000 loss: 0.6882 (0.7485) loss_classifier: 0.1034 (0.1319) loss_box_reg: 0.1194 (0.1628) loss_mask: 0.3888 (0.3914) loss_objectness: 0.0293 (0.0413) loss_rpn_box_reg: 0.0097 (0.0211) time: 0.6965 data: 0.0831 max mem: 4806 Epoch: [0] [1440/1500] eta: 0:00:42 lr: 0.005000 loss: 0.7480 (0.7496) loss_classifier: 0.1151 (0.1321) loss_box_reg: 0.1424 (0.1632) loss_mask: 0.4039 (0.3913) loss_objectness: 0.0384 (0.0417) loss_rpn_box_reg: 0.0123 (0.0212) time: 0.7509 data: 0.1298 max mem: 4806 Epoch: [0] [1450/1500] eta: 0:00:35 lr: 0.005000 loss: 0.7549 (0.7494) loss_classifier: 0.1305 (0.1320) loss_box_reg: 0.1315 (0.1629) loss_mask: 0.4070 (0.3915) loss_objectness: 0.0412 (0.0418) loss_rpn_box_reg: 0.0123 (0.0212) time: 0.7257 data: 0.1191 max mem: 4806 Epoch: [0] [1460/1500] eta: 0:00:28 lr: 0.005000 loss: 0.7207 (0.7495) loss_classifier: 0.1062 (0.1320) loss_box_reg: 0.1065 (0.1628) loss_mask: 0.4225 (0.3917) loss_objectness: 0.0412 (0.0418) loss_rpn_box_reg: 0.0080 (0.0212) time: 0.7075 data: 0.1174 max mem: 4806 Epoch: [0] [1470/1500] eta: 0:00:21 lr: 0.005000 loss: 0.6906 (0.7502) loss_classifier: 0.1062 (0.1320) loss_box_reg: 0.0896 (0.1629) loss_mask: 0.4066 (0.3918) loss_objectness: 0.0336 (0.0421) loss_rpn_box_reg: 0.0146 (0.0214) time: 0.7307 data: 0.1343 max mem: 4806 Epoch: [0] [1480/1500] eta: 0:00:14 lr: 0.005000 loss: 0.6152 (0.7496) loss_classifier: 0.0930 (0.1319) loss_box_reg: 0.0904 (0.1628) loss_mask: 0.3431 (0.3914) loss_objectness: 0.0339 (0.0422) loss_rpn_box_reg: 0.0185 (0.0214) time: 0.7152 data: 0.1114 max mem: 4806 Epoch: [0] [1490/1500] eta: 0:00:07 lr: 0.005000 loss: 0.5760 (0.7488) loss_classifier: 0.0921 (0.1317) loss_box_reg: 0.1034 (0.1625) loss_mask: 0.3171 (0.3913) loss_objectness: 0.0250 (0.0421) loss_rpn_box_reg: 0.0088 (0.0213) time: 0.7088 data: 0.0932 max mem: 4806 Epoch: [0] [1499/1500] eta: 0:00:00 lr: 0.005000 loss: 0.5513 (0.7483) loss_classifier: 0.0854 (0.1315) loss_box_reg: 0.1034 (0.1624) loss_mask: 0.3155 (0.3909) loss_objectness: 0.0142 (0.0421) loss_rpn_box_reg: 0.0079 (0.0214) time: 0.6987 data: 0.0691 max mem: 4806 Epoch: [0] Total time: 0:17:46 (0.7111 s / it) creating index... index created! Test: [ 0/800] eta: 0:03:00 model_time: 0.1960 (0.1960) evaluator_time: 0.0171 (0.0171) time: 0.2261 data: 0.0122 max mem: 4806 Test: [100/800] eta: 0:02:24 model_time: 0.1651 (0.1552) evaluator_time: 0.0273 (0.0325) time: 0.2121 data: 0.0179 max mem: 4806 Test: [200/800] eta: 0:02:01 model_time: 0.1502 (0.1535) evaluator_time: 0.0192 (0.0304) time: 0.2118 data: 0.0187 max mem: 4806 Test: [300/800] eta: 0:01:43 model_time: 0.1524 (0.1546) evaluator_time: 0.0260 (0.0325) time: 0.2090 data: 0.0177 max mem: 4806 Test: [400/800] eta: 0:01:23 model_time: 0.1586 (0.1544) evaluator_time: 0.0226 (0.0339) time: 0.2338 data: 0.0216 max mem: 4806 Test: [500/800] eta: 0:01:01 model_time: 0.1451 (0.1533) evaluator_time: 0.0186 (0.0332) time: 0.2091 data: 0.0155 max mem: 4806
[0;31m---------------------------------------------------------------------------[0m [0;31mKeyboardInterrupt[0m Traceback (most recent call last) [0;32m<ipython-input-15-16230b13c661>[0m in [0;36m<module>[0;34m()[0m [1;32m 9[0m [0mlr_scheduler[0m[0;34m.[0m[0mstep[0m[0;34m([0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [1;32m 10[0m [0;31m# evaluate on the test dataset[0m[0;34m[0m[0;34m[0m[0;34m[0m[0m [0;32m---> 11[0;31m [0mres[0m [0;34m=[0m [0mevaluate[0m[0;34m([0m[0mmodel[0m[0;34m,[0m [0mdata_loader_test[0m[0;34m,[0m [0mdevice[0m[0;34m=[0m[0mdevice[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [0m [0;32m/usr/local/lib/python3.6/dist-packages/torch/autograd/grad_mode.py[0m in [0;36mdecorate_context[0;34m(*args, **kwargs)[0m [1;32m 24[0m [0;32mdef[0m [0mdecorate_context[0m[0;34m([0m[0;34m*[0m[0margs[0m[0;34m,[0m [0;34m**[0m[0mkwargs[0m[0;34m)[0m[0;34m:[0m[0;34m[0m[0;34m[0m[0m [1;32m 25[0m [0;32mwith[0m [0mself[0m[0;34m.[0m[0m__class__[0m[0;34m([0m[0;34m)[0m[0;34m:[0m[0;34m[0m[0;34m[0m[0m [0;32m---> 26[0;31m [0;32mreturn[0m [0mfunc[0m[0;34m([0m[0;34m*[0m[0margs[0m[0;34m,[0m [0;34m**[0m[0mkwargs[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [0m[1;32m 27[0m [0;32mreturn[0m [0mcast[0m[0;34m([0m[0mF[0m[0;34m,[0m [0mdecorate_context[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [1;32m 28[0m [0;34m[0m[0m [0;32m/content/engine.py[0m in [0;36mevaluate[0;34m(model, data_loader, device)[0m [1;32m 87[0m [0mtorch[0m[0;34m.[0m[0mcuda[0m[0;34m.[0m[0msynchronize[0m[0;34m([0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [1;32m 88[0m [0mmodel_time[0m [0;34m=[0m [0mtime[0m[0;34m.[0m[0mtime[0m[0;34m([0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [0;32m---> 89[0;31m [0moutputs[0m [0;34m=[0m [0mmodel[0m[0;34m([0m[0mimages[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [0m[1;32m 90[0m [0;34m[0m[0m [1;32m 91[0m [0moutputs[0m [0;34m=[0m [0;34m[[0m[0;34m{[0m[0mk[0m[0;34m:[0m [0mv[0m[0;34m.[0m[0mto[0m[0;34m([0m[0mcpu_device[0m[0;34m)[0m [0;32mfor[0m [0mk[0m[0;34m,[0m [0mv[0m [0;32min[0m [0mt[0m[0;34m.[0m[0mitems[0m[0;34m([0m[0;34m)[0m[0;34m}[0m [0;32mfor[0m [0mt[0m [0;32min[0m [0moutputs[0m[0;34m][0m[0;34m[0m[0;34m[0m[0m [0;32m/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py[0m in [0;36m_call_impl[0;34m(self, *input, **kwargs)[0m [1;32m 725[0m [0mresult[0m [0;34m=[0m [0mself[0m[0;34m.[0m[0m_slow_forward[0m[0;34m([0m[0;34m*[0m[0minput[0m[0;34m,[0m [0;34m**[0m[0mkwargs[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [1;32m 726[0m [0;32melse[0m[0;34m:[0m[0;34m[0m[0;34m[0m[0m [0;32m--> 727[0;31m [0mresult[0m [0;34m=[0m [0mself[0m[0;34m.[0m[0mforward[0m[0;34m([0m[0;34m*[0m[0minput[0m[0;34m,[0m [0;34m**[0m[0mkwargs[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [0m[1;32m 728[0m for hook in itertools.chain( [1;32m 729[0m [0m_global_forward_hooks[0m[0;34m.[0m[0mvalues[0m[0;34m([0m[0;34m)[0m[0;34m,[0m[0;34m[0m[0;34m[0m[0m [0;32m/usr/local/lib/python3.6/dist-packages/torchvision/models/detection/generalized_rcnn.py[0m in [0;36mforward[0;34m(self, images, targets)[0m [1;32m 97[0m [0;32mif[0m [0misinstance[0m[0;34m([0m[0mfeatures[0m[0;34m,[0m [0mtorch[0m[0;34m.[0m[0mTensor[0m[0;34m)[0m[0;34m:[0m[0;34m[0m[0;34m[0m[0m [1;32m 98[0m [0mfeatures[0m [0;34m=[0m [0mOrderedDict[0m[0;34m([0m[0;34m[[0m[0;34m([0m[0;34m'0'[0m[0;34m,[0m [0mfeatures[0m[0;34m)[0m[0;34m][0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [0;32m---> 99[0;31m [0mproposals[0m[0;34m,[0m [0mproposal_losses[0m [0;34m=[0m [0mself[0m[0;34m.[0m[0mrpn[0m[0;34m([0m[0mimages[0m[0;34m,[0m [0mfeatures[0m[0;34m,[0m [0mtargets[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [0m[1;32m 100[0m [0mdetections[0m[0;34m,[0m [0mdetector_losses[0m [0;34m=[0m [0mself[0m[0;34m.[0m[0mroi_heads[0m[0;34m([0m[0mfeatures[0m[0;34m,[0m [0mproposals[0m[0;34m,[0m [0mimages[0m[0;34m.[0m[0mimage_sizes[0m[0;34m,[0m [0mtargets[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [1;32m 101[0m [0mdetections[0m [0;34m=[0m [0mself[0m[0;34m.[0m[0mtransform[0m[0;34m.[0m[0mpostprocess[0m[0;34m([0m[0mdetections[0m[0;34m,[0m [0mimages[0m[0;34m.[0m[0mimage_sizes[0m[0;34m,[0m [0moriginal_image_sizes[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [0;32m/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py[0m in [0;36m_call_impl[0;34m(self, *input, **kwargs)[0m [1;32m 725[0m [0mresult[0m [0;34m=[0m [0mself[0m[0;34m.[0m[0m_slow_forward[0m[0;34m([0m[0;34m*[0m[0minput[0m[0;34m,[0m [0;34m**[0m[0mkwargs[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [1;32m 726[0m [0;32melse[0m[0;34m:[0m[0;34m[0m[0;34m[0m[0m [0;32m--> 727[0;31m [0mresult[0m [0;34m=[0m [0mself[0m[0;34m.[0m[0mforward[0m[0;34m([0m[0;34m*[0m[0minput[0m[0;34m,[0m [0;34m**[0m[0mkwargs[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [0m[1;32m 728[0m for hook in itertools.chain( [1;32m 729[0m [0m_global_forward_hooks[0m[0;34m.[0m[0mvalues[0m[0;34m([0m[0;34m)[0m[0;34m,[0m[0;34m[0m[0;34m[0m[0m [0;32m/usr/local/lib/python3.6/dist-packages/torchvision/models/detection/rpn.py[0m in [0;36mforward[0;34m(self, images, features, targets)[0m [1;32m 330[0m [0mfeatures[0m [0;34m=[0m [0mlist[0m[0;34m([0m[0mfeatures[0m[0;34m.[0m[0mvalues[0m[0;34m([0m[0;34m)[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [1;32m 331[0m [0mobjectness[0m[0;34m,[0m [0mpred_bbox_deltas[0m [0;34m=[0m [0mself[0m[0;34m.[0m[0mhead[0m[0;34m([0m[0mfeatures[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [0;32m--> 332[0;31m [0manchors[0m [0;34m=[0m [0mself[0m[0;34m.[0m[0manchor_generator[0m[0;34m([0m[0mimages[0m[0;34m,[0m [0mfeatures[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [0m[1;32m 333[0m [0;34m[0m[0m [1;32m 334[0m [0mnum_images[0m [0;34m=[0m [0mlen[0m[0;34m([0m[0manchors[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [0;32m/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py[0m in [0;36m_call_impl[0;34m(self, *input, **kwargs)[0m [1;32m 725[0m [0mresult[0m [0;34m=[0m [0mself[0m[0;34m.[0m[0m_slow_forward[0m[0;34m([0m[0;34m*[0m[0minput[0m[0;34m,[0m [0;34m**[0m[0mkwargs[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [1;32m 726[0m [0;32melse[0m[0;34m:[0m[0;34m[0m[0;34m[0m[0m [0;32m--> 727[0;31m [0mresult[0m [0;34m=[0m [0mself[0m[0;34m.[0m[0mforward[0m[0;34m([0m[0;34m*[0m[0minput[0m[0;34m,[0m [0;34m**[0m[0mkwargs[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [0m[1;32m 728[0m for hook in itertools.chain( [1;32m 729[0m [0m_global_forward_hooks[0m[0;34m.[0m[0mvalues[0m[0;34m([0m[0;34m)[0m[0;34m,[0m[0;34m[0m[0;34m[0m[0m [0;32m/usr/local/lib/python3.6/dist-packages/torchvision/models/detection/anchor_utils.py[0m in [0;36mforward[0;34m(self, image_list, feature_maps)[0m [1;32m 145[0m [0mdtype[0m[0;34m,[0m [0mdevice[0m [0;34m=[0m [0mfeature_maps[0m[0;34m[[0m[0;36m0[0m[0;34m][0m[0;34m.[0m[0mdtype[0m[0;34m,[0m [0mfeature_maps[0m[0;34m[[0m[0;36m0[0m[0;34m][0m[0;34m.[0m[0mdevice[0m[0;34m[0m[0;34m[0m[0m [1;32m 146[0m strides = [[torch.tensor(image_size[0] // g[0], dtype=torch.int64, device=device), [0;32m--> 147[0;31m torch.tensor(image_size[1] // g[1], dtype=torch.int64, device=device)] for g in grid_sizes] [0m[1;32m 148[0m [0mself[0m[0;34m.[0m[0mset_cell_anchors[0m[0;34m([0m[0mdtype[0m[0;34m,[0m [0mdevice[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [1;32m 149[0m [0manchors_over_all_feature_maps[0m [0;34m=[0m [0mself[0m[0;34m.[0m[0mcached_grid_anchors[0m[0;34m([0m[0mgrid_sizes[0m[0;34m,[0m [0mstrides[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [0;32m/usr/local/lib/python3.6/dist-packages/torchvision/models/detection/anchor_utils.py[0m in [0;36m<listcomp>[0;34m(.0)[0m [1;32m 145[0m [0mdtype[0m[0;34m,[0m [0mdevice[0m [0;34m=[0m [0mfeature_maps[0m[0;34m[[0m[0;36m0[0m[0;34m][0m[0;34m.[0m[0mdtype[0m[0;34m,[0m [0mfeature_maps[0m[0;34m[[0m[0;36m0[0m[0;34m][0m[0;34m.[0m[0mdevice[0m[0;34m[0m[0;34m[0m[0m [1;32m 146[0m strides = [[torch.tensor(image_size[0] // g[0], dtype=torch.int64, device=device), [0;32m--> 147[0;31m torch.tensor(image_size[1] // g[1], dtype=torch.int64, device=device)] for g in grid_sizes] [0m[1;32m 148[0m [0mself[0m[0;34m.[0m[0mset_cell_anchors[0m[0;34m([0m[0mdtype[0m[0;34m,[0m [0mdevice[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [1;32m 149[0m [0manchors_over_all_feature_maps[0m [0;34m=[0m [0mself[0m[0;34m.[0m[0mcached_grid_anchors[0m[0;34m([0m[0mgrid_sizes[0m[0;34m,[0m [0mstrides[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [0;31mKeyboardInterrupt[0m:
import matplotlib.pyplot as plt
plt.title('Training Loss')
losses = [np.mean(list(trn_history[i].meters['loss'].deque)) for i in range(len(trn_history))]
plt.plot(losses)
[<matplotlib.lines.Line2D>]
k=408
k
409
k=423
model.eval()
k+=1
im = dataset_test[k][0]
show(im,sz=5)
with torch.no_grad():
prediction = model([im.to(device)])
for i in range(len(prediction[0]['masks'])):
plt.imshow(Image.fromarray(prediction[0]['masks'][i, 0].mul(255).byte().cpu().numpy()))
plt.title('Class: '+str(prediction[0]['labels'][i].cpu().numpy())+' Score:'+str(prediction[0]['scores'][i].cpu().numpy()))
plt.show()