├── .github ├── ISSUE_TEMPLATE │ └── pr-checklist.md └── PULL_REQUEST_TEMPLATE ├── README.md ├── data_loader.py ├── functions.py ├── models.py ├── results ├── 43051.jpg ├── 43051_meteorshowers.png ├── 43051_ours.png ├── 8068.jpg ├── 8068_meteorshowers.png └── 8068_ours.png ├── sgd-0-log.txt ├── train_RCF.py └── utils.py /.github/ISSUE_TEMPLATE/pr-checklist.md: -------------------------------------------------------------------------------- 1 | ## Things to verify before requesting a review 2 | 3 | - [ ] Kindly run `make init` to ensure that the environment is updated. 4 | - [ ] Kindly merge with the master branch or main branch and resolve conflicts. 5 | - [ ] Kindly request review from team members whose step/functionality is impacted. 6 | - Ex: Ramya owns the Preprocessing step, it would be good to have her as part of the review process for the Preprocessing step. 7 | - [ ] Kindly include me in all reviews. 8 | - [ ] Kindly add a detailed description about what functionalities are newly added in the PR. 9 | - [ ] Kindly add the steps that you did to execute this piece of work. 10 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE: -------------------------------------------------------------------------------- 1 | # Pull Request Template 2 | 3 | ## Description 4 | Please include a summary of the changes and the related issue. Provide any other relevant context. 5 | 6 | ## Type of Change 7 | - [ ] Bug fix 8 | - [ ] New feature 9 | - [ ] Breaking change 10 | - [ ] Documentation update 11 | 12 | ## How Has This Been Tested? 13 | Describe the tests that you have conducted to verify your changes. Provide clear instructions to reproduce. 14 | 15 | ## Checklist 16 | - [ ] Code follows the project style guidelines 17 | - [ ] Self-review of the code has been done 18 | - [ ] Changes have been documented 19 | - [ ] Testing has been performed 20 | - [ ] All necessary documentation is updated 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # RCF_Pytorch_Updated 2 | Pytorch re-implementation of RCF. This PyTorch implementation is based on awesome implementation by XuanyiLi. 3 | There were minor performance fixes made in this implementation. 4 | 5 | Major Changes are as follows 6 | 1. Fixing the weights of the upsampling layer [based on work by Weijian Xu for PyTorch HED implementation] 7 | 8 | Initializing the value of upsampling layer each time during training would make the training less stable. In this repo, the upsampling layer weights get initialized only during the model initialization step. 9 | 10 | 2. Setting the parameters of weight_deconv5 as shown below [based on Original RCF Implementation] 11 | 12 | # self.weight_deconv5 = make_bilinear_weights(32, 1).cuda() 13 | self.weight_deconv5 = make_bilinear_weights(16, 1).cuda() 14 | 15 | 3. Setting the initial value of fuse layer as 0.20 [based on Original RCF Implementation] 16 | 4. Modified the crop layer [based on BDCN implementation] 17 | 18 | The above mentioned changes boosted the overall ODS and OIS compared to implementation by XuanyiLi. 19 | 20 | 21 | 22 | ### Results on BSDS Dataset alone 23 | 24 | | Method |ODS F-score on BSDS500 dataset |OIS F-score on BSDS500 dataset| 25 | |:---|:---:|:---:| 26 | |ours| 0.795 | 0.812 | 27 | |meteorshowers[4]| 0.790 | 0.809 | 28 | | Reference[1]| 0.798 | 0.815 | 29 | 30 | 31 | 32 | ### Sample Output 33 | 34 | From Left to Right : 35 | 36 | 1. Original image 37 | 38 | 2. Image output from meteorshowers 39 | 40 | 3. Image output from our repo 41 | 42 |

43 | 44 | 45 | 46 |

47 | 48 | 49 |

50 | 51 | 52 | 53 |

54 | 55 | 56 | As can be seen above, strong edges are detected properly with high confidence and less noise. 57 | 58 | ### Dataset 59 | To download dataset, kindly follow the procedure as mentioned in [1] 60 | 61 | 62 | ### Usage 63 | 64 | #### Edge Detection Pipeline 65 | 66 | To download the vgg16 pretrained backbone model. please click 67 | 68 | https://drive.google.com/file/d/1lUhPKKj-BSOH7yQL0mOIavvrUbjydPp5/view?usp=sharing 69 | 70 | To train a RCF model on BSDS500: 71 | 72 | python train_RCF.py 73 | 74 | If you have multiple GPUs on your machine, you can also run the multi-GPU version training: 75 | 76 | CUDA_VISIBLE_DEVICES=0,1 python train_multi_gpu.py --num_gpus 2 77 | 78 | After training, to evaluate: 79 | 80 | We have used the pipeline suggested by [2]. It's very fast compared to the approach suggested in [1] 81 | The results would vary by about 0.001 due to usage of approach [2], due to different parameter values used in NMS estimation 82 | 83 | 84 | ### To do 85 | To reach the ODS and OIS score mentioned in the paper 86 | 87 | 88 | ### Notes 89 | Run for 10 epochs. That would be sufficient. You could get the mentioned score within 3-8 epochs itself. 90 | 91 | The log file of our training [sgd-0-log.txt] can be viewed to check whether your training is proceeding in similar way. 92 | 93 | ### Acknowledgements: 94 | 95 | [1] Original RCF Implementation 96 | 97 | [2] HED Implementation 98 | 99 | [3] BDCN Implementation 100 | 101 | [4] RCF PyTorch Implementation 102 | 103 | 104 | 105 | ### Citations 106 | 107 | If you are using the code/model/data provided here in a publication, please consider citing original paper: 108 | 109 | @article{liu2019richer, 110 | title={Richer Convolutional Features for Edge Detection}, 111 | author={Liu, Yun and Cheng, Ming-Ming and Hu, Xiaowei and Bian, Jia-Wang and Zhang, Le and Bai, Xiang and Tang, Jinhui}, 112 | journal={IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI)}, 113 | volume={41}, 114 | number={8}, 115 | pages={1939--1946}, 116 | year={2019}, 117 | publisher={IEEE} 118 | } 119 | 120 | @inproceedings{liu2017richer, 121 | title={Richer Convolutional Features for Edge Detection}, 122 | author={Liu, Yun and Cheng, Ming-Ming and Hu, Xiaowei and Wang, Kai and Bai, Xiang}, 123 | booktitle={IEEE conference on computer vision and pattern recognition (CVPR)}, 124 | pages={3000--3009}, 125 | year={2017} 126 | } 127 | -------------------------------------------------------------------------------- /data_loader.py: -------------------------------------------------------------------------------- 1 | from torch.utils import data 2 | import os 3 | from os.path import join, abspath, splitext, split, isdir, isfile 4 | from PIL import Image 5 | import numpy as np 6 | import cv2 7 | 8 | def prepare_image_PIL(im): 9 | im = im[:,:,::-1] - np.zeros_like(im) # rgb to bgr 10 | im -= np.array((104.00698793,116.66876762,122.67891434)) 11 | im = np.transpose(im, (2, 0, 1)) # (H x W x C) to (C x H x W) 12 | return im 13 | 14 | def prepare_image_cv2(im): 15 | im -= np.array((104.00698793,116.66876762,122.67891434)) 16 | im = np.transpose(im, (2, 0, 1)) # (H x W x C) to (C x H x W) 17 | return im 18 | 19 | 20 | class BSDS_RCFLoader(data.Dataset): 21 | """ 22 | Dataloader BSDS500 23 | """ 24 | def __init__(self, root='data/HED-BSDS_PASCAL', split='train', transform=False): 25 | self.root = root 26 | self.split = split 27 | self.transform = transform 28 | if self.split == 'train': 29 | self.filelist = join(self.root, 'train_pair.lst') 30 | elif self.split == 'test': 31 | self.filelist = join(self.root, 'test.lst') 32 | else: 33 | raise ValueError("Invalid split type!") 34 | with open(self.filelist, 'r') as f: 35 | self.filelist = f.readlines() 36 | 37 | def __len__(self): 38 | return len(self.filelist) 39 | 40 | def __getitem__(self, index): 41 | if self.split == "train": 42 | img_file, lb_file = self.filelist[index].split() 43 | lb = np.array(Image.open(join(self.root, lb_file)), dtype=np.float32) 44 | if lb.ndim == 3: 45 | lb = np.squeeze(lb[:, :, 0]) 46 | assert lb.ndim == 2 47 | lb = lb[np.newaxis, :, :] 48 | lb[lb == 0] = 0 49 | lb[np.logical_and(lb>0, lb<127.5)] = 2 50 | lb[lb >= 127.5] = 1 51 | else: 52 | img_file = self.filelist[index].rstrip() 53 | 54 | if self.split == "train": 55 | img = np.array(cv2.imread(join(self.root, img_file)), dtype=np.float32) 56 | img = prepare_image_cv2(img) 57 | return img, lb 58 | else: 59 | img = np.array(Image.open(join(self.root, img_file)), dtype=np.float32) 60 | img = prepare_image_PIL(img) 61 | return img 62 | 63 | -------------------------------------------------------------------------------- /functions.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import torch 3 | from torch.optim.optimizer import Optimizer, required 4 | 5 | def cross_entropy_loss_RCF(prediction, label): 6 | label = label.long() 7 | mask = label.float() 8 | num_positive = torch.sum((mask==1).float()).float() 9 | num_negative = torch.sum((mask==0).float()).float() 10 | 11 | mask[mask == 1] = 1.0 * num_negative / (num_positive + num_negative) 12 | mask[mask == 0] = 1.1 * num_positive / (num_positive + num_negative) 13 | mask[mask == 2] = 0 14 | cost = torch.nn.functional.binary_cross_entropy( 15 | prediction.float(),label.float(), weight=mask, reduce=False) 16 | return torch.sum(cost) 17 | 18 | class SGD_caffe(Optimizer): 19 | r"""Implements stochastic gradient descent (optionally with momentum). 20 | 21 | Nesterov momentum is based on the formula from 22 | `On the importance of initialization and momentum in deep learning`__. 23 | 24 | Args: 25 | params (iterable): iterable of parameters to optimize or dicts defining 26 | parameter groups 27 | lr (float): learning rate 28 | momentum (float, optional): momentum factor (default: 0) 29 | weight_decay (float, optional): weight decay (L2 penalty) (default: 0) 30 | dampening (float, optional): dampening for momentum (default: 0) 31 | nesterov (bool, optional): enables Nesterov momentum (default: False) 32 | 33 | Example: 34 | >>> optimizer = torch.optim.SGD(model.parameters(), lr=0.1, momentum=0.9) 35 | >>> optimizer.zero_grad() 36 | >>> loss_fn(model(input), target).backward() 37 | >>> optimizer.step() 38 | 39 | __ http://www.cs.toronto.edu/%7Ehinton/absps/momentum.pdf 40 | 41 | .. note:: 42 | The implementation of SGD with Momentum/Nesterov subtly differs from 43 | Sutskever et. al. and implementations in some other frameworks. 44 | 45 | Considering the specific case of Momentum, the update can be written as 46 | 47 | .. math:: 48 | v = \rho * v + g \\ 49 | p = p - lr * v 50 | 51 | where p, g, v and :math:`\rho` denote the parameters, gradient, 52 | velocity, and momentum respectively. 53 | 54 | This is in contrast to Sutskever et. al. and 55 | other frameworks which employ an update of the form 56 | 57 | .. math:: 58 | v = \rho * v + lr * g \\ 59 | p = p - v 60 | 61 | The Nesterov version is analogously modified. 62 | """ 63 | 64 | def __init__(self, params, lr=required, momentum=0, dampening=0, 65 | weight_decay=0, nesterov=False): 66 | if lr is not required and lr < 0.0: 67 | raise ValueError("Invalid learning rate: {}".format(lr)) 68 | if momentum < 0.0: 69 | raise ValueError("Invalid momentum value: {}".format(momentum)) 70 | if weight_decay < 0.0: 71 | raise ValueError("Invalid weight_decay value: {}".format(weight_decay)) 72 | 73 | defaults = dict(lr=lr, momentum=momentum, dampening=dampening, 74 | weight_decay=weight_decay, nesterov=nesterov) 75 | if nesterov and (momentum <= 0 or dampening != 0): 76 | raise ValueError("Nesterov momentum requires a momentum and zero dampening") 77 | super(SGD_caffe, self).__init__(params, defaults) 78 | 79 | def __setstate__(self, state): 80 | super(SGD_caffe, self).__setstate__(state) 81 | for group in self.param_groups: 82 | group.setdefault('nesterov', False) 83 | 84 | def step(self, closure=None): 85 | """Performs a single optimization step. 86 | 87 | Arguments: 88 | closure (callable, optional): A closure that reevaluates the model 89 | and returns the loss. 90 | """ 91 | loss = None 92 | if closure is not None: 93 | loss = closure() 94 | 95 | for group in self.param_groups: 96 | weight_decay = group['weight_decay'] 97 | momentum = group['momentum'] 98 | dampening = group['dampening'] 99 | nesterov = group['nesterov'] 100 | 101 | for p in group['params']: 102 | if p.grad is None: 103 | continue 104 | d_p = p.grad.data 105 | if weight_decay != 0: 106 | d_p.add_(weight_decay, p.data) 107 | if momentum != 0: 108 | param_state = self.state[p] 109 | if 'momentum_buffer' not in param_state: 110 | buf = param_state['momentum_buffer'] = torch.zeros_like(p.data) 111 | buf.mul_(momentum).add_(group['lr'], d_p) 112 | else: 113 | buf = param_state['momentum_buffer'] 114 | buf.mul_(momentum).add_(group['lr'], d_p) 115 | if nesterov: 116 | d_p = d_p.add(momentum, buf) 117 | else: 118 | d_p = buf 119 | 120 | p.data.add_(-1, d_p) 121 | 122 | return loss 123 | -------------------------------------------------------------------------------- /models.py: -------------------------------------------------------------------------------- 1 | import os, sys 2 | import torch 3 | import torch.nn as nn 4 | import torchvision.models as models 5 | import torch.autograd.variable as Variable 6 | import numpy as np 7 | import scipy.io as sio 8 | from torch.nn.modules.conv import _ConvNd 9 | from torch.nn.modules.conv import _single, _pair, _triple 10 | import torch.nn.functional as F 11 | 12 | 13 | class RCF(nn.Module): 14 | def __init__(self): 15 | super(RCF, self).__init__() 16 | #lr 1 2 decay 1 0 17 | self.conv1_1 = nn.Conv2d(3, 64, 3, padding=1) 18 | self.conv1_2 = nn.Conv2d(64, 64, 3, padding=1) 19 | 20 | self.conv2_1 = nn.Conv2d(64, 128, 3, padding=1) 21 | self.conv2_2 = nn.Conv2d(128, 128, 3, padding=1) 22 | 23 | self.conv3_1 = nn.Conv2d(128, 256, 3, padding=1) 24 | self.conv3_2 = nn.Conv2d(256, 256, 3, padding=1) 25 | self.conv3_3 = nn.Conv2d(256, 256, 3, padding=1) 26 | 27 | self.conv4_1 = nn.Conv2d(256, 512, 3, padding=1) 28 | self.conv4_2 = nn.Conv2d(512, 512, 3, padding=1) 29 | self.conv4_3 = nn.Conv2d(512, 512, 3, padding=1) 30 | 31 | self.conv5_1 = nn.Conv2d(512, 512, kernel_size=3, 32 | stride=1, padding=2, dilation=2) 33 | self.conv5_2 = nn.Conv2d(512, 512, kernel_size=3, 34 | stride=1, padding=2, dilation=2) 35 | self.conv5_3 = nn.Conv2d(512, 512, kernel_size=3, 36 | stride=1, padding=2, dilation=2) 37 | 38 | self.activ = nn.ReLU(inplace=True) 39 | 40 | self.maxpool4 = nn.MaxPool2d(2, stride=1, ceil_mode=True) 41 | self.maxpool_1 = nn.MaxPool2d(2, stride=2, ceil_mode=True) 42 | self.maxpool_2 = nn.MaxPool2d(2, stride=2, ceil_mode=True) 43 | self.maxpool_3 = nn.MaxPool2d(2, stride=2, ceil_mode=True) 44 | 45 | #lr 0.1 0.2 decay 1 0 46 | self.conv1_1_down = nn.Conv2d(64, 21, 1, padding=0) 47 | self.conv1_2_down = nn.Conv2d(64, 21, 1, padding=0) 48 | 49 | self.conv2_1_down = nn.Conv2d(128, 21, 1, padding=0) 50 | self.conv2_2_down = nn.Conv2d(128, 21, 1, padding=0) 51 | 52 | self.conv3_1_down = nn.Conv2d(256, 21, 1, padding=0) 53 | self.conv3_2_down = nn.Conv2d(256, 21, 1, padding=0) 54 | self.conv3_3_down = nn.Conv2d(256, 21, 1, padding=0) 55 | 56 | self.conv4_1_down = nn.Conv2d(512, 21, 1, padding=0) 57 | self.conv4_2_down = nn.Conv2d(512, 21, 1, padding=0) 58 | self.conv4_3_down = nn.Conv2d(512, 21, 1, padding=0) 59 | 60 | self.conv5_1_down = nn.Conv2d(512, 21, 1, padding=0) 61 | self.conv5_2_down = nn.Conv2d(512, 21, 1, padding=0) 62 | self.conv5_3_down = nn.Conv2d(512, 21, 1, padding=0) 63 | 64 | #lr 0.01 0.02 decay 1 0 65 | self.score_dsn1 = nn.Conv2d(21, 1, 1) 66 | self.score_dsn2 = nn.Conv2d(21, 1, 1) 67 | self.score_dsn3 = nn.Conv2d(21, 1, 1) 68 | self.score_dsn4 = nn.Conv2d(21, 1, 1) 69 | self.score_dsn5 = nn.Conv2d(21, 1, 1) 70 | #lr 0.001 0.002 decay 1 0 71 | self.score_final = nn.Conv2d(5, 1, 1) 72 | 73 | ## Fixed the upsampling weights for the training process as per @https://github.com/xwjabc/hed 74 | self.weight_deconv2 = make_bilinear_weights(4, 1).cuda() 75 | self.weight_deconv3 = make_bilinear_weights(8, 1).cuda() 76 | self.weight_deconv4 = make_bilinear_weights(16, 1).cuda() 77 | # Wrong Deconv Filter size. Updated from RCF yun_liu 78 | # self.weight_deconv5 = make_bilinear_weights(32, 1).cuda() 79 | self.weight_deconv5 = make_bilinear_weights(16, 1).cuda() 80 | 81 | def forward(self, x): 82 | # VGG 83 | img_H, img_W = x.shape[2], x.shape[3] 84 | conv1_1 = self.activ(self.conv1_1(x)) 85 | conv1_2 = self.activ(self.conv1_2(conv1_1)) 86 | pool1 = self.maxpool_1(conv1_2) 87 | 88 | conv2_1 = self.activ(self.conv2_1(pool1)) 89 | conv2_2 = self.activ(self.conv2_2(conv2_1)) 90 | pool2 = self.maxpool_2(conv2_2) 91 | 92 | conv3_1 = self.activ(self.conv3_1(pool2)) 93 | conv3_2 = self.activ(self.conv3_2(conv3_1)) 94 | conv3_3 = self.activ(self.conv3_3(conv3_2)) 95 | pool3 = self.maxpool_3(conv3_3) 96 | 97 | conv4_1 = self.activ(self.conv4_1(pool3)) 98 | conv4_2 = self.activ(self.conv4_2(conv4_1)) 99 | conv4_3 = self.activ(self.conv4_3(conv4_2)) 100 | pool4 = self.maxpool4(conv4_3) 101 | 102 | conv5_1 = self.activ(self.conv5_1(pool4)) 103 | conv5_2 = self.activ(self.conv5_2(conv5_1)) 104 | conv5_3 = self.activ(self.conv5_3(conv5_2)) 105 | 106 | conv1_1_down = self.conv1_1_down(conv1_1) 107 | conv1_2_down = self.conv1_2_down(conv1_2) 108 | conv2_1_down = self.conv2_1_down(conv2_1) 109 | conv2_2_down = self.conv2_2_down(conv2_2) 110 | conv3_1_down = self.conv3_1_down(conv3_1) 111 | conv3_2_down = self.conv3_2_down(conv3_2) 112 | conv3_3_down = self.conv3_3_down(conv3_3) 113 | conv4_1_down = self.conv4_1_down(conv4_1) 114 | conv4_2_down = self.conv4_2_down(conv4_2) 115 | conv4_3_down = self.conv4_3_down(conv4_3) 116 | conv5_1_down = self.conv5_1_down(conv5_1) 117 | conv5_2_down = self.conv5_2_down(conv5_2) 118 | conv5_3_down = self.conv5_3_down(conv5_3) 119 | 120 | so1_out = self.score_dsn1(conv1_1_down + conv1_2_down) 121 | so2_out = self.score_dsn2(conv2_1_down + conv2_2_down) 122 | so3_out = self.score_dsn3(conv3_1_down + conv3_2_down + conv3_3_down) 123 | so4_out = self.score_dsn4(conv4_1_down + conv4_2_down + conv4_3_down) 124 | so5_out = self.score_dsn5(conv5_1_down + conv5_2_down + conv5_3_down) 125 | 126 | upsample2 = torch.nn.functional.conv_transpose2d(so2_out, self.weight_deconv2, stride=2) 127 | upsample3 = torch.nn.functional.conv_transpose2d(so3_out, self.weight_deconv3, stride=4) 128 | upsample4 = torch.nn.functional.conv_transpose2d(so4_out, self.weight_deconv4, stride=8) 129 | upsample5 = torch.nn.functional.conv_transpose2d(so5_out, self.weight_deconv5, stride=8) 130 | 131 | ### center crop 132 | so1 = crop(so1_out, img_H, img_W, 0 , 0) 133 | so2 = crop(upsample2, img_H, img_W , 1, 1 ) 134 | so3 = crop(upsample3, img_H, img_W , 2, 2 ) 135 | so4 = crop(upsample4, img_H, img_W , 4, 4) 136 | so5 = crop(upsample5, img_H, img_W , 0, 0) 137 | 138 | fusecat = torch.cat((so1, so2, so3, so4, so5), dim=1) 139 | fuse = self.score_final(fusecat) 140 | results = [so1, so2, so3, so4, so5, fuse] 141 | results = [torch.sigmoid(r) for r in results] 142 | return results 143 | 144 | # Based on BDCN Implementation @ https://github.com/pkuCactus/BDCN 145 | def crop(data1, h, w , crop_h, crop_w): 146 | _, _, h1, w1 = data1.size() 147 | assert(h <= h1 and w <= w1) 148 | data = data1[:, :, crop_h:crop_h+h, crop_w:crop_w+w] 149 | return data 150 | 151 | def make_bilinear_weights(size, num_channels): 152 | factor = (size + 1) // 2 153 | if size % 2 == 1: 154 | center = factor - 1 155 | else: 156 | center = factor - 0.5 157 | og = np.ogrid[:size, :size] 158 | filt = (1 - abs(og[0] - center) / factor) * (1 - abs(og[1] - center) / factor) 159 | # print(filt) 160 | filt = torch.from_numpy(filt) 161 | w = torch.zeros(num_channels, num_channels, size, size) 162 | w.requires_grad = False 163 | for i in range(num_channels): 164 | for j in range(num_channels): 165 | if i == j: 166 | w[i, j] = filt 167 | return w 168 | 169 | def upsample(input, stride, num_channels=1): 170 | kernel_size = stride * 2 171 | kernel = make_bilinear_weights(kernel_size, num_channels).cuda() 172 | return torch.nn.functional.conv_transpose2d(input, kernel, stride=stride) 173 | -------------------------------------------------------------------------------- /results/43051.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/balajiselvaraj1601/RCF_Pytorch_Updated/6d21bc53fdda1e3ffcb5d51425a703c166827599/results/43051.jpg -------------------------------------------------------------------------------- /results/43051_meteorshowers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/balajiselvaraj1601/RCF_Pytorch_Updated/6d21bc53fdda1e3ffcb5d51425a703c166827599/results/43051_meteorshowers.png -------------------------------------------------------------------------------- /results/43051_ours.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/balajiselvaraj1601/RCF_Pytorch_Updated/6d21bc53fdda1e3ffcb5d51425a703c166827599/results/43051_ours.png -------------------------------------------------------------------------------- /results/8068.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/balajiselvaraj1601/RCF_Pytorch_Updated/6d21bc53fdda1e3ffcb5d51425a703c166827599/results/8068.jpg -------------------------------------------------------------------------------- /results/8068_meteorshowers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/balajiselvaraj1601/RCF_Pytorch_Updated/6d21bc53fdda1e3ffcb5d51425a703c166827599/results/8068_meteorshowers.png -------------------------------------------------------------------------------- /results/8068_ours.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/balajiselvaraj1601/RCF_Pytorch_Updated/6d21bc53fdda1e3ffcb5d51425a703c166827599/results/8068_ours.png -------------------------------------------------------------------------------- /sgd-0-log.txt: -------------------------------------------------------------------------------- 1 | Epoch: [0/30][0/28800] Time 0.242 (avg:0.242) Loss 659.617615 (avg:659.617615) 2 | Epoch: [0/30][1000/28800] Time 0.015 (avg:0.042) Loss 1.091052 (avg:247.256880) 3 | Epoch: [0/30][2000/28800] Time 0.032 (avg:0.043) Loss 213.841949 (avg:236.623477) 4 | Epoch: [0/30][3000/28800] Time 0.022 (avg:0.043) Loss 0.406745 (avg:225.637766) 5 | Epoch: [0/30][4000/28800] Time 0.032 (avg:0.043) Loss 114.511169 (avg:222.910042) 6 | Epoch: [0/30][5000/28800] Time 0.057 (avg:0.044) Loss 891.106079 (avg:219.486073) 7 | Epoch: [0/30][6000/28800] Time 0.035 (avg:0.044) Loss 138.956085 (avg:216.917924) 8 | Epoch: [0/30][7000/28800] Time 0.076 (avg:0.044) Loss 102.660843 (avg:215.089510) 9 | Epoch: [0/30][8000/28800] Time 0.033 (avg:0.044) Loss 129.993881 (avg:212.054536) 10 | Epoch: [0/30][9000/28800] Time 0.058 (avg:0.045) Loss 686.932800 (avg:210.090633) 11 | Epoch: [0/30][10000/28800] Time 0.014 (avg:0.045) Loss 12.060019 (avg:208.512276) 12 | Epoch: [0/30][11000/28800] Time 0.037 (avg:0.045) Loss 227.576279 (avg:207.665533) 13 | Epoch: [0/30][12000/28800] Time 0.026 (avg:0.045) Loss 0.428115 (avg:206.531110) 14 | Epoch: [0/30][13000/28800] Time 0.021 (avg:0.044) Loss 0.000000 (avg:204.154579) 15 | Epoch: [0/30][14000/28800] Time 0.075 (avg:0.044) Loss 247.017288 (avg:202.867508) 16 | Epoch: [0/30][15000/28800] Time 0.033 (avg:0.044) Loss 380.620453 (avg:201.577407) 17 | Epoch: [0/30][16000/28800] Time 0.063 (avg:0.044) Loss 222.053864 (avg:201.687163) 18 | Epoch: [0/30][17000/28800] Time 0.057 (avg:0.044) Loss 410.506165 (avg:201.101345) 19 | Epoch: [0/30][18000/28800] Time 0.015 (avg:0.044) Loss 17.961992 (avg:199.993459) 20 | Epoch: [0/30][19000/28800] Time 0.024 (avg:0.044) Loss 0.367837 (avg:199.087686) 21 | Epoch: [0/30][20000/28800] Time 0.119 (avg:0.044) Loss 423.319916 (avg:198.138197) 22 | Epoch: [0/30][21000/28800] Time 0.065 (avg:0.044) Loss 239.994736 (avg:197.415776) 23 | Epoch: [0/30][22000/28800] Time 0.013 (avg:0.044) Loss 1.937604 (avg:196.443025) 24 | Epoch: [0/30][23000/28800] Time 0.016 (avg:0.044) Loss 19.542868 (avg:195.861083) 25 | Epoch: [0/30][24000/28800] Time 0.032 (avg:0.044) Loss 266.476288 (avg:195.617260) 26 | Epoch: [0/30][25000/28800] Time 0.057 (avg:0.044) Loss 258.401489 (avg:194.828976) 27 | Epoch: [0/30][26000/28800] Time 0.031 (avg:0.044) Loss 301.813690 (avg:193.649964) 28 | Epoch: [0/30][27000/28800] Time 0.014 (avg:0.044) Loss 0.994663 (avg:192.888937) 29 | Epoch: [0/30][28000/28800] Time 0.014 (avg:0.044) Loss 3.026277 (avg:192.053858) 30 | Epoch: [1/30][0/28800] Time 0.177 (avg:0.177) Loss 1.066520 (avg:1.066520) 31 | Epoch: [1/30][1000/28800] Time 0.036 (avg:0.043) Loss 220.907104 (avg:180.973512) 32 | Epoch: [1/30][2000/28800] Time 0.064 (avg:0.042) Loss 68.850945 (avg:175.686026) 33 | Epoch: [1/30][3000/28800] Time 0.016 (avg:0.042) Loss 0.770612 (avg:172.737511) 34 | Epoch: [1/30][4000/28800] Time 0.075 (avg:0.043) Loss 116.654030 (avg:174.098601) 35 | Epoch: [1/30][5000/28800] Time 0.056 (avg:0.043) Loss 85.747810 (avg:175.288912) 36 | Epoch: [1/30][6000/28800] Time 0.041 (avg:0.042) Loss 200.032913 (avg:174.180242) 37 | Epoch: [1/30][7000/28800] Time 0.014 (avg:0.042) Loss 10.988256 (avg:171.730998) 38 | Epoch: [1/30][8000/28800] Time 0.016 (avg:0.042) Loss 7.046596 (avg:171.158601) 39 | Epoch: [1/30][9000/28800] Time 0.032 (avg:0.042) Loss 110.407410 (avg:172.798658) 40 | Epoch: [1/30][10000/28800] Time 0.015 (avg:0.042) Loss 13.129516 (avg:171.621092) 41 | Epoch: [1/30][11000/28800] Time 0.014 (avg:0.042) Loss 0.699045 (avg:173.037440) 42 | Epoch: [1/30][12000/28800] Time 0.031 (avg:0.042) Loss 376.635345 (avg:172.929699) 43 | Epoch: [1/30][13000/28800] Time 0.024 (avg:0.042) Loss 0.255425 (avg:172.912842) 44 | Epoch: [1/30][14000/28800] Time 0.036 (avg:0.042) Loss 113.670525 (avg:172.493613) 45 | Epoch: [1/30][15000/28800] Time 0.059 (avg:0.043) Loss 157.917328 (avg:173.737301) 46 | Epoch: [1/30][16000/28800] Time 0.015 (avg:0.042) Loss 1.583478 (avg:173.076851) 47 | Epoch: [1/30][17000/28800] Time 0.031 (avg:0.042) Loss 131.791168 (avg:172.213995) 48 | Epoch: [1/30][18000/28800] Time 0.015 (avg:0.042) Loss 1.970533 (avg:171.611332) 49 | Epoch: [1/30][19000/28800] Time 0.056 (avg:0.042) Loss 838.248047 (avg:171.386506) 50 | Epoch: [1/30][20000/28800] Time 0.065 (avg:0.042) Loss 125.642899 (avg:171.540818) 51 | Epoch: [1/30][21000/28800] Time 0.014 (avg:0.042) Loss 1.264588 (avg:170.795951) 52 | Epoch: [1/30][22000/28800] Time 0.064 (avg:0.043) Loss 83.850456 (avg:171.729029) 53 | Epoch: [1/30][23000/28800] Time 0.035 (avg:0.043) Loss 106.865639 (avg:171.322562) 54 | Epoch: [1/30][24000/28800] Time 0.036 (avg:0.043) Loss 413.928284 (avg:171.390660) 55 | Epoch: [1/30][25000/28800] Time 0.022 (avg:0.043) Loss 0.682184 (avg:171.142743) 56 | Epoch: [1/30][26000/28800] Time 0.022 (avg:0.043) Loss 0.812464 (avg:171.291137) 57 | Epoch: [1/30][27000/28800] Time 0.031 (avg:0.043) Loss 186.824127 (avg:171.136001) 58 | Epoch: [1/30][28000/28800] Time 0.014 (avg:0.043) Loss 0.411901 (avg:170.978973) 59 | Epoch: [2/30][0/28800] Time 0.172 (avg:0.172) Loss 0.000000 (avg:0.000000) 60 | Epoch: [2/30][1000/28800] Time 0.049 (avg:0.044) Loss 186.523163 (avg:168.629108) 61 | Epoch: [2/30][2000/28800] Time 0.049 (avg:0.042) Loss 101.177086 (avg:160.097500) 62 | Epoch: [2/30][3000/28800] Time 0.035 (avg:0.042) Loss 108.997643 (avg:157.235520) 63 | Epoch: [2/30][4000/28800] Time 0.042 (avg:0.042) Loss 321.805756 (avg:157.211134) 64 | Epoch: [2/30][5000/28800] Time 0.042 (avg:0.042) Loss 287.011597 (avg:158.730532) 65 | Epoch: [2/30][6000/28800] Time 0.120 (avg:0.042) Loss 255.364700 (avg:159.536984) 66 | Epoch: [2/30][7000/28800] Time 0.056 (avg:0.042) Loss 426.674316 (avg:161.047257) 67 | Epoch: [2/30][8000/28800] Time 0.023 (avg:0.042) Loss 0.000000 (avg:162.089389) 68 | Epoch: [2/30][9000/28800] Time 0.087 (avg:0.042) Loss 505.905609 (avg:163.107473) 69 | Epoch: [2/30][10000/28800] Time 0.036 (avg:0.043) Loss 202.474930 (avg:163.431300) 70 | Epoch: [2/30][11000/28800] Time 0.033 (avg:0.043) Loss 170.717346 (avg:162.605800) 71 | Epoch: [2/30][12000/28800] Time 0.037 (avg:0.043) Loss 281.022980 (avg:161.870717) 72 | Epoch: [2/30][13000/28800] Time 0.048 (avg:0.043) Loss 255.065308 (avg:161.907090) 73 | Epoch: [2/30][14000/28800] Time 0.087 (avg:0.043) Loss 176.589981 (avg:162.488952) 74 | Epoch: [2/30][15000/28800] Time 0.014 (avg:0.043) Loss 4.899400 (avg:163.677783) 75 | Epoch: [2/30][16000/28800] Time 0.013 (avg:0.043) Loss 4.343246 (avg:163.577525) 76 | Epoch: [2/30][17000/28800] Time 0.014 (avg:0.043) Loss 16.766474 (avg:163.104783) 77 | Epoch: [2/30][18000/28800] Time 0.035 (avg:0.043) Loss 37.025738 (avg:162.851683) 78 | Epoch: [2/30][19000/28800] Time 0.065 (avg:0.043) Loss 238.615555 (avg:163.307841) 79 | Epoch: [2/30][20000/28800] Time 0.052 (avg:0.043) Loss 578.762878 (avg:162.891985) 80 | Epoch: [2/30][21000/28800] Time 0.032 (avg:0.043) Loss 104.864639 (avg:163.079996) 81 | Epoch: [2/30][22000/28800] Time 0.056 (avg:0.043) Loss 241.037796 (avg:163.106993) 82 | Epoch: [2/30][23000/28800] Time 0.036 (avg:0.043) Loss 121.762352 (avg:162.683356) 83 | Epoch: [2/30][24000/28800] Time 0.031 (avg:0.043) Loss 159.760437 (avg:162.307596) 84 | Epoch: [2/30][25000/28800] Time 0.015 (avg:0.043) Loss 2.396573 (avg:161.930971) 85 | Epoch: [2/30][26000/28800] Time 0.016 (avg:0.043) Loss 17.902245 (avg:161.744600) 86 | Epoch: [2/30][27000/28800] Time 0.087 (avg:0.043) Loss 805.128540 (avg:161.729340) 87 | Epoch: [2/30][28000/28800] Time 0.032 (avg:0.043) Loss 214.010422 (avg:161.123785) 88 | Epoch: [3/30][0/28800] Time 0.173 (avg:0.173) Loss 4.829380 (avg:4.829380) 89 | Epoch: [3/30][1000/28800] Time 0.021 (avg:0.044) Loss 0.000000 (avg:170.511660) 90 | Epoch: [3/30][2000/28800] Time 0.059 (avg:0.043) Loss 87.426689 (avg:153.615781) 91 | Epoch: [3/30][3000/28800] Time 0.036 (avg:0.043) Loss 116.952538 (avg:152.688472) 92 | Epoch: [3/30][4000/28800] Time 0.056 (avg:0.043) Loss 59.627083 (avg:155.605617) 93 | Epoch: [3/30][5000/28800] Time 0.057 (avg:0.043) Loss 147.131653 (avg:154.940550) 94 | Epoch: [3/30][6000/28800] Time 0.065 (avg:0.043) Loss 121.371178 (avg:154.354279) 95 | Epoch: [3/30][7000/28800] Time 0.014 (avg:0.043) Loss 0.000000 (avg:153.737176) 96 | Epoch: [3/30][8000/28800] Time 0.052 (avg:0.043) Loss 391.691193 (avg:153.616634) 97 | Epoch: [3/30][9000/28800] Time 0.018 (avg:0.043) Loss 3.669242 (avg:153.054551) 98 | Epoch: [3/30][10000/28800] Time 0.026 (avg:0.043) Loss 0.229994 (avg:154.360975) 99 | Epoch: [3/30][11000/28800] Time 0.031 (avg:0.043) Loss 369.001587 (avg:154.175349) 100 | Epoch: [3/30][12000/28800] Time 0.014 (avg:0.043) Loss 2.747590 (avg:153.254340) 101 | Epoch: [3/30][13000/28800] Time 0.076 (avg:0.043) Loss 112.431763 (avg:153.048555) 102 | Epoch: [3/30][14000/28800] Time 0.057 (avg:0.043) Loss 107.985619 (avg:152.856315) 103 | Epoch: [3/30][15000/28800] Time 0.056 (avg:0.043) Loss 141.955063 (avg:152.888933) 104 | Epoch: [3/30][16000/28800] Time 0.031 (avg:0.043) Loss 122.879433 (avg:153.183586) 105 | Epoch: [3/30][17000/28800] Time 0.052 (avg:0.043) Loss 247.930786 (avg:152.994933) 106 | Epoch: [3/30][18000/28800] Time 0.050 (avg:0.043) Loss 197.689056 (avg:153.294607) 107 | Epoch: [3/30][19000/28800] Time 0.042 (avg:0.043) Loss 285.385590 (avg:153.621778) 108 | Epoch: [3/30][20000/28800] Time 0.031 (avg:0.043) Loss 163.882462 (avg:153.253161) 109 | Epoch: [3/30][21000/28800] Time 0.014 (avg:0.043) Loss 4.569673 (avg:153.152495) 110 | Epoch: [3/30][22000/28800] Time 0.066 (avg:0.043) Loss 631.365356 (avg:153.163109) 111 | Epoch: [3/30][23000/28800] Time 0.015 (avg:0.043) Loss 2.708856 (avg:153.106605) 112 | Epoch: [3/30][24000/28800] Time 0.056 (avg:0.043) Loss 308.955902 (avg:152.335462) 113 | Epoch: [3/30][25000/28800] Time 0.064 (avg:0.043) Loss 171.953278 (avg:152.573734) 114 | Epoch: [3/30][26000/28800] Time 0.066 (avg:0.043) Loss 542.520935 (avg:152.579935) 115 | Epoch: [3/30][27000/28800] Time 0.014 (avg:0.043) Loss 3.017154 (avg:152.847884) 116 | Epoch: [3/30][28000/28800] Time 0.087 (avg:0.043) Loss 435.909668 (avg:152.583704) 117 | Epoch: [4/30][0/28800] Time 0.174 (avg:0.174) Loss 0.982344 (avg:0.982344) 118 | Epoch: [4/30][1000/28800] Time 0.016 (avg:0.041) Loss 9.418994 (avg:143.789303) 119 | Epoch: [4/30][2000/28800] Time 0.049 (avg:0.042) Loss 193.380005 (avg:148.420133) 120 | Epoch: [4/30][3000/28800] Time 0.031 (avg:0.043) Loss 87.747650 (avg:149.309974) 121 | Epoch: [4/30][4000/28800] Time 0.051 (avg:0.043) Loss 527.788513 (avg:152.476399) 122 | Epoch: [4/30][5000/28800] Time 0.017 (avg:0.043) Loss 1.715785 (avg:152.566318) 123 | Epoch: [4/30][6000/28800] Time 0.032 (avg:0.043) Loss 227.813385 (avg:152.988506) 124 | Epoch: [4/30][7000/28800] Time 0.052 (avg:0.043) Loss 421.555176 (avg:154.446202) 125 | Epoch: [4/30][8000/28800] Time 0.021 (avg:0.043) Loss 0.169067 (avg:154.362194) 126 | Epoch: [4/30][9000/28800] Time 0.056 (avg:0.043) Loss 70.824638 (avg:154.223116) 127 | Epoch: [4/30][10000/28800] Time 0.056 (avg:0.043) Loss 68.818848 (avg:154.506226) 128 | Epoch: [4/30][11000/28800] Time 0.014 (avg:0.043) Loss 13.975116 (avg:154.000145) 129 | Epoch: [4/30][12000/28800] Time 0.066 (avg:0.043) Loss 405.785797 (avg:153.170884) 130 | Epoch: [4/30][13000/28800] Time 0.058 (avg:0.043) Loss 229.945465 (avg:153.403125) 131 | Epoch: [4/30][14000/28800] Time 0.014 (avg:0.043) Loss 0.775555 (avg:153.479509) 132 | Epoch: [4/30][15000/28800] Time 0.027 (avg:0.043) Loss 1.350904 (avg:153.368176) 133 | Epoch: [4/30][16000/28800] Time 0.036 (avg:0.043) Loss 142.193100 (avg:153.316420) 134 | Epoch: [4/30][17000/28800] Time 0.066 (avg:0.043) Loss 156.336945 (avg:153.174035) 135 | Epoch: [4/30][18000/28800] Time 0.025 (avg:0.043) Loss 1.343908 (avg:152.646319) 136 | Epoch: [4/30][19000/28800] Time 0.056 (avg:0.043) Loss 382.316772 (avg:152.022305) 137 | Epoch: [4/30][20000/28800] Time 0.026 (avg:0.043) Loss 0.000000 (avg:152.045801) 138 | Epoch: [4/30][21000/28800] Time 0.025 (avg:0.043) Loss 0.549782 (avg:151.970350) 139 | Epoch: [4/30][22000/28800] Time 0.016 (avg:0.043) Loss 2.803649 (avg:151.508970) 140 | Epoch: [4/30][23000/28800] Time 0.017 (avg:0.043) Loss 5.213553 (avg:151.421002) 141 | Epoch: [4/30][24000/28800] Time 0.060 (avg:0.043) Loss 52.445831 (avg:151.106472) 142 | Epoch: [4/30][25000/28800] Time 0.036 (avg:0.043) Loss 292.474457 (avg:150.903903) 143 | Epoch: [4/30][26000/28800] Time 0.021 (avg:0.043) Loss 0.985871 (avg:150.830614) 144 | Epoch: [4/30][27000/28800] Time 0.055 (avg:0.043) Loss 735.160950 (avg:150.937013) 145 | Epoch: [4/30][28000/28800] Time 0.032 (avg:0.043) Loss 229.996811 (avg:151.326135) 146 | Epoch: [5/30][0/28800] Time 0.300 (avg:0.300) Loss 357.013367 (avg:357.013367) 147 | Epoch: [5/30][1000/28800] Time 0.014 (avg:0.043) Loss 10.818632 (avg:143.126088) 148 | Epoch: [5/30][2000/28800] Time 0.031 (avg:0.043) Loss 219.177399 (avg:145.537502) 149 | Epoch: [5/30][3000/28800] Time 0.055 (avg:0.042) Loss 99.332481 (avg:143.547908) 150 | Epoch: [5/30][4000/28800] Time 0.015 (avg:0.042) Loss 0.667727 (avg:146.247054) 151 | Epoch: [5/30][5000/28800] Time 0.024 (avg:0.042) Loss 0.995017 (avg:145.486742) 152 | Epoch: [5/30][6000/28800] Time 0.021 (avg:0.042) Loss 0.000000 (avg:147.337641) 153 | Epoch: [5/30][7000/28800] Time 0.121 (avg:0.043) Loss 463.303711 (avg:148.907971) 154 | Epoch: [5/30][8000/28800] Time 0.064 (avg:0.043) Loss 171.471710 (avg:149.453944) 155 | Epoch: [5/30][9000/28800] Time 0.014 (avg:0.043) Loss 3.137382 (avg:149.537676) 156 | Epoch: [5/30][10000/28800] Time 0.120 (avg:0.043) Loss 376.995422 (avg:148.413842) 157 | Epoch: [5/30][11000/28800] Time 0.016 (avg:0.042) Loss 0.810440 (avg:147.441487) 158 | Epoch: [5/30][12000/28800] Time 0.053 (avg:0.043) Loss 373.879761 (avg:148.163119) 159 | Epoch: [5/30][13000/28800] Time 0.120 (avg:0.043) Loss 238.676987 (avg:147.656154) 160 | Epoch: [5/30][14000/28800] Time 0.031 (avg:0.043) Loss 197.768082 (avg:148.050233) 161 | Epoch: [5/30][15000/28800] Time 0.088 (avg:0.043) Loss 127.370949 (avg:148.540782) 162 | Epoch: [5/30][16000/28800] Time 0.036 (avg:0.043) Loss 183.039719 (avg:149.350547) 163 | Epoch: [5/30][17000/28800] Time 0.037 (avg:0.043) Loss 115.028748 (avg:149.831658) 164 | Epoch: [5/30][18000/28800] Time 0.050 (avg:0.043) Loss 228.287033 (avg:150.064333) 165 | Epoch: [5/30][19000/28800] Time 0.015 (avg:0.043) Loss 7.619267 (avg:150.181043) 166 | Epoch: [5/30][20000/28800] Time 0.014 (avg:0.043) Loss 2.201378 (avg:150.604529) 167 | Epoch: [5/30][21000/28800] Time 0.034 (avg:0.043) Loss 49.303505 (avg:150.471517) 168 | Epoch: [5/30][22000/28800] Time 0.031 (avg:0.043) Loss 114.226479 (avg:150.306120) 169 | Epoch: [5/30][23000/28800] Time 0.024 (avg:0.043) Loss 0.000000 (avg:150.143999) 170 | Epoch: [5/30][24000/28800] Time 0.056 (avg:0.043) Loss 213.056931 (avg:150.022262) 171 | Epoch: [5/30][25000/28800] Time 0.021 (avg:0.043) Loss 5.811708 (avg:149.701672) 172 | Epoch: [5/30][26000/28800] Time 0.033 (avg:0.043) Loss 235.337570 (avg:149.613953) 173 | Epoch: [5/30][27000/28800] Time 0.023 (avg:0.043) Loss 0.272518 (avg:149.789995) 174 | Epoch: [5/30][28000/28800] Time 0.060 (avg:0.043) Loss 48.485909 (avg:150.344199) 175 | Epoch: [6/30][0/28800] Time 0.176 (avg:0.176) Loss 11.454286 (avg:11.454286) 176 | Epoch: [6/30][1000/28800] Time 0.041 (avg:0.043) Loss 113.318886 (avg:144.566371) 177 | Epoch: [6/30][2000/28800] Time 0.056 (avg:0.042) Loss 251.665756 (avg:143.906497) 178 | Epoch: [6/30][3000/28800] Time 0.016 (avg:0.043) Loss 4.139391 (avg:148.254686) 179 | Epoch: [6/30][4000/28800] Time 0.036 (avg:0.043) Loss 83.818802 (avg:149.366215) 180 | Epoch: [6/30][5000/28800] Time 0.017 (avg:0.043) Loss 1.322309 (avg:149.194338) 181 | Epoch: [6/30][6000/28800] Time 0.086 (avg:0.043) Loss 108.437950 (avg:148.566274) 182 | Epoch: [6/30][7000/28800] Time 0.064 (avg:0.043) Loss 523.318787 (avg:148.336735) 183 | Epoch: [6/30][8000/28800] Time 0.014 (avg:0.043) Loss 13.146529 (avg:148.061799) 184 | Epoch: [6/30][9000/28800] Time 0.037 (avg:0.043) Loss 123.153648 (avg:147.613101) 185 | Epoch: [6/30][10000/28800] Time 0.058 (avg:0.043) Loss 118.205383 (avg:148.012432) 186 | Epoch: [6/30][11000/28800] Time 0.013 (avg:0.043) Loss 9.626380 (avg:148.591682) 187 | Epoch: [6/30][12000/28800] Time 0.048 (avg:0.043) Loss 69.196091 (avg:148.879621) 188 | Epoch: [6/30][13000/28800] Time 0.031 (avg:0.043) Loss 204.407333 (avg:150.054826) 189 | Epoch: [6/30][14000/28800] Time 0.037 (avg:0.043) Loss 137.181000 (avg:150.512994) 190 | Epoch: [6/30][15000/28800] Time 0.031 (avg:0.043) Loss 47.051384 (avg:150.194018) 191 | Epoch: [6/30][16000/28800] Time 0.064 (avg:0.043) Loss 351.758667 (avg:149.979025) 192 | Epoch: [6/30][17000/28800] Time 0.016 (avg:0.043) Loss 2.316987 (avg:150.010203) 193 | Epoch: [6/30][18000/28800] Time 0.057 (avg:0.043) Loss 433.867493 (avg:150.376057) 194 | Epoch: [6/30][19000/28800] Time 0.015 (avg:0.043) Loss 9.728168 (avg:150.470717) 195 | Epoch: [6/30][20000/28800] Time 0.053 (avg:0.043) Loss 60.350918 (avg:150.053637) 196 | Epoch: [6/30][21000/28800] Time 0.055 (avg:0.043) Loss 159.700500 (avg:150.386004) 197 | Epoch: [6/30][22000/28800] Time 0.017 (avg:0.043) Loss 9.343747 (avg:149.978825) 198 | Epoch: [6/30][23000/28800] Time 0.031 (avg:0.043) Loss 119.258415 (avg:149.744076) 199 | Epoch: [6/30][24000/28800] Time 0.087 (avg:0.043) Loss 555.917908 (avg:149.790668) 200 | Epoch: [6/30][25000/28800] Time 0.017 (avg:0.043) Loss 8.051398 (avg:149.909079) 201 | Epoch: [6/30][26000/28800] Time 0.060 (avg:0.043) Loss 200.840347 (avg:149.429950) 202 | Epoch: [6/30][27000/28800] Time 0.014 (avg:0.043) Loss 18.660822 (avg:149.353568) 203 | Epoch: [6/30][28000/28800] Time 0.066 (avg:0.043) Loss 113.890007 (avg:149.359197) 204 | Epoch: [7/30][0/28800] Time 0.188 (avg:0.188) Loss 47.000946 (avg:47.000946) 205 | Epoch: [7/30][1000/28800] Time 0.036 (avg:0.044) Loss 109.399780 (avg:155.597559) 206 | Epoch: [7/30][2000/28800] Time 0.066 (avg:0.044) Loss 311.033630 (avg:155.615399) 207 | Epoch: [7/30][3000/28800] Time 0.120 (avg:0.043) Loss 217.875778 (avg:153.910914) 208 | Epoch: [7/30][4000/28800] Time 0.032 (avg:0.043) Loss 92.323051 (avg:152.223491) 209 | Epoch: [7/30][5000/28800] Time 0.023 (avg:0.043) Loss 0.000000 (avg:150.333314) 210 | Epoch: [7/30][6000/28800] Time 0.059 (avg:0.043) Loss 316.750305 (avg:150.561693) 211 | Epoch: [7/30][7000/28800] Time 0.035 (avg:0.043) Loss 85.874321 (avg:149.592962) 212 | Epoch: [7/30][8000/28800] Time 0.050 (avg:0.043) Loss 313.938110 (avg:149.604495) 213 | Epoch: [7/30][9000/28800] Time 0.049 (avg:0.043) Loss 274.733704 (avg:150.232145) 214 | Epoch: [7/30][10000/28800] Time 0.065 (avg:0.043) Loss 325.442047 (avg:150.308794) 215 | Epoch: [7/30][11000/28800] Time 0.058 (avg:0.043) Loss 198.776764 (avg:149.735334) 216 | Epoch: [7/30][12000/28800] Time 0.025 (avg:0.043) Loss 0.000000 (avg:149.169089) 217 | Epoch: [7/30][13000/28800] Time 0.035 (avg:0.043) Loss 164.735352 (avg:149.303275) 218 | Epoch: [7/30][14000/28800] Time 0.031 (avg:0.043) Loss 99.616020 (avg:150.146294) 219 | Epoch: [7/30][15000/28800] Time 0.041 (avg:0.043) Loss 170.448166 (avg:150.354523) 220 | Epoch: [7/30][16000/28800] Time 0.023 (avg:0.043) Loss 0.000000 (avg:150.583697) 221 | Epoch: [7/30][17000/28800] Time 0.013 (avg:0.043) Loss 7.946659 (avg:150.129342) 222 | Epoch: [7/30][18000/28800] Time 0.041 (avg:0.043) Loss 134.663483 (avg:150.416661) 223 | Epoch: [7/30][19000/28800] Time 0.087 (avg:0.043) Loss 631.922913 (avg:150.344878) 224 | Epoch: [7/30][20000/28800] Time 0.056 (avg:0.043) Loss 124.220764 (avg:149.831704) 225 | Epoch: [7/30][21000/28800] Time 0.066 (avg:0.043) Loss 123.977226 (avg:149.654994) 226 | Epoch: [7/30][22000/28800] Time 0.015 (avg:0.043) Loss 1.793114 (avg:149.078984) 227 | Epoch: [7/30][23000/28800] Time 0.013 (avg:0.043) Loss 0.618930 (avg:149.149978) 228 | Epoch: [7/30][24000/28800] Time 0.032 (avg:0.043) Loss 209.005844 (avg:148.853695) 229 | Epoch: [7/30][25000/28800] Time 0.053 (avg:0.043) Loss 248.144562 (avg:148.782933) 230 | Epoch: [7/30][26000/28800] Time 0.017 (avg:0.043) Loss 3.787706 (avg:149.209346) 231 | Epoch: [7/30][27000/28800] Time 0.119 (avg:0.043) Loss 244.178818 (avg:149.209850) 232 | Epoch: [7/30][28000/28800] Time 0.077 (avg:0.043) Loss 98.327141 (avg:149.041900) 233 | Epoch: [8/30][0/28800] Time 0.221 (avg:0.221) Loss 101.535988 (avg:101.535988) 234 | Epoch: [8/30][1000/28800] Time 0.064 (avg:0.044) Loss 113.325745 (avg:159.663731) 235 | Epoch: [8/30][2000/28800] Time 0.121 (avg:0.043) Loss 229.542435 (avg:153.903375) 236 | Epoch: [8/30][3000/28800] Time 0.016 (avg:0.043) Loss 0.000000 (avg:150.810412) 237 | Epoch: [8/30][4000/28800] Time 0.036 (avg:0.043) Loss 161.251266 (avg:148.654262) 238 | Epoch: [8/30][5000/28800] Time 0.033 (avg:0.042) Loss 23.068705 (avg:145.422255) 239 | Epoch: [8/30][6000/28800] Time 0.048 (avg:0.042) Loss 176.203369 (avg:144.740235) 240 | Epoch: [8/30][7000/28800] Time 0.016 (avg:0.042) Loss 2.953656 (avg:145.208722) 241 | Epoch: [8/30][8000/28800] Time 0.015 (avg:0.042) Loss 0.622139 (avg:144.401334) 242 | Epoch: [8/30][9000/28800] Time 0.031 (avg:0.042) Loss 183.014511 (avg:146.228131) 243 | Epoch: [8/30][10000/28800] Time 0.021 (avg:0.042) Loss 0.000000 (avg:145.176724) 244 | Epoch: [8/30][11000/28800] Time 0.065 (avg:0.042) Loss 149.465179 (avg:146.742756) 245 | Epoch: [8/30][12000/28800] Time 0.067 (avg:0.042) Loss 518.663208 (avg:146.966415) 246 | Epoch: [8/30][13000/28800] Time 0.043 (avg:0.042) Loss 231.457504 (avg:147.214689) 247 | Epoch: [8/30][14000/28800] Time 0.021 (avg:0.042) Loss 2.098233 (avg:147.970444) 248 | Epoch: [8/30][15000/28800] Time 0.056 (avg:0.042) Loss 121.353760 (avg:147.205202) 249 | Epoch: [8/30][16000/28800] Time 0.034 (avg:0.042) Loss 82.504921 (avg:147.875784) 250 | Epoch: [8/30][17000/28800] Time 0.035 (avg:0.043) Loss 104.069336 (avg:148.133180) 251 | Epoch: [8/30][18000/28800] Time 0.017 (avg:0.043) Loss 11.897498 (avg:147.803061) 252 | Epoch: [8/30][19000/28800] Time 0.031 (avg:0.043) Loss 171.998734 (avg:148.017983) 253 | Epoch: [8/30][20000/28800] Time 0.024 (avg:0.043) Loss 1.471005 (avg:148.301192) 254 | Epoch: [8/30][21000/28800] Time 0.013 (avg:0.043) Loss 0.200993 (avg:148.707936) 255 | Epoch: [8/30][22000/28800] Time 0.015 (avg:0.043) Loss 1.265544 (avg:148.729777) 256 | Epoch: [8/30][23000/28800] Time 0.016 (avg:0.043) Loss 1.530179 (avg:148.667655) 257 | Epoch: [8/30][24000/28800] Time 0.052 (avg:0.043) Loss 341.857849 (avg:148.885802) 258 | Epoch: [8/30][25000/28800] Time 0.034 (avg:0.043) Loss 205.130127 (avg:149.190406) 259 | Epoch: [8/30][26000/28800] Time 0.031 (avg:0.043) Loss 115.957787 (avg:149.228337) 260 | Epoch: [8/30][27000/28800] Time 0.031 (avg:0.043) Loss 227.187973 (avg:149.183487) 261 | Epoch: [8/30][28000/28800] Time 0.016 (avg:0.043) Loss 17.262815 (avg:149.111567) 262 | Epoch: [9/30][0/28800] Time 0.173 (avg:0.173) Loss 2.636274 (avg:2.636274) 263 | Epoch: [9/30][1000/28800] Time 0.014 (avg:0.044) Loss 0.356181 (avg:155.741481) 264 | Epoch: [9/30][2000/28800] Time 0.017 (avg:0.044) Loss 19.804243 (avg:154.124807) 265 | Epoch: [9/30][3000/28800] Time 0.034 (avg:0.044) Loss 61.410793 (avg:156.661457) 266 | Epoch: [9/30][4000/28800] Time 0.035 (avg:0.044) Loss 101.759712 (avg:153.957883) 267 | Epoch: [9/30][5000/28800] Time 0.034 (avg:0.044) Loss 166.640549 (avg:153.067814) 268 | Epoch: [9/30][6000/28800] Time 0.032 (avg:0.043) Loss 116.373306 (avg:151.880607) 269 | Epoch: [9/30][7000/28800] Time 0.014 (avg:0.043) Loss 6.750780 (avg:151.774217) 270 | Epoch: [9/30][8000/28800] Time 0.014 (avg:0.043) Loss 0.795588 (avg:152.533452) 271 | Epoch: [9/30][9000/28800] Time 0.049 (avg:0.043) Loss 209.961044 (avg:151.804597) 272 | Epoch: [9/30][10000/28800] Time 0.035 (avg:0.043) Loss 277.857391 (avg:150.778790) 273 | Epoch: [9/30][11000/28800] Time 0.056 (avg:0.043) Loss 137.702133 (avg:151.634520) 274 | Epoch: [9/30][12000/28800] Time 0.031 (avg:0.043) Loss 204.839966 (avg:151.977421) 275 | Epoch: [9/30][13000/28800] Time 0.036 (avg:0.043) Loss 328.545532 (avg:152.349437) 276 | Epoch: [9/30][14000/28800] Time 0.015 (avg:0.043) Loss 0.338463 (avg:151.910734) 277 | Epoch: [9/30][15000/28800] Time 0.018 (avg:0.043) Loss 3.796898 (avg:151.623198) 278 | Epoch: [9/30][16000/28800] Time 0.031 (avg:0.043) Loss 89.778404 (avg:151.707022) 279 | Epoch: [9/30][17000/28800] Time 0.015 (avg:0.043) Loss 3.531024 (avg:151.771567) 280 | Epoch: [9/30][18000/28800] Time 0.015 (avg:0.043) Loss 7.549531 (avg:152.181326) 281 | Epoch: [9/30][19000/28800] Time 0.056 (avg:0.043) Loss 146.171997 (avg:151.751060) 282 | Epoch: [9/30][20000/28800] Time 0.057 (avg:0.043) Loss 60.648987 (avg:151.503892) 283 | Epoch: [9/30][21000/28800] Time 0.014 (avg:0.043) Loss 22.430092 (avg:151.132865) 284 | Epoch: [9/30][22000/28800] Time 0.065 (avg:0.043) Loss 116.288330 (avg:150.948753) 285 | Epoch: [9/30][23000/28800] Time 0.036 (avg:0.043) Loss 81.183922 (avg:150.851876) 286 | Epoch: [9/30][24000/28800] Time 0.118 (avg:0.043) Loss 514.756714 (avg:150.416082) 287 | Epoch: [9/30][25000/28800] Time 0.032 (avg:0.043) Loss 98.847267 (avg:150.245996) 288 | Epoch: [9/30][26000/28800] Time 0.035 (avg:0.043) Loss 81.967842 (avg:149.587514) 289 | Epoch: [9/30][27000/28800] Time 0.065 (avg:0.043) Loss 58.992493 (avg:149.458025) 290 | Epoch: [9/30][28000/28800] Time 0.043 (avg:0.043) Loss 274.948883 (avg:149.667422) 291 | Epoch: [10/30][0/28800] Time 0.241 (avg:0.241) Loss 77.426331 (avg:77.426331) 292 | Epoch: [10/30][1000/28800] Time 0.086 (avg:0.043) Loss 541.057312 (avg:146.289830) 293 | Epoch: [10/30][2000/28800] Time 0.088 (avg:0.045) Loss 566.700623 (avg:154.619401) 294 | Epoch: [10/30][3000/28800] Time 0.043 (avg:0.044) Loss 310.052765 (avg:152.900838) 295 | Epoch: [10/30][4000/28800] Time 0.026 (avg:0.044) Loss 3.139865 (avg:150.902947) 296 | Epoch: [10/30][5000/28800] Time 0.031 (avg:0.044) Loss 153.873840 (avg:151.088008) 297 | Epoch: [10/30][6000/28800] Time 0.035 (avg:0.044) Loss 129.857773 (avg:151.561480) 298 | Epoch: [10/30][7000/28800] Time 0.060 (avg:0.043) Loss 88.978195 (avg:149.647995) 299 | Epoch: [10/30][8000/28800] Time 0.058 (avg:0.043) Loss 156.103073 (avg:149.512486) 300 | Epoch: [10/30][9000/28800] Time 0.076 (avg:0.043) Loss 75.693893 (avg:150.131682) 301 | Epoch: [10/30][10000/28800] Time 0.031 (avg:0.043) Loss 181.444107 (avg:149.891751) 302 | Epoch: [10/30][11000/28800] Time 0.058 (avg:0.043) Loss 63.069881 (avg:150.766156) 303 | Epoch: [10/30][12000/28800] Time 0.065 (avg:0.043) Loss 331.661072 (avg:150.379574) 304 | Epoch: [10/30][13000/28800] Time 0.038 (avg:0.043) Loss 143.435837 (avg:149.987278) 305 | Epoch: [10/30][14000/28800] Time 0.016 (avg:0.043) Loss 3.048990 (avg:149.614775) 306 | Epoch: [10/30][15000/28800] Time 0.067 (avg:0.043) Loss 612.927185 (avg:149.334372) 307 | Epoch: [10/30][16000/28800] Time 0.032 (avg:0.043) Loss 276.802155 (avg:149.479103) 308 | Epoch: [10/30][17000/28800] Time 0.057 (avg:0.043) Loss 115.825172 (avg:149.126751) 309 | Epoch: [10/30][18000/28800] Time 0.076 (avg:0.043) Loss 296.448151 (avg:149.646170) 310 | Epoch: [10/30][19000/28800] Time 0.066 (avg:0.043) Loss 95.479103 (avg:149.633840) 311 | Epoch: [10/30][20000/28800] Time 0.035 (avg:0.043) Loss 238.221710 (avg:149.942485) 312 | Epoch: [10/30][21000/28800] Time 0.053 (avg:0.043) Loss 216.167160 (avg:149.662724) 313 | Epoch: [10/30][22000/28800] Time 0.021 (avg:0.043) Loss 0.000000 (avg:149.199628) 314 | Epoch: [10/30][23000/28800] Time 0.057 (avg:0.043) Loss 108.968925 (avg:149.174092) 315 | Epoch: [10/30][24000/28800] Time 0.015 (avg:0.043) Loss 0.000000 (avg:148.919737) 316 | Epoch: [10/30][25000/28800] Time 0.036 (avg:0.043) Loss 117.421074 (avg:148.836655) 317 | Epoch: [10/30][26000/28800] Time 0.036 (avg:0.043) Loss 141.395935 (avg:148.953416) 318 | Epoch: [10/30][27000/28800] Time 0.068 (avg:0.043) Loss 632.304138 (avg:148.888402) 319 | Epoch: [10/30][28000/28800] Time 0.033 (avg:0.043) Loss 247.537598 (avg:149.491076) 320 | Epoch: [11/30][0/28800] Time 0.229 (avg:0.229) Loss 225.702591 (avg:225.702591) 321 | Epoch: [11/30][1000/28800] Time 0.118 (avg:0.042) Loss 453.184387 (avg:150.178985) 322 | Epoch: [11/30][2000/28800] Time 0.057 (avg:0.043) Loss 114.833168 (avg:148.832038) 323 | Epoch: [11/30][3000/28800] Time 0.041 (avg:0.043) Loss 115.073891 (avg:147.832846) 324 | Epoch: [11/30][4000/28800] Time 0.013 (avg:0.043) Loss 5.816532 (avg:149.744781) 325 | Epoch: [11/30][5000/28800] Time 0.020 (avg:0.043) Loss 0.000000 (avg:149.266595) 326 | Epoch: [11/30][6000/28800] Time 0.042 (avg:0.043) Loss 140.471954 (avg:149.773689) 327 | Epoch: [11/30][7000/28800] Time 0.034 (avg:0.043) Loss 90.624474 (avg:148.948139) 328 | Epoch: [11/30][8000/28800] Time 0.015 (avg:0.043) Loss 0.890632 (avg:148.991954) 329 | Epoch: [11/30][9000/28800] Time 0.035 (avg:0.043) Loss 59.447144 (avg:149.317791) 330 | Epoch: [11/30][10000/28800] Time 0.032 (avg:0.043) Loss 134.018906 (avg:149.526256) 331 | Epoch: [11/30][11000/28800] Time 0.015 (avg:0.043) Loss 2.500348 (avg:149.457079) 332 | Epoch: [11/30][12000/28800] Time 0.035 (avg:0.043) Loss 109.427567 (avg:150.429458) 333 | Epoch: [11/30][13000/28800] Time 0.052 (avg:0.043) Loss 258.353790 (avg:150.431559) 334 | Epoch: [11/30][14000/28800] Time 0.058 (avg:0.043) Loss 134.274170 (avg:150.117786) 335 | Epoch: [11/30][15000/28800] Time 0.087 (avg:0.043) Loss 255.818970 (avg:149.864946) 336 | Epoch: [11/30][16000/28800] Time 0.014 (avg:0.043) Loss 0.757100 (avg:149.736381) 337 | Epoch: [11/30][17000/28800] Time 0.057 (avg:0.043) Loss 72.949860 (avg:149.617242) 338 | Epoch: [11/30][18000/28800] Time 0.059 (avg:0.043) Loss 101.884720 (avg:149.843238) 339 | Epoch: [11/30][19000/28800] Time 0.059 (avg:0.043) Loss 324.703308 (avg:149.435159) 340 | Epoch: [11/30][20000/28800] Time 0.041 (avg:0.043) Loss 134.676605 (avg:149.595575) 341 | Epoch: [11/30][21000/28800] Time 0.058 (avg:0.043) Loss 123.739639 (avg:149.645475) 342 | Epoch: [11/30][22000/28800] Time 0.035 (avg:0.043) Loss 80.274994 (avg:149.835364) 343 | Epoch: [11/30][23000/28800] Time 0.036 (avg:0.043) Loss 167.717957 (avg:149.809028) 344 | Epoch: [11/30][24000/28800] Time 0.015 (avg:0.043) Loss 0.302080 (avg:149.743952) 345 | Epoch: [11/30][25000/28800] Time 0.035 (avg:0.043) Loss 28.486526 (avg:149.619306) 346 | Epoch: [11/30][26000/28800] Time 0.041 (avg:0.043) Loss 133.278275 (avg:149.844946) 347 | Epoch: [11/30][27000/28800] Time 0.056 (avg:0.043) Loss 310.953949 (avg:149.387661) 348 | Epoch: [11/30][28000/28800] Time 0.057 (avg:0.043) Loss 324.002899 (avg:149.301744) 349 | Epoch: [12/30][0/28800] Time 0.191 (avg:0.191) Loss 89.533768 (avg:89.533768) 350 | Epoch: [12/30][1000/28800] Time 0.014 (avg:0.043) Loss 1.941892 (avg:150.121681) 351 | Epoch: [12/30][2000/28800] Time 0.041 (avg:0.043) Loss 129.917404 (avg:144.892997) 352 | Epoch: [12/30][3000/28800] Time 0.014 (avg:0.043) Loss 2.411483 (avg:145.022915) 353 | Epoch: [12/30][4000/28800] Time 0.041 (avg:0.043) Loss 91.227249 (avg:146.001627) 354 | Epoch: [12/30][5000/28800] Time 0.064 (avg:0.043) Loss 127.429405 (avg:147.036641) 355 | Epoch: [12/30][6000/28800] Time 0.050 (avg:0.043) Loss 463.735748 (avg:148.605932) 356 | Epoch: [12/30][7000/28800] Time 0.057 (avg:0.043) Loss 318.984131 (avg:149.500261) 357 | Epoch: [12/30][8000/28800] Time 0.017 (avg:0.043) Loss 5.169786 (avg:151.266501) 358 | Epoch: [12/30][9000/28800] Time 0.086 (avg:0.043) Loss 172.012680 (avg:150.558944) 359 | Epoch: [12/30][10000/28800] Time 0.015 (avg:0.043) Loss 2.213506 (avg:150.960486) 360 | Epoch: [12/30][11000/28800] Time 0.051 (avg:0.043) Loss 114.340027 (avg:151.058558) 361 | Epoch: [12/30][12000/28800] Time 0.065 (avg:0.043) Loss 134.839340 (avg:150.113945) 362 | Epoch: [12/30][13000/28800] Time 0.015 (avg:0.043) Loss 7.169033 (avg:149.706226) 363 | Epoch: [12/30][14000/28800] Time 0.016 (avg:0.043) Loss 1.493749 (avg:149.927077) 364 | Epoch: [12/30][15000/28800] Time 0.016 (avg:0.043) Loss 6.803520 (avg:149.680870) 365 | Epoch: [12/30][16000/28800] Time 0.014 (avg:0.043) Loss 2.606189 (avg:149.221207) 366 | Epoch: [12/30][17000/28800] Time 0.058 (avg:0.043) Loss 98.175804 (avg:148.982270) 367 | Epoch: [12/30][18000/28800] Time 0.060 (avg:0.043) Loss 57.917126 (avg:149.400569) 368 | Epoch: [12/30][19000/28800] Time 0.065 (avg:0.043) Loss 227.986893 (avg:149.328563) 369 | Epoch: [12/30][20000/28800] Time 0.014 (avg:0.043) Loss 1.579092 (avg:150.091091) 370 | Epoch: [12/30][21000/28800] Time 0.057 (avg:0.043) Loss 205.653519 (avg:150.075293) 371 | Epoch: [12/30][22000/28800] Time 0.031 (avg:0.043) Loss 65.008118 (avg:149.949040) 372 | Epoch: [12/30][23000/28800] Time 0.031 (avg:0.043) Loss 161.290695 (avg:149.878696) 373 | Epoch: [12/30][24000/28800] Time 0.056 (avg:0.043) Loss 179.389984 (avg:149.864973) 374 | Epoch: [12/30][25000/28800] Time 0.058 (avg:0.043) Loss 204.869980 (avg:149.907154) 375 | Epoch: [12/30][26000/28800] Time 0.021 (avg:0.043) Loss 5.072536 (avg:149.673270) 376 | Epoch: [12/30][27000/28800] Time 0.032 (avg:0.043) Loss 115.516991 (avg:149.507297) 377 | Epoch: [12/30][28000/28800] Time 0.032 (avg:0.043) Loss 345.981781 (avg:149.383403) 378 | Epoch: [13/30][0/28800] Time 0.173 (avg:0.173) Loss 24.603485 (avg:24.603485) 379 | Epoch: [13/30][1000/28800] Time 0.120 (avg:0.044) Loss 642.914001 (avg:149.717630) 380 | Epoch: [13/30][2000/28800] Time 0.056 (avg:0.043) Loss 375.333649 (avg:145.989552) 381 | Epoch: [13/30][3000/28800] Time 0.087 (avg:0.043) Loss 574.715515 (avg:147.839773) 382 | Epoch: [13/30][4000/28800] Time 0.026 (avg:0.043) Loss 0.000000 (avg:146.032604) 383 | Epoch: [13/30][5000/28800] Time 0.017 (avg:0.043) Loss 2.920690 (avg:146.280114) 384 | Epoch: [13/30][6000/28800] Time 0.087 (avg:0.043) Loss 312.281250 (avg:145.881436) 385 | Epoch: [13/30][7000/28800] Time 0.031 (avg:0.043) Loss 37.866436 (avg:146.512696) 386 | Epoch: [13/30][8000/28800] Time 0.032 (avg:0.043) Loss 182.346695 (avg:147.447573) 387 | Epoch: [13/30][9000/28800] Time 0.058 (avg:0.043) Loss 410.401367 (avg:147.301281) 388 | Epoch: [13/30][10000/28800] Time 0.076 (avg:0.043) Loss 162.598465 (avg:146.672880) 389 | Epoch: [13/30][11000/28800] Time 0.013 (avg:0.043) Loss 3.010171 (avg:146.362688) 390 | Epoch: [13/30][12000/28800] Time 0.048 (avg:0.043) Loss 354.199554 (avg:146.878301) 391 | Epoch: [13/30][13000/28800] Time 0.119 (avg:0.043) Loss 297.877319 (avg:147.697729) 392 | Epoch: [13/30][14000/28800] Time 0.066 (avg:0.043) Loss 201.698822 (avg:147.687177) 393 | Epoch: [13/30][15000/28800] Time 0.057 (avg:0.043) Loss 91.196304 (avg:148.261627) 394 | Epoch: [13/30][16000/28800] Time 0.057 (avg:0.043) Loss 131.501160 (avg:149.220481) 395 | Epoch: [13/30][17000/28800] Time 0.034 (avg:0.043) Loss 74.004677 (avg:148.997152) 396 | Epoch: [13/30][18000/28800] Time 0.036 (avg:0.043) Loss 535.704041 (avg:149.445633) 397 | Epoch: [13/30][19000/28800] Time 0.014 (avg:0.043) Loss 4.141502 (avg:150.119487) 398 | Epoch: [13/30][20000/28800] Time 0.022 (avg:0.043) Loss 0.000000 (avg:149.642369) 399 | Epoch: [13/30][21000/28800] Time 0.023 (avg:0.043) Loss 0.264379 (avg:149.256350) 400 | Epoch: [13/30][22000/28800] Time 0.015 (avg:0.043) Loss 4.977058 (avg:149.155347) 401 | Epoch: [13/30][23000/28800] Time 0.057 (avg:0.043) Loss 63.605152 (avg:149.191173) 402 | Epoch: [13/30][24000/28800] Time 0.015 (avg:0.043) Loss 20.601055 (avg:149.317788) 403 | Epoch: [13/30][25000/28800] Time 0.015 (avg:0.043) Loss 1.046671 (avg:149.321017) 404 | Epoch: [13/30][26000/28800] Time 0.118 (avg:0.043) Loss 424.024384 (avg:149.160794) 405 | Epoch: [13/30][27000/28800] Time 0.035 (avg:0.043) Loss 61.182838 (avg:148.869211) 406 | Epoch: [13/30][28000/28800] Time 0.031 (avg:0.043) Loss 66.743797 (avg:148.957635) 407 | Epoch: [14/30][0/28800] Time 0.183 (avg:0.183) Loss 2.824628 (avg:2.824628) 408 | Epoch: [14/30][1000/28800] Time 0.015 (avg:0.044) Loss 5.336677 (avg:151.363891) 409 | Epoch: [14/30][2000/28800] Time 0.034 (avg:0.044) Loss 87.345703 (avg:152.171130) 410 | Epoch: [14/30][3000/28800] Time 0.032 (avg:0.044) Loss 140.771072 (avg:153.149748) 411 | Epoch: [14/30][4000/28800] Time 0.053 (avg:0.044) Loss 216.249420 (avg:151.090204) 412 | Epoch: [14/30][5000/28800] Time 0.068 (avg:0.043) Loss 174.264679 (avg:151.219120) 413 | Epoch: [14/30][6000/28800] Time 0.034 (avg:0.044) Loss 203.193878 (avg:153.754233) 414 | Epoch: [14/30][7000/28800] Time 0.021 (avg:0.044) Loss 0.000000 (avg:153.372044) 415 | Epoch: [14/30][8000/28800] Time 0.023 (avg:0.044) Loss 0.647653 (avg:155.952148) 416 | Epoch: [14/30][9000/28800] Time 0.014 (avg:0.043) Loss 1.403094 (avg:154.967719) 417 | Epoch: [14/30][10000/28800] Time 0.015 (avg:0.043) Loss 0.468165 (avg:154.522694) 418 | Epoch: [14/30][11000/28800] Time 0.015 (avg:0.043) Loss 13.377601 (avg:154.361028) 419 | Epoch: [14/30][12000/28800] Time 0.042 (avg:0.043) Loss 206.876816 (avg:153.205744) 420 | Epoch: [14/30][13000/28800] Time 0.056 (avg:0.043) Loss 95.686539 (avg:151.943427) 421 | Epoch: [14/30][14000/28800] Time 0.032 (avg:0.043) Loss 145.181152 (avg:151.550659) 422 | Epoch: [14/30][15000/28800] Time 0.016 (avg:0.043) Loss 1.520206 (avg:150.757183) 423 | Epoch: [14/30][16000/28800] Time 0.118 (avg:0.043) Loss 242.276352 (avg:150.722365) 424 | Epoch: [14/30][17000/28800] Time 0.020 (avg:0.043) Loss 0.000000 (avg:151.005617) 425 | Epoch: [14/30][18000/28800] Time 0.061 (avg:0.043) Loss 228.211014 (avg:151.200162) 426 | Epoch: [14/30][19000/28800] Time 0.057 (avg:0.043) Loss 348.007263 (avg:150.742235) 427 | Epoch: [14/30][20000/28800] Time 0.023 (avg:0.043) Loss 0.000000 (avg:150.505724) 428 | Epoch: [14/30][21000/28800] Time 0.064 (avg:0.043) Loss 159.896698 (avg:150.466550) 429 | Epoch: [14/30][22000/28800] Time 0.056 (avg:0.043) Loss 100.875107 (avg:150.533661) 430 | Epoch: [14/30][23000/28800] Time 0.037 (avg:0.043) Loss 310.369812 (avg:150.182297) 431 | Epoch: [14/30][24000/28800] Time 0.035 (avg:0.043) Loss 281.694397 (avg:150.177136) 432 | Epoch: [14/30][25000/28800] Time 0.058 (avg:0.043) Loss 107.658524 (avg:149.866300) 433 | Epoch: [14/30][26000/28800] Time 0.013 (avg:0.043) Loss 3.438353 (avg:149.484192) 434 | Epoch: [14/30][27000/28800] Time 0.087 (avg:0.043) Loss 259.404114 (avg:149.424071) 435 | Epoch: [14/30][28000/28800] Time 0.032 (avg:0.043) Loss 150.586044 (avg:149.297173) 436 | Epoch: [15/30][0/28800] Time 0.218 (avg:0.218) Loss 110.340721 (avg:110.340721) 437 | Epoch: [15/30][1000/28800] Time 0.016 (avg:0.041) Loss 5.877908 (avg:143.623611) 438 | Epoch: [15/30][2000/28800] Time 0.038 (avg:0.041) Loss 109.582481 (avg:142.121817) 439 | Epoch: [15/30][3000/28800] Time 0.088 (avg:0.042) Loss 439.312653 (avg:145.839818) 440 | Epoch: [15/30][4000/28800] Time 0.014 (avg:0.042) Loss 0.812953 (avg:143.457630) 441 | Epoch: [15/30][5000/28800] Time 0.015 (avg:0.042) Loss 9.484548 (avg:145.707272) 442 | Epoch: [15/30][6000/28800] Time 0.015 (avg:0.042) Loss 2.772706 (avg:146.259606) 443 | Epoch: [15/30][7000/28800] Time 0.037 (avg:0.042) Loss 233.817581 (avg:148.237278) 444 | Epoch: [15/30][8000/28800] Time 0.052 (avg:0.043) Loss 284.619934 (avg:148.934916) 445 | Epoch: [15/30][9000/28800] Time 0.033 (avg:0.043) Loss 91.283257 (avg:149.682020) 446 | Epoch: [15/30][10000/28800] Time 0.059 (avg:0.043) Loss 211.659180 (avg:149.947216) 447 | Epoch: [15/30][11000/28800] Time 0.016 (avg:0.043) Loss 5.992701 (avg:150.089543) 448 | Epoch: [15/30][12000/28800] Time 0.064 (avg:0.043) Loss 134.779205 (avg:149.517705) 449 | Epoch: [15/30][13000/28800] Time 0.087 (avg:0.043) Loss 300.348602 (avg:149.170355) 450 | Epoch: [15/30][14000/28800] Time 0.016 (avg:0.043) Loss 1.027260 (avg:149.015794) 451 | Epoch: [15/30][15000/28800] Time 0.056 (avg:0.043) Loss 112.611389 (avg:149.609532) 452 | Epoch: [15/30][16000/28800] Time 0.024 (avg:0.043) Loss 0.000000 (avg:149.215185) 453 | Epoch: [15/30][17000/28800] Time 0.034 (avg:0.043) Loss 292.653778 (avg:149.448812) 454 | Epoch: [15/30][18000/28800] Time 0.061 (avg:0.043) Loss 218.276199 (avg:149.076890) 455 | Epoch: [15/30][19000/28800] Time 0.068 (avg:0.043) Loss 392.917114 (avg:149.279971) 456 | Epoch: [15/30][20000/28800] Time 0.014 (avg:0.043) Loss 2.722612 (avg:149.321915) 457 | Epoch: [15/30][21000/28800] Time 0.017 (avg:0.043) Loss 1.695252 (avg:149.146545) 458 | Epoch: [15/30][22000/28800] Time 0.066 (avg:0.043) Loss 318.085785 (avg:148.885385) 459 | Epoch: [15/30][23000/28800] Time 0.033 (avg:0.043) Loss 21.373547 (avg:148.596610) 460 | Epoch: [15/30][24000/28800] Time 0.013 (avg:0.043) Loss 1.847978 (avg:148.720190) 461 | Epoch: [15/30][25000/28800] Time 0.014 (avg:0.043) Loss 7.056276 (avg:148.661882) 462 | Epoch: [15/30][26000/28800] Time 0.061 (avg:0.043) Loss 206.369507 (avg:149.009383) 463 | Epoch: [15/30][27000/28800] Time 0.015 (avg:0.043) Loss 0.279301 (avg:148.810391) 464 | Epoch: [15/30][28000/28800] Time 0.015 (avg:0.043) Loss 1.110056 (avg:149.015897) 465 | Epoch: [16/30][0/28800] Time 0.226 (avg:0.226) Loss 671.215515 (avg:671.215515) 466 | Epoch: [16/30][1000/28800] Time 0.015 (avg:0.044) Loss 20.914030 (avg:145.546152) 467 | Epoch: [16/30][2000/28800] Time 0.031 (avg:0.043) Loss 121.345665 (avg:147.032497) 468 | Epoch: [16/30][3000/28800] Time 0.015 (avg:0.043) Loss 4.872427 (avg:149.573991) 469 | Epoch: [16/30][4000/28800] Time 0.031 (avg:0.043) Loss 158.159744 (avg:150.183174) 470 | Epoch: [16/30][5000/28800] Time 0.015 (avg:0.043) Loss 8.147197 (avg:148.819803) 471 | Epoch: [16/30][6000/28800] Time 0.024 (avg:0.043) Loss 1.339224 (avg:149.564594) 472 | Epoch: [16/30][7000/28800] Time 0.059 (avg:0.044) Loss 130.993332 (avg:151.278459) 473 | Epoch: [16/30][8000/28800] Time 0.055 (avg:0.043) Loss 169.917343 (avg:151.388666) 474 | Epoch: [16/30][9000/28800] Time 0.031 (avg:0.043) Loss 122.935600 (avg:149.926203) 475 | Epoch: [16/30][10000/28800] Time 0.024 (avg:0.043) Loss 1.170999 (avg:149.559853) 476 | Epoch: [16/30][11000/28800] Time 0.014 (avg:0.043) Loss 16.858406 (avg:149.815508) 477 | Epoch: [16/30][12000/28800] Time 0.014 (avg:0.043) Loss 7.670366 (avg:149.431645) 478 | Epoch: [16/30][13000/28800] Time 0.036 (avg:0.043) Loss 263.990082 (avg:149.889285) 479 | Epoch: [16/30][14000/28800] Time 0.014 (avg:0.043) Loss 0.000000 (avg:149.546263) 480 | Epoch: [16/30][15000/28800] Time 0.061 (avg:0.043) Loss 160.233810 (avg:149.578994) 481 | Epoch: [16/30][16000/28800] Time 0.017 (avg:0.043) Loss 0.930646 (avg:150.492666) 482 | Epoch: [16/30][17000/28800] Time 0.014 (avg:0.043) Loss 13.371782 (avg:150.050203) 483 | Epoch: [16/30][18000/28800] Time 0.065 (avg:0.043) Loss 111.896629 (avg:150.051056) 484 | Epoch: [16/30][19000/28800] Time 0.015 (avg:0.043) Loss 2.250197 (avg:149.829804) 485 | Epoch: [16/30][20000/28800] Time 0.060 (avg:0.043) Loss 362.018372 (avg:149.730061) 486 | Epoch: [16/30][21000/28800] Time 0.015 (avg:0.043) Loss 3.196498 (avg:149.479888) 487 | Epoch: [16/30][22000/28800] Time 0.052 (avg:0.043) Loss 67.704384 (avg:149.358235) 488 | Epoch: [16/30][23000/28800] Time 0.016 (avg:0.043) Loss 4.419358 (avg:149.462815) 489 | Epoch: [16/30][24000/28800] Time 0.036 (avg:0.043) Loss 29.255838 (avg:149.831112) 490 | Epoch: [16/30][25000/28800] Time 0.049 (avg:0.043) Loss 248.166000 (avg:149.519026) 491 | Epoch: [16/30][26000/28800] Time 0.014 (avg:0.043) Loss 2.954416 (avg:149.415140) 492 | Epoch: [16/30][27000/28800] Time 0.017 (avg:0.043) Loss 1.304953 (avg:149.506085) 493 | Epoch: [16/30][28000/28800] Time 0.056 (avg:0.043) Loss 172.498581 (avg:148.887061) 494 | Epoch: [17/30][0/28800] Time 0.219 (avg:0.219) Loss 433.685791 (avg:433.685791) 495 | Epoch: [17/30][1000/28800] Time 0.021 (avg:0.043) Loss 0.000000 (avg:149.590033) 496 | Epoch: [17/30][2000/28800] Time 0.017 (avg:0.043) Loss 0.391808 (avg:147.924015) 497 | Epoch: [17/30][3000/28800] Time 0.066 (avg:0.043) Loss 90.631943 (avg:145.513471) 498 | Epoch: [17/30][4000/28800] Time 0.015 (avg:0.043) Loss 1.577089 (avg:146.374154) 499 | Epoch: [17/30][5000/28800] Time 0.053 (avg:0.043) Loss 436.055634 (avg:148.527652) 500 | Epoch: [17/30][6000/28800] Time 0.014 (avg:0.043) Loss 2.919078 (avg:148.774426) 501 | Epoch: [17/30][7000/28800] Time 0.014 (avg:0.042) Loss 2.918633 (avg:149.524487) 502 | Epoch: [17/30][8000/28800] Time 0.119 (avg:0.042) Loss 168.528259 (avg:150.128623) 503 | Epoch: [17/30][9000/28800] Time 0.015 (avg:0.042) Loss 17.921728 (avg:151.183268) 504 | Epoch: [17/30][10000/28800] Time 0.057 (avg:0.043) Loss 50.746464 (avg:151.440686) 505 | Epoch: [17/30][11000/28800] Time 0.068 (avg:0.043) Loss 513.993591 (avg:151.253566) 506 | Epoch: [17/30][12000/28800] Time 0.057 (avg:0.043) Loss 231.439117 (avg:151.066955) 507 | Epoch: [17/30][13000/28800] Time 0.058 (avg:0.043) Loss 138.357162 (avg:150.819535) 508 | Epoch: [17/30][14000/28800] Time 0.035 (avg:0.043) Loss 57.691143 (avg:149.954975) 509 | Epoch: [17/30][15000/28800] Time 0.013 (avg:0.043) Loss 4.169206 (avg:150.113647) 510 | Epoch: [17/30][16000/28800] Time 0.042 (avg:0.043) Loss 176.309265 (avg:150.157202) 511 | Epoch: [17/30][17000/28800] Time 0.034 (avg:0.043) Loss 284.478363 (avg:149.695604) 512 | Epoch: [17/30][18000/28800] Time 0.121 (avg:0.043) Loss 245.552521 (avg:149.232941) 513 | Epoch: [17/30][19000/28800] Time 0.016 (avg:0.043) Loss 0.404261 (avg:148.865263) 514 | Epoch: [17/30][20000/28800] Time 0.015 (avg:0.043) Loss 0.000000 (avg:149.032964) 515 | Epoch: [17/30][21000/28800] Time 0.021 (avg:0.043) Loss 1.444697 (avg:148.914761) 516 | Epoch: [17/30][22000/28800] Time 0.057 (avg:0.043) Loss 158.376785 (avg:148.668456) 517 | Epoch: [17/30][23000/28800] Time 0.060 (avg:0.043) Loss 71.194725 (avg:148.910817) 518 | Epoch: [17/30][24000/28800] Time 0.056 (avg:0.043) Loss 1003.486267 (avg:149.113526) 519 | Epoch: [17/30][25000/28800] Time 0.120 (avg:0.043) Loss 324.671906 (avg:148.911154) 520 | Epoch: [17/30][26000/28800] Time 0.119 (avg:0.043) Loss 446.737549 (avg:148.961842) 521 | Epoch: [17/30][27000/28800] Time 0.120 (avg:0.043) Loss 357.484039 (avg:149.052661) 522 | Epoch: [17/30][28000/28800] Time 0.036 (avg:0.043) Loss 66.054649 (avg:149.133197) 523 | Epoch: [18/30][0/28800] Time 0.178 (avg:0.178) Loss 10.338355 (avg:10.338355) 524 | Epoch: [18/30][1000/28800] Time 0.056 (avg:0.043) Loss 881.305786 (avg:150.526575) 525 | Epoch: [18/30][2000/28800] Time 0.021 (avg:0.042) Loss 1.079805 (avg:147.091669) 526 | Epoch: [18/30][3000/28800] Time 0.036 (avg:0.043) Loss 199.561737 (avg:148.704552) 527 | Epoch: [18/30][4000/28800] Time 0.014 (avg:0.043) Loss 0.898035 (avg:148.796421) 528 | Epoch: [18/30][5000/28800] Time 0.013 (avg:0.043) Loss 4.669255 (avg:147.692546) 529 | Epoch: [18/30][6000/28800] Time 0.088 (avg:0.043) Loss 394.066223 (avg:147.178271) 530 | Epoch: [18/30][7000/28800] Time 0.035 (avg:0.043) Loss 82.973267 (avg:146.574164) 531 | Epoch: [18/30][8000/28800] Time 0.013 (avg:0.043) Loss 3.120333 (avg:147.261425) 532 | Epoch: [18/30][9000/28800] Time 0.015 (avg:0.043) Loss 3.496347 (avg:148.319240) 533 | Epoch: [18/30][10000/28800] Time 0.035 (avg:0.043) Loss 45.704197 (avg:148.313288) 534 | Epoch: [18/30][11000/28800] Time 0.024 (avg:0.043) Loss 0.000000 (avg:148.214815) 535 | Epoch: [18/30][12000/28800] Time 0.015 (avg:0.043) Loss 1.520120 (avg:147.521044) 536 | Epoch: [18/30][13000/28800] Time 0.016 (avg:0.043) Loss 3.723933 (avg:148.050059) 537 | Epoch: [18/30][14000/28800] Time 0.059 (avg:0.043) Loss 126.248062 (avg:148.196708) 538 | Epoch: [18/30][15000/28800] Time 0.076 (avg:0.043) Loss 295.909393 (avg:148.855532) 539 | Epoch: [18/30][16000/28800] Time 0.035 (avg:0.043) Loss 141.145172 (avg:148.606585) 540 | Epoch: [18/30][17000/28800] Time 0.059 (avg:0.043) Loss 212.416824 (avg:148.940239) 541 | Epoch: [18/30][18000/28800] Time 0.056 (avg:0.043) Loss 102.921684 (avg:149.123275) 542 | Epoch: [18/30][19000/28800] Time 0.065 (avg:0.043) Loss 153.400146 (avg:149.314828) 543 | Epoch: [18/30][20000/28800] Time 0.052 (avg:0.043) Loss 730.565918 (avg:148.919636) 544 | Epoch: [18/30][21000/28800] Time 0.032 (avg:0.043) Loss 189.633575 (avg:149.187522) 545 | Epoch: [18/30][22000/28800] Time 0.043 (avg:0.043) Loss 240.130768 (avg:149.015251) 546 | Epoch: [18/30][23000/28800] Time 0.041 (avg:0.043) Loss 310.131470 (avg:149.363738) 547 | Epoch: [18/30][24000/28800] Time 0.052 (avg:0.043) Loss 422.989014 (avg:148.998588) 548 | Epoch: [18/30][25000/28800] Time 0.035 (avg:0.043) Loss 167.257019 (avg:149.258860) 549 | Epoch: [18/30][26000/28800] Time 0.056 (avg:0.043) Loss 91.240395 (avg:149.506617) 550 | Epoch: [18/30][27000/28800] Time 0.055 (avg:0.043) Loss 57.373524 (avg:149.439366) 551 | Epoch: [18/30][28000/28800] Time 0.034 (avg:0.043) Loss 160.349274 (avg:149.429572) 552 | Epoch: [19/30][0/28800] Time 0.210 (avg:0.210) Loss 246.803619 (avg:246.803619) 553 | Epoch: [19/30][1000/28800] Time 0.031 (avg:0.044) Loss 235.392380 (avg:150.569040) 554 | Epoch: [19/30][2000/28800] Time 0.014 (avg:0.043) Loss 3.332607 (avg:147.513552) 555 | Epoch: [19/30][3000/28800] Time 0.034 (avg:0.043) Loss 140.558136 (avg:146.592808) 556 | Epoch: [19/30][4000/28800] Time 0.031 (avg:0.043) Loss 167.244858 (avg:148.345372) 557 | Epoch: [19/30][5000/28800] Time 0.056 (avg:0.043) Loss 211.912766 (avg:148.746069) 558 | Epoch: [19/30][6000/28800] Time 0.057 (avg:0.043) Loss 119.468689 (avg:149.413090) 559 | Epoch: [19/30][7000/28800] Time 0.014 (avg:0.043) Loss 0.226736 (avg:149.350989) 560 | Epoch: [19/30][8000/28800] Time 0.060 (avg:0.043) Loss 198.435867 (avg:149.349823) 561 | Epoch: [19/30][9000/28800] Time 0.014 (avg:0.043) Loss 7.972675 (avg:149.006888) 562 | Epoch: [19/30][10000/28800] Time 0.041 (avg:0.043) Loss 338.198792 (avg:148.812672) 563 | Epoch: [19/30][11000/28800] Time 0.032 (avg:0.043) Loss 125.306480 (avg:149.741373) 564 | Epoch: [19/30][12000/28800] Time 0.067 (avg:0.043) Loss 287.105560 (avg:149.315806) 565 | Epoch: [19/30][13000/28800] Time 0.053 (avg:0.043) Loss 131.106735 (avg:149.261265) 566 | Epoch: [19/30][14000/28800] Time 0.051 (avg:0.043) Loss 371.791718 (avg:149.171644) 567 | Epoch: [19/30][15000/28800] Time 0.076 (avg:0.043) Loss 166.591599 (avg:149.170208) 568 | Epoch: [19/30][16000/28800] Time 0.022 (avg:0.043) Loss 2.624992 (avg:148.780867) 569 | Epoch: [19/30][17000/28800] Time 0.035 (avg:0.043) Loss 55.513733 (avg:149.169482) 570 | Epoch: [19/30][18000/28800] Time 0.013 (avg:0.043) Loss 5.356278 (avg:149.130267) 571 | Epoch: [19/30][19000/28800] Time 0.086 (avg:0.043) Loss 308.586365 (avg:149.362688) 572 | Epoch: [19/30][20000/28800] Time 0.035 (avg:0.043) Loss 211.519531 (avg:149.025000) 573 | Epoch: [19/30][21000/28800] Time 0.053 (avg:0.043) Loss 512.314087 (avg:149.213640) 574 | Epoch: [19/30][22000/28800] Time 0.042 (avg:0.043) Loss 68.617485 (avg:149.066847) 575 | Epoch: [19/30][23000/28800] Time 0.015 (avg:0.043) Loss 10.850912 (avg:149.192369) 576 | Epoch: [19/30][24000/28800] Time 0.057 (avg:0.043) Loss 439.280823 (avg:149.347608) 577 | Epoch: [19/30][25000/28800] Time 0.087 (avg:0.043) Loss 216.802963 (avg:149.455544) 578 | Epoch: [19/30][26000/28800] Time 0.087 (avg:0.043) Loss 690.820496 (avg:149.366252) 579 | Epoch: [19/30][27000/28800] Time 0.048 (avg:0.043) Loss 172.209030 (avg:148.916945) 580 | Epoch: [19/30][28000/28800] Time 0.031 (avg:0.043) Loss 179.754913 (avg:148.945992) 581 | Epoch: [20/30][0/28800] Time 0.216 (avg:0.216) Loss 107.407448 (avg:107.407448) 582 | Epoch: [20/30][1000/28800] Time 0.056 (avg:0.043) Loss 344.964020 (avg:147.360363) 583 | Epoch: [20/30][2000/28800] Time 0.057 (avg:0.042) Loss 205.021072 (avg:146.391117) 584 | Epoch: [20/30][3000/28800] Time 0.032 (avg:0.042) Loss 169.610641 (avg:151.486908) 585 | Epoch: [20/30][4000/28800] Time 0.055 (avg:0.042) Loss 113.417313 (avg:149.020654) 586 | Epoch: [20/30][5000/28800] Time 0.014 (avg:0.042) Loss 8.241750 (avg:149.517804) 587 | Epoch: [20/30][6000/28800] Time 0.053 (avg:0.043) Loss 205.776611 (avg:149.949350) 588 | Epoch: [20/30][7000/28800] Time 0.120 (avg:0.042) Loss 363.091034 (avg:149.897071) 589 | Epoch: [20/30][8000/28800] Time 0.013 (avg:0.043) Loss 1.120608 (avg:151.118396) 590 | Epoch: [20/30][9000/28800] Time 0.057 (avg:0.043) Loss 183.177505 (avg:151.255073) 591 | Epoch: [20/30][10000/28800] Time 0.035 (avg:0.042) Loss 107.028435 (avg:149.829368) 592 | Epoch: [20/30][11000/28800] Time 0.021 (avg:0.042) Loss 0.000000 (avg:149.246260) 593 | Epoch: [20/30][12000/28800] Time 0.032 (avg:0.043) Loss 100.893860 (avg:148.909379) 594 | Epoch: [20/30][13000/28800] Time 0.056 (avg:0.043) Loss 125.335930 (avg:149.035877) 595 | Epoch: [20/30][14000/28800] Time 0.022 (avg:0.043) Loss 0.246172 (avg:149.487824) 596 | Epoch: [20/30][15000/28800] Time 0.056 (avg:0.043) Loss 101.158554 (avg:148.888815) 597 | Epoch: [20/30][16000/28800] Time 0.015 (avg:0.043) Loss 0.000000 (avg:149.236914) 598 | Epoch: [20/30][17000/28800] Time 0.087 (avg:0.043) Loss 398.093842 (avg:149.528233) 599 | Epoch: [20/30][18000/28800] Time 0.036 (avg:0.043) Loss 479.764069 (avg:149.608763) 600 | Epoch: [20/30][19000/28800] Time 0.049 (avg:0.043) Loss 193.439682 (avg:149.797992) 601 | Epoch: [20/30][20000/28800] Time 0.060 (avg:0.043) Loss 207.948120 (avg:149.713397) 602 | Epoch: [20/30][21000/28800] Time 0.064 (avg:0.043) Loss 82.225029 (avg:149.463453) 603 | Epoch: [20/30][22000/28800] Time 0.014 (avg:0.043) Loss 0.967872 (avg:150.158339) 604 | Epoch: [20/30][23000/28800] Time 0.066 (avg:0.043) Loss 201.533463 (avg:150.170680) 605 | Epoch: [20/30][24000/28800] Time 0.076 (avg:0.043) Loss 86.098869 (avg:149.599373) 606 | Epoch: [20/30][25000/28800] Time 0.041 (avg:0.043) Loss 182.117172 (avg:149.583253) 607 | Epoch: [20/30][26000/28800] Time 0.060 (avg:0.043) Loss 47.854000 (avg:149.096851) 608 | Epoch: [20/30][27000/28800] Time 0.036 (avg:0.043) Loss 117.499535 (avg:149.223991) 609 | Epoch: [20/30][28000/28800] Time 0.120 (avg:0.043) Loss 357.211517 (avg:149.433956) 610 | Epoch: [21/30][0/28800] Time 0.200 (avg:0.200) Loss 118.970215 (avg:118.970215) 611 | Epoch: [21/30][1000/28800] Time 0.120 (avg:0.043) Loss 480.871002 (avg:143.392771) 612 | Epoch: [21/30][2000/28800] Time 0.015 (avg:0.043) Loss 4.497313 (avg:146.721037) 613 | Epoch: [21/30][3000/28800] Time 0.015 (avg:0.043) Loss 2.155743 (avg:147.733330) 614 | Epoch: [21/30][4000/28800] Time 0.056 (avg:0.043) Loss 107.958214 (avg:147.526738) 615 | Epoch: [21/30][5000/28800] Time 0.060 (avg:0.043) Loss 54.024616 (avg:148.598680) 616 | Epoch: [21/30][6000/28800] Time 0.036 (avg:0.043) Loss 120.271080 (avg:150.997901) 617 | Epoch: [21/30][7000/28800] Time 0.057 (avg:0.043) Loss 169.361282 (avg:149.430651) 618 | Epoch: [21/30][8000/28800] Time 0.035 (avg:0.043) Loss 130.362488 (avg:148.613799) 619 | Epoch: [21/30][9000/28800] Time 0.035 (avg:0.043) Loss 216.493973 (avg:149.498820) 620 | Epoch: [21/30][10000/28800] Time 0.014 (avg:0.043) Loss 11.609165 (avg:149.974797) 621 | Epoch: [21/30][11000/28800] Time 0.022 (avg:0.043) Loss 2.118447 (avg:150.479914) 622 | Epoch: [21/30][12000/28800] Time 0.058 (avg:0.043) Loss 69.830467 (avg:150.868062) 623 | Epoch: [21/30][13000/28800] Time 0.038 (avg:0.043) Loss 119.114418 (avg:150.539479) 624 | Epoch: [21/30][14000/28800] Time 0.021 (avg:0.043) Loss 1.809788 (avg:150.559219) 625 | Epoch: [21/30][15000/28800] Time 0.015 (avg:0.043) Loss 0.368142 (avg:150.162758) 626 | Epoch: [21/30][16000/28800] Time 0.015 (avg:0.043) Loss 1.706194 (avg:149.764545) 627 | Epoch: [21/30][17000/28800] Time 0.032 (avg:0.043) Loss 117.496727 (avg:149.767038) 628 | Epoch: [21/30][18000/28800] Time 0.014 (avg:0.043) Loss 7.778365 (avg:149.474725) 629 | Epoch: [21/30][19000/28800] Time 0.059 (avg:0.043) Loss 68.693336 (avg:149.596356) 630 | Epoch: [21/30][20000/28800] Time 0.031 (avg:0.043) Loss 205.716217 (avg:150.057185) 631 | Epoch: [21/30][21000/28800] Time 0.061 (avg:0.043) Loss 147.039108 (avg:150.026911) 632 | Epoch: [21/30][22000/28800] Time 0.120 (avg:0.043) Loss 388.183075 (avg:149.991479) 633 | Epoch: [21/30][23000/28800] Time 0.016 (avg:0.043) Loss 1.401194 (avg:149.944101) 634 | Epoch: [21/30][24000/28800] Time 0.014 (avg:0.043) Loss 17.503042 (avg:149.280045) 635 | Epoch: [21/30][25000/28800] Time 0.120 (avg:0.043) Loss 146.974442 (avg:149.182391) 636 | Epoch: [21/30][26000/28800] Time 0.068 (avg:0.043) Loss 292.239014 (avg:149.229033) 637 | Epoch: [21/30][27000/28800] Time 0.118 (avg:0.043) Loss 240.509567 (avg:149.185252) 638 | Epoch: [21/30][28000/28800] Time 0.087 (avg:0.043) Loss 94.346939 (avg:148.976161) 639 | Epoch: [22/30][0/28800] Time 0.175 (avg:0.175) Loss 4.760528 (avg:4.760528) 640 | Epoch: [22/30][1000/28800] Time 0.048 (avg:0.042) Loss 283.565552 (avg:135.388302) 641 | Epoch: [22/30][2000/28800] Time 0.017 (avg:0.042) Loss 10.881489 (avg:138.752100) 642 | Epoch: [22/30][3000/28800] Time 0.031 (avg:0.043) Loss 120.392227 (avg:143.819047) 643 | Epoch: [22/30][4000/28800] Time 0.032 (avg:0.043) Loss 150.585449 (avg:147.795407) 644 | Epoch: [22/30][5000/28800] Time 0.032 (avg:0.043) Loss 215.986984 (avg:148.350603) 645 | Epoch: [22/30][6000/28800] Time 0.017 (avg:0.043) Loss 1.403387 (avg:148.784589) 646 | Epoch: [22/30][7000/28800] Time 0.020 (avg:0.043) Loss 0.000000 (avg:149.678451) 647 | Epoch: [22/30][8000/28800] Time 0.057 (avg:0.043) Loss 89.189407 (avg:149.172122) 648 | Epoch: [22/30][9000/28800] Time 0.041 (avg:0.043) Loss 224.439621 (avg:148.764843) 649 | Epoch: [22/30][10000/28800] Time 0.033 (avg:0.043) Loss 430.544678 (avg:149.284726) 650 | Epoch: [22/30][11000/28800] Time 0.013 (avg:0.043) Loss 6.371672 (avg:149.660028) 651 | Epoch: [22/30][12000/28800] Time 0.025 (avg:0.043) Loss 0.402078 (avg:149.405764) 652 | Epoch: [22/30][13000/28800] Time 0.015 (avg:0.043) Loss 0.862700 (avg:148.938308) 653 | Epoch: [22/30][14000/28800] Time 0.119 (avg:0.043) Loss 136.415771 (avg:149.151116) 654 | Epoch: [22/30][15000/28800] Time 0.059 (avg:0.043) Loss 335.088348 (avg:149.314180) 655 | Epoch: [22/30][16000/28800] Time 0.087 (avg:0.043) Loss 448.889496 (avg:149.783322) 656 | Epoch: [22/30][17000/28800] Time 0.087 (avg:0.043) Loss 644.767273 (avg:149.291382) 657 | Epoch: [22/30][18000/28800] Time 0.041 (avg:0.043) Loss 441.781158 (avg:149.353771) 658 | Epoch: [22/30][19000/28800] Time 0.076 (avg:0.043) Loss 103.629883 (avg:149.117981) 659 | Epoch: [22/30][20000/28800] Time 0.021 (avg:0.043) Loss 1.128998 (avg:148.853174) 660 | Epoch: [22/30][21000/28800] Time 0.055 (avg:0.043) Loss 208.876999 (avg:148.523212) 661 | Epoch: [22/30][22000/28800] Time 0.067 (avg:0.043) Loss 1007.094360 (avg:148.529710) 662 | Epoch: [22/30][23000/28800] Time 0.016 (avg:0.043) Loss 1.115340 (avg:148.797812) 663 | Epoch: [22/30][24000/28800] Time 0.056 (avg:0.043) Loss 334.537201 (avg:148.416437) 664 | Epoch: [22/30][25000/28800] Time 0.031 (avg:0.043) Loss 123.783897 (avg:148.503173) 665 | Epoch: [22/30][26000/28800] Time 0.016 (avg:0.043) Loss 2.293593 (avg:148.953647) 666 | Epoch: [22/30][27000/28800] Time 0.031 (avg:0.043) Loss 120.085327 (avg:149.276342) 667 | Epoch: [22/30][28000/28800] Time 0.013 (avg:0.043) Loss 0.970752 (avg:149.205467) 668 | Epoch: [23/30][0/28800] Time 0.224 (avg:0.224) Loss 131.415970 (avg:131.415970) 669 | Epoch: [23/30][1000/28800] Time 0.014 (avg:0.043) Loss 1.478835 (avg:154.665372) 670 | Epoch: [23/30][2000/28800] Time 0.120 (avg:0.043) Loss 942.165039 (avg:151.552555) 671 | Epoch: [23/30][3000/28800] Time 0.065 (avg:0.043) Loss 184.050446 (avg:152.925562) 672 | Epoch: [23/30][4000/28800] Time 0.015 (avg:0.043) Loss 0.000000 (avg:153.363033) 673 | Epoch: [23/30][5000/28800] Time 0.060 (avg:0.043) Loss 138.617081 (avg:152.534742) 674 | Epoch: [23/30][6000/28800] Time 0.117 (avg:0.043) Loss 109.212730 (avg:153.104382) 675 | Epoch: [23/30][7000/28800] Time 0.119 (avg:0.043) Loss 775.232544 (avg:152.066539) 676 | Epoch: [23/30][8000/28800] Time 0.057 (avg:0.043) Loss 209.698227 (avg:151.622978) 677 | Epoch: [23/30][9000/28800] Time 0.035 (avg:0.043) Loss 234.169662 (avg:151.235880) 678 | Epoch: [23/30][10000/28800] Time 0.059 (avg:0.043) Loss 115.958092 (avg:151.509580) 679 | Epoch: [23/30][11000/28800] Time 0.031 (avg:0.043) Loss 176.018295 (avg:150.919528) 680 | Epoch: [23/30][12000/28800] Time 0.015 (avg:0.043) Loss 3.595459 (avg:150.336690) 681 | Epoch: [23/30][13000/28800] Time 0.058 (avg:0.043) Loss 102.948013 (avg:149.942870) 682 | Epoch: [23/30][14000/28800] Time 0.037 (avg:0.043) Loss 133.953659 (avg:150.174359) 683 | Epoch: [23/30][15000/28800] Time 0.037 (avg:0.043) Loss 221.227570 (avg:150.145656) 684 | Epoch: [23/30][16000/28800] Time 0.031 (avg:0.043) Loss 136.110184 (avg:150.240130) 685 | Epoch: [23/30][17000/28800] Time 0.087 (avg:0.043) Loss 383.356628 (avg:150.245673) 686 | Epoch: [23/30][18000/28800] Time 0.025 (avg:0.043) Loss 0.000000 (avg:150.252380) 687 | Epoch: [23/30][19000/28800] Time 0.036 (avg:0.043) Loss 208.791382 (avg:150.088542) 688 | Epoch: [23/30][20000/28800] Time 0.119 (avg:0.043) Loss 377.034332 (avg:149.745585) 689 | Epoch: [23/30][21000/28800] Time 0.013 (avg:0.043) Loss 0.704159 (avg:149.790040) 690 | Epoch: [23/30][22000/28800] Time 0.036 (avg:0.043) Loss 234.518097 (avg:149.802888) 691 | Epoch: [23/30][23000/28800] Time 0.036 (avg:0.043) Loss 507.807434 (avg:150.004180) 692 | Epoch: [23/30][24000/28800] Time 0.066 (avg:0.043) Loss 295.031586 (avg:149.890180) 693 | Epoch: [23/30][25000/28800] Time 0.057 (avg:0.043) Loss 198.713928 (avg:149.619124) 694 | Epoch: [23/30][26000/28800] Time 0.056 (avg:0.043) Loss 99.089882 (avg:149.362288) 695 | Epoch: [23/30][27000/28800] Time 0.022 (avg:0.043) Loss 0.601080 (avg:149.551139) 696 | Epoch: [23/30][28000/28800] Time 0.023 (avg:0.043) Loss 0.638336 (avg:149.128980) 697 | Epoch: [24/30][0/28800] Time 0.195 (avg:0.195) Loss 111.291679 (avg:111.291679) 698 | Epoch: [24/30][1000/28800] Time 0.031 (avg:0.042) Loss 182.334290 (avg:147.209422) 699 | Epoch: [24/30][2000/28800] Time 0.015 (avg:0.042) Loss 6.970479 (avg:145.505152) 700 | Epoch: [24/30][3000/28800] Time 0.014 (avg:0.042) Loss 3.860879 (avg:142.027710) 701 | Epoch: [24/30][4000/28800] Time 0.032 (avg:0.042) Loss 112.538834 (avg:145.812182) 702 | Epoch: [24/30][5000/28800] Time 0.088 (avg:0.043) Loss 175.011108 (avg:146.174726) 703 | Epoch: [24/30][6000/28800] Time 0.065 (avg:0.043) Loss 81.685280 (avg:146.641511) 704 | Epoch: [24/30][7000/28800] Time 0.121 (avg:0.043) Loss 267.269318 (avg:147.489474) 705 | Epoch: [24/30][8000/28800] Time 0.064 (avg:0.043) Loss 55.361664 (avg:146.454476) 706 | Epoch: [24/30][9000/28800] Time 0.014 (avg:0.043) Loss 1.000793 (avg:147.134351) 707 | Epoch: [24/30][10000/28800] Time 0.053 (avg:0.043) Loss 580.897156 (avg:147.461301) 708 | Epoch: [24/30][11000/28800] Time 0.087 (avg:0.043) Loss 293.398987 (avg:147.632810) 709 | Epoch: [24/30][12000/28800] Time 0.014 (avg:0.043) Loss 1.468499 (avg:148.035659) 710 | Epoch: [24/30][13000/28800] Time 0.087 (avg:0.043) Loss 29.149906 (avg:148.248390) 711 | Epoch: [24/30][14000/28800] Time 0.014 (avg:0.043) Loss 0.214933 (avg:148.195395) 712 | Epoch: [24/30][15000/28800] Time 0.014 (avg:0.043) Loss 21.709730 (avg:148.641297) 713 | Epoch: [24/30][16000/28800] Time 0.087 (avg:0.043) Loss 405.346344 (avg:148.848320) 714 | Epoch: [24/30][17000/28800] Time 0.016 (avg:0.043) Loss 0.000000 (avg:149.073321) 715 | Epoch: [24/30][18000/28800] Time 0.049 (avg:0.043) Loss 141.822525 (avg:149.199575) 716 | Epoch: [24/30][19000/28800] Time 0.035 (avg:0.043) Loss 179.633896 (avg:149.275753) 717 | Epoch: [24/30][20000/28800] Time 0.013 (avg:0.043) Loss 2.712296 (avg:149.267018) 718 | Epoch: [24/30][21000/28800] Time 0.017 (avg:0.043) Loss 2.198340 (avg:149.074473) 719 | Epoch: [24/30][22000/28800] Time 0.067 (avg:0.043) Loss 510.505676 (avg:149.268708) 720 | Epoch: [24/30][23000/28800] Time 0.053 (avg:0.043) Loss 61.104168 (avg:149.187952) 721 | Epoch: [24/30][24000/28800] Time 0.058 (avg:0.043) Loss 110.898293 (avg:149.204440) 722 | Epoch: [24/30][25000/28800] Time 0.031 (avg:0.043) Loss 47.998241 (avg:149.258660) 723 | Epoch: [24/30][26000/28800] Time 0.041 (avg:0.043) Loss 264.782410 (avg:149.005872) 724 | Epoch: [24/30][27000/28800] Time 0.034 (avg:0.043) Loss 94.903969 (avg:149.081733) 725 | Epoch: [24/30][28000/28800] Time 0.088 (avg:0.043) Loss 218.725296 (avg:148.984558) 726 | Epoch: [25/30][0/28800] Time 0.175 (avg:0.175) Loss 10.831248 (avg:10.831248) 727 | Epoch: [25/30][1000/28800] Time 0.014 (avg:0.042) Loss 7.103641 (avg:148.511615) 728 | Epoch: [25/30][2000/28800] Time 0.037 (avg:0.042) Loss 308.517395 (avg:144.446865) 729 | Epoch: [25/30][3000/28800] Time 0.035 (avg:0.043) Loss 92.446342 (avg:145.684144) 730 | Epoch: [25/30][4000/28800] Time 0.057 (avg:0.043) Loss 124.058861 (avg:149.211535) 731 | Epoch: [25/30][5000/28800] Time 0.017 (avg:0.043) Loss 27.884817 (avg:150.656034) 732 | Epoch: [25/30][6000/28800] Time 0.017 (avg:0.043) Loss 1.743552 (avg:151.619193) 733 | Epoch: [25/30][7000/28800] Time 0.087 (avg:0.043) Loss 567.399963 (avg:150.513554) 734 | Epoch: [25/30][8000/28800] Time 0.034 (avg:0.043) Loss 23.400953 (avg:149.790880) 735 | Epoch: [25/30][9000/28800] Time 0.032 (avg:0.043) Loss 22.243116 (avg:150.190889) 736 | Epoch: [25/30][10000/28800] Time 0.016 (avg:0.043) Loss 2.760412 (avg:149.856931) 737 | Epoch: [25/30][11000/28800] Time 0.021 (avg:0.043) Loss 3.058153 (avg:150.403269) 738 | Epoch: [25/30][12000/28800] Time 0.053 (avg:0.043) Loss 373.866669 (avg:150.997378) 739 | Epoch: [25/30][13000/28800] Time 0.015 (avg:0.043) Loss 5.624683 (avg:150.168829) 740 | Epoch: [25/30][14000/28800] Time 0.048 (avg:0.043) Loss 111.384636 (avg:150.347030) 741 | Epoch: [25/30][15000/28800] Time 0.088 (avg:0.043) Loss 105.318687 (avg:150.134614) 742 | Epoch: [25/30][16000/28800] Time 0.055 (avg:0.043) Loss 125.381859 (avg:150.079944) 743 | Epoch: [25/30][17000/28800] Time 0.041 (avg:0.043) Loss 181.474335 (avg:149.344605) 744 | Epoch: [25/30][18000/28800] Time 0.057 (avg:0.043) Loss 123.567863 (avg:149.326319) 745 | Epoch: [25/30][19000/28800] Time 0.059 (avg:0.043) Loss 49.640408 (avg:149.515937) 746 | Epoch: [25/30][20000/28800] Time 0.023 (avg:0.043) Loss 0.235879 (avg:149.746284) 747 | Epoch: [25/30][21000/28800] Time 0.034 (avg:0.043) Loss 201.556870 (avg:149.984252) 748 | Epoch: [25/30][22000/28800] Time 0.014 (avg:0.043) Loss 1.200578 (avg:149.567142) 749 | Epoch: [25/30][23000/28800] Time 0.088 (avg:0.043) Loss 123.516235 (avg:149.191853) 750 | Epoch: [25/30][24000/28800] Time 0.087 (avg:0.043) Loss 523.713928 (avg:149.295729) 751 | Epoch: [25/30][25000/28800] Time 0.066 (avg:0.043) Loss 313.669159 (avg:149.336069) 752 | Epoch: [25/30][26000/28800] Time 0.052 (avg:0.043) Loss 91.705742 (avg:149.069425) 753 | Epoch: [25/30][27000/28800] Time 0.035 (avg:0.043) Loss 118.508133 (avg:149.262314) 754 | Epoch: [25/30][28000/28800] Time 0.057 (avg:0.043) Loss 239.043732 (avg:149.126499) 755 | Epoch: [26/30][0/28800] Time 0.219 (avg:0.219) Loss 215.222168 (avg:215.222168) 756 | Epoch: [26/30][1000/28800] Time 0.120 (avg:0.043) Loss 634.191650 (avg:157.117546) 757 | Epoch: [26/30][2000/28800] Time 0.065 (avg:0.043) Loss 92.290855 (avg:156.794116) 758 | Epoch: [26/30][3000/28800] Time 0.014 (avg:0.043) Loss 10.865592 (avg:153.978159) 759 | Epoch: [26/30][4000/28800] Time 0.031 (avg:0.043) Loss 75.002548 (avg:152.476988) 760 | Epoch: [26/30][5000/28800] Time 0.056 (avg:0.043) Loss 543.644226 (avg:152.714593) 761 | Epoch: [26/30][6000/28800] Time 0.014 (avg:0.043) Loss 5.739184 (avg:151.529391) 762 | Epoch: [26/30][7000/28800] Time 0.075 (avg:0.043) Loss 528.365112 (avg:150.733255) 763 | Epoch: [26/30][8000/28800] Time 0.058 (avg:0.043) Loss 193.268845 (avg:150.615450) 764 | Epoch: [26/30][9000/28800] Time 0.036 (avg:0.043) Loss 78.802345 (avg:150.570471) 765 | Epoch: [26/30][10000/28800] Time 0.024 (avg:0.043) Loss 1.389069 (avg:150.068337) 766 | Epoch: [26/30][11000/28800] Time 0.021 (avg:0.043) Loss 0.000000 (avg:150.448533) 767 | Epoch: [26/30][12000/28800] Time 0.015 (avg:0.043) Loss 1.107135 (avg:150.387751) 768 | Epoch: [26/30][13000/28800] Time 0.023 (avg:0.043) Loss 1.920595 (avg:150.497753) 769 | Epoch: [26/30][14000/28800] Time 0.036 (avg:0.043) Loss 141.362701 (avg:150.091197) 770 | Epoch: [26/30][15000/28800] Time 0.016 (avg:0.043) Loss 0.438279 (avg:149.931643) 771 | Epoch: [26/30][16000/28800] Time 0.015 (avg:0.043) Loss 1.723150 (avg:149.728990) 772 | Epoch: [26/30][17000/28800] Time 0.036 (avg:0.043) Loss 283.819550 (avg:149.956353) 773 | Epoch: [26/30][18000/28800] Time 0.058 (avg:0.043) Loss 91.234550 (avg:149.745183) 774 | Epoch: [26/30][19000/28800] Time 0.014 (avg:0.043) Loss 2.279078 (avg:149.883435) 775 | Epoch: [26/30][20000/28800] Time 0.022 (avg:0.043) Loss 0.444712 (avg:149.559982) 776 | Epoch: [26/30][21000/28800] Time 0.036 (avg:0.043) Loss 147.165451 (avg:149.647210) 777 | Epoch: [26/30][22000/28800] Time 0.120 (avg:0.043) Loss 670.018738 (avg:149.428462) 778 | Epoch: [26/30][23000/28800] Time 0.052 (avg:0.043) Loss 230.591599 (avg:149.262948) 779 | Epoch: [26/30][24000/28800] Time 0.024 (avg:0.043) Loss 1.182779 (avg:149.554594) 780 | Epoch: [26/30][25000/28800] Time 0.026 (avg:0.043) Loss 0.000000 (avg:149.412492) 781 | Epoch: [26/30][26000/28800] Time 0.016 (avg:0.043) Loss 0.438509 (avg:149.101953) 782 | Epoch: [26/30][27000/28800] Time 0.035 (avg:0.043) Loss 166.995773 (avg:149.136349) 783 | Epoch: [26/30][28000/28800] Time 0.052 (avg:0.043) Loss 116.836258 (avg:149.230606) 784 | Epoch: [27/30][0/28800] Time 0.179 (avg:0.179) Loss 3.177790 (avg:3.177790) 785 | Epoch: [27/30][1000/28800] Time 0.035 (avg:0.042) Loss 80.900963 (avg:157.881069) 786 | Epoch: [27/30][2000/28800] Time 0.053 (avg:0.043) Loss 1056.255493 (avg:159.034633) 787 | Epoch: [27/30][3000/28800] Time 0.068 (avg:0.043) Loss 855.093445 (avg:153.524522) 788 | Epoch: [27/30][4000/28800] Time 0.038 (avg:0.043) Loss 186.452881 (avg:151.856342) 789 | Epoch: [27/30][5000/28800] Time 0.087 (avg:0.043) Loss 185.667999 (avg:152.001410) 790 | Epoch: [27/30][6000/28800] Time 0.015 (avg:0.043) Loss 3.939406 (avg:152.267972) 791 | Epoch: [27/30][7000/28800] Time 0.015 (avg:0.043) Loss 0.000000 (avg:150.511898) 792 | Epoch: [27/30][8000/28800] Time 0.060 (avg:0.043) Loss 167.103622 (avg:149.350501) 793 | Epoch: [27/30][9000/28800] Time 0.041 (avg:0.043) Loss 204.215042 (avg:149.406578) 794 | Epoch: [27/30][10000/28800] Time 0.014 (avg:0.043) Loss 3.245559 (avg:149.009037) 795 | Epoch: [27/30][11000/28800] Time 0.059 (avg:0.043) Loss 89.114098 (avg:148.414715) 796 | Epoch: [27/30][12000/28800] Time 0.014 (avg:0.043) Loss 11.377410 (avg:148.346364) 797 | Epoch: [27/30][13000/28800] Time 0.035 (avg:0.043) Loss 186.753464 (avg:148.069328) 798 | Epoch: [27/30][14000/28800] Time 0.036 (avg:0.043) Loss 148.857254 (avg:148.470518) 799 | Epoch: [27/30][15000/28800] Time 0.017 (avg:0.043) Loss 1.154489 (avg:149.096584) 800 | Epoch: [27/30][16000/28800] Time 0.057 (avg:0.043) Loss 200.208862 (avg:149.243129) 801 | Epoch: [27/30][17000/28800] Time 0.035 (avg:0.043) Loss 78.971550 (avg:149.096855) 802 | Epoch: [27/30][18000/28800] Time 0.015 (avg:0.043) Loss 2.976479 (avg:149.260364) 803 | Epoch: [27/30][19000/28800] Time 0.032 (avg:0.043) Loss 207.190170 (avg:148.783703) 804 | Epoch: [27/30][20000/28800] Time 0.014 (avg:0.043) Loss 4.042011 (avg:149.145078) 805 | Epoch: [27/30][21000/28800] Time 0.054 (avg:0.043) Loss 771.988464 (avg:149.167834) 806 | Epoch: [27/30][22000/28800] Time 0.014 (avg:0.043) Loss 17.552999 (avg:149.239263) 807 | Epoch: [27/30][23000/28800] Time 0.042 (avg:0.043) Loss 207.976547 (avg:149.193955) 808 | Epoch: [27/30][24000/28800] Time 0.056 (avg:0.043) Loss 386.131989 (avg:149.282886) 809 | Epoch: [27/30][25000/28800] Time 0.031 (avg:0.043) Loss 64.499779 (avg:149.423354) 810 | Epoch: [27/30][26000/28800] Time 0.031 (avg:0.043) Loss 148.045563 (avg:149.488556) 811 | Epoch: [27/30][27000/28800] Time 0.034 (avg:0.043) Loss 98.131142 (avg:149.148514) 812 | Epoch: [27/30][28000/28800] Time 0.053 (avg:0.043) Loss 293.210632 (avg:148.845854) 813 | Epoch: [28/30][0/28800] Time 0.195 (avg:0.195) Loss 157.956894 (avg:157.956894) 814 | Epoch: [28/30][1000/28800] Time 0.087 (avg:0.042) Loss 284.013519 (avg:146.209407) 815 | Epoch: [28/30][2000/28800] Time 0.036 (avg:0.043) Loss 83.232277 (avg:148.624030) 816 | Epoch: [28/30][3000/28800] Time 0.065 (avg:0.043) Loss 275.582275 (avg:149.412474) 817 | Epoch: [28/30][4000/28800] Time 0.014 (avg:0.043) Loss 5.917217 (avg:148.553249) 818 | Epoch: [28/30][5000/28800] Time 0.035 (avg:0.043) Loss 511.284821 (avg:148.191663) 819 | Epoch: [28/30][6000/28800] Time 0.015 (avg:0.043) Loss 12.480091 (avg:148.287585) 820 | Epoch: [28/30][7000/28800] Time 0.014 (avg:0.043) Loss 12.241472 (avg:148.732730) 821 | Epoch: [28/30][8000/28800] Time 0.013 (avg:0.043) Loss 0.805185 (avg:149.879485) 822 | Epoch: [28/30][9000/28800] Time 0.120 (avg:0.043) Loss 497.105560 (avg:150.253129) 823 | Epoch: [28/30][10000/28800] Time 0.014 (avg:0.043) Loss 5.857354 (avg:150.172959) 824 | Epoch: [28/30][11000/28800] Time 0.050 (avg:0.043) Loss 76.284889 (avg:149.963219) 825 | Epoch: [28/30][12000/28800] Time 0.014 (avg:0.043) Loss 2.679338 (avg:149.640858) 826 | Epoch: [28/30][13000/28800] Time 0.014 (avg:0.043) Loss 9.553287 (avg:149.179460) 827 | Epoch: [28/30][14000/28800] Time 0.064 (avg:0.043) Loss 195.665070 (avg:149.017658) 828 | Epoch: [28/30][15000/28800] Time 0.057 (avg:0.043) Loss 218.007721 (avg:149.083534) 829 | Epoch: [28/30][16000/28800] Time 0.034 (avg:0.043) Loss 150.842514 (avg:150.047922) 830 | Epoch: [28/30][17000/28800] Time 0.120 (avg:0.043) Loss 464.293701 (avg:150.406022) 831 | Epoch: [28/30][18000/28800] Time 0.058 (avg:0.043) Loss 404.287109 (avg:150.299572) 832 | Epoch: [28/30][19000/28800] Time 0.076 (avg:0.043) Loss 241.744995 (avg:149.916714) 833 | Epoch: [28/30][20000/28800] Time 0.077 (avg:0.043) Loss 247.945633 (avg:149.878051) 834 | Epoch: [28/30][21000/28800] Time 0.034 (avg:0.043) Loss 123.545532 (avg:149.633936) 835 | Epoch: [28/30][22000/28800] Time 0.014 (avg:0.043) Loss 13.726707 (avg:149.547020) 836 | Epoch: [28/30][23000/28800] Time 0.022 (avg:0.043) Loss 6.546249 (avg:149.447623) 837 | Epoch: [28/30][24000/28800] Time 0.055 (avg:0.043) Loss 98.425690 (avg:149.432681) 838 | Epoch: [28/30][25000/28800] Time 0.049 (avg:0.043) Loss 53.510403 (avg:149.468621) 839 | Epoch: [28/30][26000/28800] Time 0.075 (avg:0.043) Loss 191.380127 (avg:149.554588) 840 | Epoch: [28/30][27000/28800] Time 0.026 (avg:0.043) Loss 3.927336 (avg:149.272727) 841 | Epoch: [28/30][28000/28800] Time 0.088 (avg:0.043) Loss 367.425507 (avg:149.194273) 842 | Epoch: [29/30][0/28800] Time 0.240 (avg:0.240) Loss 636.043335 (avg:636.043335) 843 | Epoch: [29/30][1000/28800] Time 0.088 (avg:0.043) Loss 196.375793 (avg:155.615315) 844 | Epoch: [29/30][2000/28800] Time 0.056 (avg:0.043) Loss 237.561020 (avg:157.300380) 845 | Epoch: [29/30][3000/28800] Time 0.033 (avg:0.043) Loss 201.309067 (avg:153.655429) 846 | Epoch: [29/30][4000/28800] Time 0.031 (avg:0.043) Loss 94.737465 (avg:152.609412) 847 | Epoch: [29/30][5000/28800] Time 0.017 (avg:0.043) Loss 1.069966 (avg:154.688529) 848 | Epoch: [29/30][6000/28800] Time 0.076 (avg:0.043) Loss 90.349754 (avg:153.460752) 849 | Epoch: [29/30][7000/28800] Time 0.014 (avg:0.043) Loss 1.463422 (avg:152.072707) 850 | Epoch: [29/30][8000/28800] Time 0.021 (avg:0.043) Loss 3.517265 (avg:150.702455) 851 | Epoch: [29/30][9000/28800] Time 0.026 (avg:0.043) Loss 1.216110 (avg:150.430634) 852 | Epoch: [29/30][10000/28800] Time 0.052 (avg:0.043) Loss 225.364609 (avg:150.299208) 853 | Epoch: [29/30][11000/28800] Time 0.076 (avg:0.043) Loss 290.018646 (avg:149.570841) 854 | Epoch: [29/30][12000/28800] Time 0.035 (avg:0.043) Loss 105.741722 (avg:149.469815) 855 | Epoch: [29/30][13000/28800] Time 0.027 (avg:0.043) Loss 0.000000 (avg:149.128173) 856 | Epoch: [29/30][14000/28800] Time 0.031 (avg:0.043) Loss 92.920456 (avg:148.991338) 857 | Epoch: [29/30][15000/28800] Time 0.057 (avg:0.043) Loss 63.408314 (avg:148.976461) 858 | Epoch: [29/30][16000/28800] Time 0.050 (avg:0.043) Loss 274.618622 (avg:149.379635) 859 | Epoch: [29/30][17000/28800] Time 0.015 (avg:0.043) Loss 1.350945 (avg:149.285152) 860 | Epoch: [29/30][18000/28800] Time 0.119 (avg:0.043) Loss 547.746277 (avg:149.040805) 861 | Epoch: [29/30][19000/28800] Time 0.120 (avg:0.043) Loss 257.943237 (avg:149.366009) 862 | Epoch: [29/30][20000/28800] Time 0.036 (avg:0.043) Loss 117.075768 (avg:149.249146) 863 | Epoch: [29/30][21000/28800] Time 0.014 (avg:0.043) Loss 28.177923 (avg:148.604479) 864 | Epoch: [29/30][22000/28800] Time 0.036 (avg:0.043) Loss 25.938597 (avg:148.440296) 865 | Epoch: [29/30][23000/28800] Time 0.032 (avg:0.043) Loss 269.534515 (avg:148.506315) 866 | Epoch: [29/30][24000/28800] Time 0.056 (avg:0.043) Loss 198.760223 (avg:148.397196) 867 | Epoch: [29/30][25000/28800] Time 0.067 (avg:0.043) Loss 1074.802368 (avg:148.973048) 868 | Epoch: [29/30][26000/28800] Time 0.031 (avg:0.043) Loss 220.346024 (avg:148.798300) 869 | Epoch: [29/30][27000/28800] Time 0.015 (avg:0.043) Loss 1.910797 (avg:149.015462) 870 | Epoch: [29/30][28000/28800] Time 0.064 (avg:0.043) Loss 117.319336 (avg:149.199048) 871 | -------------------------------------------------------------------------------- /train_RCF.py: -------------------------------------------------------------------------------- 1 | #!/user/bin/python 2 | # coding=utf-8 3 | import os, sys 4 | import numpy as np 5 | from PIL import Image 6 | import cv2 7 | import shutil 8 | import argparse 9 | import time 10 | import datetime 11 | import torch 12 | import torch.nn as nn 13 | import torch.nn.functional as F 14 | from torch.optim import lr_scheduler 15 | import torchvision 16 | import torchvision.transforms as transforms 17 | import matplotlib 18 | matplotlib.use('Agg') 19 | import matplotlib.pyplot as plt 20 | from data_loader import BSDS_RCFLoader 21 | from models import RCF 22 | from functions import cross_entropy_loss_RCF, SGD_caffe 23 | from torch.utils.data import DataLoader, sampler 24 | from utils import Logger, Averagvalue, save_checkpoint, load_vgg16pretrain 25 | from os.path import join, split, isdir, isfile, splitext, split, abspath, dirname 26 | from torchvision import models 27 | from torchsummary import summary 28 | 29 | parser = argparse.ArgumentParser(description='PyTorch Training') 30 | parser.add_argument('--batch_size', default=1, type=int, metavar='BT', 31 | help='batch size') 32 | # =============== optimizer 33 | parser.add_argument('--lr', '--learning_rate', default=1e-6, type=float, 34 | metavar='LR', help='initial learning rate') 35 | parser.add_argument('--momentum', default=0.9, type=float, metavar='M', 36 | help='momentum') 37 | parser.add_argument('--weight_decay', '--wd', default=2e-4, type=float, 38 | metavar='W', help='default weight decay') 39 | parser.add_argument('--stepsize', default=3, type=int, 40 | metavar='SS', help='learning rate step size') 41 | parser.add_argument('--gamma', '--gm', default=0.1, type=float, 42 | help='learning rate decay parameter: Gamma') 43 | parser.add_argument('--maxepoch', default=30, type=int, metavar='N', 44 | help='number of total epochs to run') 45 | parser.add_argument('--itersize', default=10, type=int, 46 | metavar='IS', help='iter size') 47 | # =============== misc 48 | parser.add_argument('--start_epoch', default=0, type=int, metavar='N', 49 | help='manual epoch number (useful on restarts)') 50 | parser.add_argument('--print_freq', '-p', default=1000, type=int, 51 | metavar='N', help='print frequency (default: 50)') 52 | parser.add_argument('--gpu', default='0', type=str, 53 | help='GPU ID') 54 | parser.add_argument('--resume', default='', type=str, metavar='PATH', 55 | help='path to latest checkpoint (default: none)') 56 | parser.add_argument('--tmp', help='tmp folder', default='tmp/RCF') 57 | # ================ dataset 58 | # parser.add_argument('--dataset', help='root folder of dataset', default='data/HED-BSDS_PASCAL') 59 | parser.add_argument('--dataset', help='root folder of dataset', default='/home/itlchennai/Edge_Analysis/pack_1/pack_1/data/HED-BSDS/') 60 | 61 | args = parser.parse_args() 62 | 63 | os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" # see issue #152 64 | os.environ["CUDA_VISIBLE_DEVICES"] = args.gpu 65 | 66 | THIS_DIR = abspath(dirname(__file__)) 67 | TMP_DIR = join(THIS_DIR, args.tmp) 68 | if not isdir(TMP_DIR): 69 | os.makedirs(TMP_DIR) 70 | # print('***', args.lr) 71 | def main(): 72 | args.cuda = True 73 | # dataset 74 | # train_dataset = BSDS_RCFLoader(root=args.dataset, lst= "train_pair.lst") 75 | # test_dataset = BSDS_RCFLoader(root=args.dataset, lst= "test.lst") 76 | train_dataset = BSDS_RCFLoader(root=args.dataset, split= "train") 77 | test_dataset = BSDS_RCFLoader(root=args.dataset, split= "test") 78 | train_loader = DataLoader( 79 | train_dataset, batch_size=args.batch_size, 80 | num_workers=8, drop_last=True,shuffle=True) 81 | test_loader = DataLoader( 82 | test_dataset, batch_size=args.batch_size, 83 | num_workers=8, drop_last=True,shuffle=False) 84 | with open('/home/itlchennai/Edge_Analysis/pack_1/pack_1/data/HED-BSDS/test.lst', 'r') as f: 85 | test_list = f.readlines() 86 | test_list = [split(i.rstrip())[1] for i in test_list] 87 | assert len(test_list) == len(test_loader), "%d vs %d" % (len(test_list), len(test_loader)) 88 | 89 | # model 90 | 91 | model = RCF() 92 | # print(model) 93 | 94 | model.cuda() 95 | model.apply(weights_init) 96 | load_vgg16pretrain(model) 97 | 98 | if args.resume: 99 | if isfile(args.resume): 100 | # print("=> loading checkpoint '{}'".format(args.resume)) 101 | checkpoint = torch.load(args.resume) 102 | model.load_state_dict(checkpoint['state_dict']) 103 | # print("=> loaded checkpoint '{}'".format(args.resume)) 104 | # else: 105 | # print("=> no checkpoint found at '{}'".format(args.resume)) 106 | 107 | #tune lr 108 | net_parameters_id = {} 109 | net = model 110 | for pname, p in net.named_parameters(): 111 | if pname in ['conv1_1.weight','conv1_2.weight', 112 | 'conv2_1.weight','conv2_2.weight', 113 | 'conv3_1.weight','conv3_2.weight','conv3_3.weight', 114 | 'conv4_1.weight','conv4_2.weight','conv4_3.weight']: 115 | # print(pname, 'lr:1 de:1') 116 | if 'conv1-4.weight' not in net_parameters_id: 117 | net_parameters_id['conv1-4.weight'] = [] 118 | net_parameters_id['conv1-4.weight'].append(p) 119 | elif pname in ['conv1_1.bias','conv1_2.bias', 120 | 'conv2_1.bias','conv2_2.bias', 121 | 'conv3_1.bias','conv3_2.bias','conv3_3.bias', 122 | 'conv4_1.bias','conv4_2.bias','conv4_3.bias']: 123 | # print(pname, 'lr:2 de:0') 124 | if 'conv1-4.bias' not in net_parameters_id: 125 | net_parameters_id['conv1-4.bias'] = [] 126 | net_parameters_id['conv1-4.bias'].append(p) 127 | elif pname in ['conv5_1.weight','conv5_2.weight','conv5_3.weight']: 128 | # print(pname, 'lr:100 de:1') 129 | if 'conv5.weight' not in net_parameters_id: 130 | net_parameters_id['conv5.weight'] = [] 131 | net_parameters_id['conv5.weight'].append(p) 132 | elif pname in ['conv5_1.bias','conv5_2.bias','conv5_3.bias'] : 133 | # print(pname, 'lr:200 de:0') 134 | if 'conv5.bias' not in net_parameters_id: 135 | net_parameters_id['conv5.bias'] = [] 136 | net_parameters_id['conv5.bias'].append(p) 137 | elif pname in ['conv1_1_down.weight','conv1_2_down.weight', 138 | 'conv2_1_down.weight','conv2_2_down.weight', 139 | 'conv3_1_down.weight','conv3_2_down.weight','conv3_3_down.weight', 140 | 'conv4_1_down.weight','conv4_2_down.weight','conv4_3_down.weight', 141 | 'conv5_1_down.weight','conv5_2_down.weight','conv5_3_down.weight']: 142 | # print(pname, 'lr:0.1 de:1') 143 | if 'conv_down_1-5.weight' not in net_parameters_id: 144 | net_parameters_id['conv_down_1-5.weight'] = [] 145 | net_parameters_id['conv_down_1-5.weight'].append(p) 146 | elif pname in ['conv1_1_down.bias','conv1_2_down.bias', 147 | 'conv2_1_down.bias','conv2_2_down.bias', 148 | 'conv3_1_down.bias','conv3_2_down.bias','conv3_3_down.bias', 149 | 'conv4_1_down.bias','conv4_2_down.bias','conv4_3_down.bias', 150 | 'conv5_1_down.bias','conv5_2_down.bias','conv5_3_down.bias']: 151 | # print(pname, 'lr:0.2 de:0') 152 | if 'conv_down_1-5.bias' not in net_parameters_id: 153 | net_parameters_id['conv_down_1-5.bias'] = [] 154 | net_parameters_id['conv_down_1-5.bias'].append(p) 155 | elif pname in ['score_dsn1.weight','score_dsn2.weight','score_dsn3.weight', 156 | 'score_dsn4.weight','score_dsn5.weight']: 157 | # print(pname, 'lr:0.01 de:1') 158 | if 'score_dsn_1-5.weight' not in net_parameters_id: 159 | net_parameters_id['score_dsn_1-5.weight'] = [] 160 | net_parameters_id['score_dsn_1-5.weight'].append(p) 161 | elif pname in ['score_dsn1.bias','score_dsn2.bias','score_dsn3.bias', 162 | 'score_dsn4.bias','score_dsn5.bias']: 163 | # print(pname, 'lr:0.02 de:0') 164 | if 'score_dsn_1-5.bias' not in net_parameters_id: 165 | net_parameters_id['score_dsn_1-5.bias'] = [] 166 | net_parameters_id['score_dsn_1-5.bias'].append(p) 167 | elif pname in ['score_final.weight']: 168 | # print(pname, 'lr:0.001 de:1') 169 | if 'score_final.weight' not in net_parameters_id: 170 | net_parameters_id['score_final.weight'] = [] 171 | net_parameters_id['score_final.weight'].append(p) 172 | elif pname in ['score_final.bias']: 173 | # print(pname, 'lr:0.002 de:0') 174 | if 'score_final.bias' not in net_parameters_id: 175 | net_parameters_id['score_final.bias'] = [] 176 | net_parameters_id['score_final.bias'].append(p) 177 | 178 | optimizer = torch.optim.SGD([ 179 | {'params': net_parameters_id['conv1-4.weight'] , 'lr': args.lr*1 , 'weight_decay': args.weight_decay}, 180 | {'params': net_parameters_id['conv1-4.bias'] , 'lr': args.lr*2 , 'weight_decay': 0.}, 181 | {'params': net_parameters_id['conv5.weight'] , 'lr': args.lr*100 , 'weight_decay': args.weight_decay}, 182 | {'params': net_parameters_id['conv5.bias'] , 'lr': args.lr*200 , 'weight_decay': 0.}, 183 | {'params': net_parameters_id['conv_down_1-5.weight'], 'lr': args.lr*0.1 , 'weight_decay': args.weight_decay}, 184 | {'params': net_parameters_id['conv_down_1-5.bias'] , 'lr': args.lr*0.2 , 'weight_decay': 0.}, 185 | {'params': net_parameters_id['score_dsn_1-5.weight'], 'lr': args.lr*0.01 , 'weight_decay': args.weight_decay}, 186 | {'params': net_parameters_id['score_dsn_1-5.bias'] , 'lr': args.lr*0.02 , 'weight_decay': 0.}, 187 | {'params': net_parameters_id['score_final.weight'] , 'lr': args.lr*0.001, 'weight_decay': args.weight_decay}, 188 | {'params': net_parameters_id['score_final.bias'] , 'lr': args.lr*0.002, 'weight_decay': 0.}, 189 | ], lr=args.lr, momentum=args.momentum, weight_decay=args.weight_decay) 190 | scheduler = lr_scheduler.StepLR(optimizer, step_size=args.stepsize, gamma=args.gamma) 191 | 192 | 193 | # optimizer = torch.optim.Adam([ 194 | # {'params': net_parameters_id['conv1-4.weight'] , 'lr': args.lr*1 , 'weight_decay': args.weight_decay}, 195 | # {'params': net_parameters_id['conv1-4.bias'] , 'lr': args.lr*2 , 'weight_decay': 0.}, 196 | # {'params': net_parameters_id['conv5.weight'] , 'lr': args.lr*100 , 'weight_decay': args.weight_decay}, 197 | # {'params': net_parameters_id['conv5.bias'] , 'lr': args.lr*200 , 'weight_decay': 0.}, 198 | # {'params': net_parameters_id['conv_down_1-5.weight'], 'lr': args.lr*0.1 , 'weight_decay': args.weight_decay}, 199 | # {'params': net_parameters_id['conv_down_1-5.bias'] , 'lr': args.lr*0.2 , 'weight_decay': 0.}, 200 | # {'params': net_parameters_id['score_dsn_1-5.weight'], 'lr': args.lr*0.01 , 'weight_decay': args.weight_decay}, 201 | # {'params': net_parameters_id['score_dsn_1-5.bias'] , 'lr': args.lr*0.02 , 'weight_decay': 0.}, 202 | # {'params': net_parameters_id['score_final.weight'] , 'lr': args.lr*0.001, 'weight_decay': args.weight_decay}, 203 | # {'params': net_parameters_id['score_final.bias'] , 'lr': args.lr*0.002, 'weight_decay': 0.}, 204 | # ], lr=args.lr, betas=(0.9, 0.99), weight_decay=args.weight_decay) 205 | # scheduler = lr_scheduler.StepLR(optimizer, step_size=args.stepsize, gamma=args.gamma) 206 | 207 | # log 208 | log = Logger(join(TMP_DIR, '%s-%d-log.txt' %('sgd',args.lr))) 209 | sys.stdout = log 210 | 211 | train_loss = [] 212 | train_loss_detail = [] 213 | for epoch in range(args.start_epoch, args.maxepoch): 214 | if epoch == 0: 215 | # print("Performing initial testing...") 216 | multiscale_test(model, test_loader, epoch=epoch, test_list=test_list, 217 | save_dir = join(TMP_DIR, 'initial-testing-record')) 218 | 219 | tr_avg_loss, tr_detail_loss = train( 220 | train_loader, model, optimizer, epoch, 221 | save_dir = join(TMP_DIR, 'epoch-%d-training-record' % epoch)) 222 | test(model, test_loader, epoch=epoch, test_list=test_list, 223 | save_dir = join(TMP_DIR, 'epoch-%d-testing-record-view' % epoch)) 224 | multiscale_test(model, test_loader, epoch=epoch, test_list=test_list, 225 | save_dir = join(TMP_DIR, 'epoch-%d-testing-record' % epoch)) 226 | log.flush() # write log 227 | # Save checkpoint 228 | save_file = os.path.join(TMP_DIR, 'checkpoint_epoch{}.pth'.format(epoch)) 229 | save_checkpoint({ 230 | 'epoch': epoch, 231 | 'state_dict': model.state_dict(), 232 | 'optimizer': optimizer.state_dict() 233 | }, filename=save_file) 234 | scheduler.step() # will adjust learning rate 235 | # save train/val loss/accuracy, save every epoch in case of early stop 236 | train_loss.append(tr_avg_loss) 237 | train_loss_detail += tr_detail_loss 238 | 239 | def train(train_loader, model, optimizer, epoch, save_dir): 240 | batch_time = Averagvalue() 241 | data_time = Averagvalue() 242 | losses = Averagvalue() 243 | # switch to train mode 244 | model.train() 245 | end = time.time() 246 | epoch_loss = [] 247 | counter = 0 248 | for i, (image, label) in enumerate(train_loader): 249 | # measure data loading time 250 | data_time.update(time.time() - end) 251 | image, label = image.cuda(), label.cuda() 252 | outputs = model(image) 253 | loss = torch.zeros(1).cuda() 254 | for o in outputs: 255 | loss = loss + cross_entropy_loss_RCF(o, label) 256 | counter += 1 257 | loss = loss / args.itersize 258 | loss.backward() 259 | if counter == args.itersize: 260 | optimizer.step() 261 | optimizer.zero_grad() 262 | counter = 0 263 | # measure accuracy and record loss 264 | losses.update(loss.item(), image.size(0)) 265 | epoch_loss.append(loss.item()) 266 | batch_time.update(time.time() - end) 267 | end = time.time() 268 | # display and logging 269 | if not isdir(save_dir): 270 | os.makedirs(save_dir) 271 | if i % args.print_freq == 0: 272 | info = 'Epoch: [{0}/{1}][{2}/{3}] '.format(epoch, args.maxepoch, i, len(train_loader)) + \ 273 | 'Time {batch_time.val:.3f} (avg:{batch_time.avg:.3f}) '.format(batch_time=batch_time) + \ 274 | 'Loss {loss.val:f} (avg:{loss.avg:f}) '.format( 275 | loss=losses) 276 | print(info) 277 | label_out = torch.eq(label, 1).float() 278 | outputs.append(label_out) 279 | _, _, H, W = outputs[0].shape 280 | all_results = torch.zeros((len(outputs), 1, H, W)) 281 | for j in range(len(outputs)): 282 | all_results[j, 0, :, :] = outputs[j][0, 0, :, :] 283 | torchvision.utils.save_image(1-all_results, join(save_dir, "iter-%d.jpg" % i)) 284 | # save checkpoint 285 | save_checkpoint({ 286 | 'epoch': epoch, 287 | 'state_dict': model.state_dict(), 288 | 'optimizer': optimizer.state_dict() 289 | }, filename=join(save_dir, "epoch-%d-checkpoint.pth" % epoch)) 290 | 291 | return losses.avg, epoch_loss 292 | 293 | def test(model, test_loader, epoch, test_list, save_dir): 294 | model.eval() 295 | if not isdir(save_dir): 296 | os.makedirs(save_dir) 297 | for idx, image in enumerate(test_loader): 298 | image = image.cuda() 299 | _, _, H, W = image.shape 300 | results = model(image) 301 | result = torch.squeeze(results[-1].detach()).cpu().numpy() 302 | results_all = torch.zeros((len(results), 1, H, W)) 303 | for i in range(len(results)): 304 | results_all[i, 0, :, :] = results[i] 305 | filename = splitext(test_list[idx])[0] 306 | torchvision.utils.save_image(1-results_all, join(save_dir, "%s.jpg" % filename)) 307 | result = Image.fromarray((result * 255).astype(np.uint8)) 308 | result.save(join(save_dir, "%s.png" % filename)) 309 | # print("Running test [%d/%d]" % (idx + 1, len(test_loader))) 310 | # torch.nn.functional.upsample(input, size=None, scale_factor=None, mode='nearest', align_corners=None) 311 | 312 | def multiscale_test(model, test_loader, epoch, test_list, save_dir): 313 | model.eval() 314 | if not isdir(save_dir): 315 | os.makedirs(save_dir) 316 | scale = [0.5, 1, 1.5] 317 | for idx, image in enumerate(test_loader): 318 | image = image[0] 319 | image_in = image.numpy().transpose((1,2,0)) 320 | _, H, W = image.shape 321 | multi_fuse = np.zeros((H, W), np.float32) 322 | for k in range(0, len(scale)): 323 | im_ = cv2.resize(image_in, None, fx=scale[k], fy=scale[k], interpolation=cv2.INTER_LINEAR) 324 | im_ = im_.transpose((2,0,1)) 325 | results = model(torch.unsqueeze(torch.from_numpy(im_).cuda(), 0)) 326 | result = torch.squeeze(results[-1].detach()).cpu().numpy() 327 | fuse = cv2.resize(result, (W, H), interpolation=cv2.INTER_LINEAR) 328 | multi_fuse += fuse 329 | multi_fuse = multi_fuse / len(scale) 330 | ### rescale trick suggested by jiangjiang 331 | # multi_fuse = (multi_fuse - multi_fuse.min()) / (multi_fuse.max() - multi_fuse.min()) 332 | filename = splitext(test_list[idx])[0] 333 | result_out = Image.fromarray(((1-multi_fuse) * 255).astype(np.uint8)) 334 | result_out.save(join(save_dir, "%s.jpg" % filename)) 335 | result_out_test = Image.fromarray((multi_fuse * 255).astype(np.uint8)) 336 | result_out_test.save(join(save_dir, "%s.png" % filename)) 337 | # print("Running test [%d/%d]" % (idx + 1, len(test_loader))) 338 | 339 | def weights_init(m): 340 | if isinstance(m, nn.Conv2d): 341 | # xavier(m.weight.data) 342 | m.weight.data.normal_(0, 0.01) 343 | if m.weight.data.shape == torch.Size([1, 5, 1, 1]): 344 | # for new_score_weight 345 | torch.nn.init.constant_(m.weight, 0.2) # as per https://github.com/yun-liu/rcf 346 | if m.bias is not None: 347 | m.bias.data.zero_() 348 | 349 | if __name__ == '__main__': 350 | startinitial_time = time.time() 351 | main() 352 | # print("--- %s seconds ---" % (time.time() - startinitial_time)) 353 | -------------------------------------------------------------------------------- /utils.py: -------------------------------------------------------------------------------- 1 | import os, sys 2 | import torch 3 | import torch.nn as nn 4 | import torch.nn.functional as F 5 | import torchvision.models as models 6 | import torch.autograd.variable as Variable 7 | import numpy as np 8 | import scipy.io as sio 9 | from os.path import join as pjoin 10 | #from skimage.transform import resize 11 | #from models import HiFi1Edge 12 | import skimage.io as io 13 | import time 14 | import skimage 15 | import warnings 16 | from PIL import Image 17 | 18 | class Logger(object): 19 | def __init__(self, fpath=None): 20 | self.console = sys.stdout 21 | self.file = None 22 | if fpath is not None: 23 | self.file = open(fpath, 'w') 24 | 25 | def __del__(self): 26 | self.close() 27 | 28 | def __enter__(self): 29 | pass 30 | 31 | def __exit__(self, *args): 32 | self.close() 33 | 34 | def write(self, msg): 35 | self.console.write(msg) 36 | if self.file is not None: 37 | self.file.write(msg) 38 | 39 | def flush(self): 40 | self.console.flush() 41 | if self.file is not None: 42 | self.file.flush() 43 | os.fsync(self.file.fileno()) 44 | 45 | def close(self): 46 | self.console.close() 47 | if self.file is not None: 48 | self.file.close() 49 | 50 | class Averagvalue(object): 51 | """Computes and stores the average and current value""" 52 | 53 | def __init__(self): 54 | self.reset() 55 | 56 | def reset(self): 57 | self.val = 0 58 | self.avg = 0 59 | self.sum = 0 60 | self.count = 0 61 | 62 | def update(self, val, n=1): 63 | self.val = val 64 | self.sum += val * n 65 | self.count += n 66 | self.avg = self.sum / self.count 67 | 68 | def save_checkpoint(state, filename='checkpoint.pth'): 69 | torch.save(state, filename) 70 | 71 | def load_pretrained(model, fname, optimizer=None): 72 | """ 73 | resume training from previous checkpoint 74 | :param fname: filename(with path) of checkpoint file 75 | :return: model, optimizer, checkpoint epoch 76 | """ 77 | if os.path.isfile(fname): 78 | print("=> loading checkpoint '{}'".format(fname)) 79 | checkpoint = torch.load(fname) 80 | model.load_state_dict(checkpoint['state_dict']) 81 | if optimizer is not None: 82 | optimizer.load_state_dict(checkpoint['optimizer']) 83 | return model, optimizer, checkpoint['epoch'] 84 | else: 85 | return model, checkpoint['epoch'] 86 | else: 87 | print("=> no checkpoint found at '{}'".format(fname)) 88 | 89 | def load_vgg16pretrain(model, vggmodel='vgg16convs.mat'): 90 | vgg16 = sio.loadmat(vggmodel) 91 | torch_params = model.state_dict() 92 | 93 | for k in vgg16.keys(): 94 | name_par = k.split('-') 95 | size = len(name_par) 96 | if size == 2: 97 | name_space = name_par[0] + '.' + name_par[1] 98 | data = np.squeeze(vgg16[k]) 99 | torch_params[name_space] = torch.from_numpy(data) 100 | model.load_state_dict(torch_params) 101 | 102 | def load_vgg16pretrain_half(model, vggmodel='vgg16convs.mat'): 103 | vgg16 = sio.loadmat(vggmodel) 104 | torch_params = model.state_dict() 105 | for k in vgg16.keys(): 106 | name_par = k.split('-') 107 | size = len(name_par) 108 | if size == 2: 109 | name_space = name_par[0] + '.' + name_par[1] 110 | data = np.squeeze(vgg16[k]) 111 | shape = data.shape 112 | index = int(shape[0]/2) 113 | if len(shape) == 1: 114 | data = data[:index] 115 | else: 116 | data = data[:index,:,:,:] 117 | torch_params[name_space] = torch.from_numpy(data) 118 | model.load_state_dict(torch_params) 119 | 120 | def load_fsds_caffe(model, fsdsmodel='caffe-fsds.mat'): 121 | fsds = sio.loadmat(fsdsmodel) 122 | torch_params = model.state_dict() 123 | for k in fsds.keys(): 124 | name_par = k.split('-') 125 | 126 | size = len(name_par) 127 | 128 | data = np.squeeze(fsds[k]) 129 | 130 | 131 | if 'upsample' in name_par: 132 | # print('skip upsample') 133 | continue 134 | 135 | 136 | if size == 2: 137 | name_space = name_par[0] + '.' + name_par[1] 138 | data = np.squeeze(fsds[k]) 139 | if data.ndim==2: 140 | data = np.reshape(data, (data.shape[0], data.shape[1])) 141 | 142 | torch_params[name_space] = torch.from_numpy(data) 143 | 144 | if size == 3: 145 | # if 'bias' in name_par: 146 | # continue 147 | 148 | name_space = name_par[0] + '_' + name_par[1]+ '.' + name_par[2] 149 | data = np.squeeze(fsds[k]) 150 | # print(data.shape) 151 | if data.ndim==2: 152 | # print (data.shape[0]) 153 | data = np.reshape(data,(data.shape[0], data.shape[1])) 154 | if data.ndim==1 : 155 | data = np.reshape(data, (1, len(data), 1, 1)) 156 | if data.ndim==0: 157 | data = np.reshape(data, (1)) 158 | 159 | torch_params[name_space] = torch.from_numpy(data) 160 | 161 | if size == 4: 162 | # if 'bias' in name_par: 163 | # continue 164 | data = np.squeeze(fsds[k]) 165 | name_space = name_par[0] + '_' + name_par[1] + name_par[2] + '.' + name_par[3] 166 | if data.ndim==2: 167 | data = np.reshape(data,(data.shape[0], data.shape[1], 1, 1)) 168 | 169 | torch_params[name_space] = torch.from_numpy(data) 170 | 171 | model.load_state_dict(torch_params) 172 | print('loaded') 173 | --------------------------------------------------------------------------------