This commit is contained in:
Glenn Jocher 2019-04-24 12:58:14 +02:00
parent 87a450c933
commit 1771ffb1cf
1 changed files with 10 additions and 8 deletions

View File

@ -100,19 +100,23 @@ def train(
else: else:
cutoff = load_darknet_weights(model, weights + 'darknet53.conv.74') cutoff = load_darknet_weights(model, weights + 'darknet53.conv.74')
# Scheduler (reduce lr at epochs 218, 245, i.e. batches 400k, 450k) # Scheduler https://github.com/ultralytics/yolov3/issues/238
# lf = lambda x: 1 - x / epochs # linear ramp to zero # lf = lambda x: 1 - x / epochs # linear ramp to zero
# lf = lambda x: 10 ** (-2 * x / epochs) # exp ramp to lr0 * 1e-2 # lf = lambda x: 10 ** (hyp['lrf'] * x / epochs) # exp ramp to lr0 * hyp['lrf']
lf = lambda x: 1 - 10 ** (hyp['lrf'] * (1 - x / epochs)) # inv exp ramp to lr0 * 1e-2 lf = lambda x: 1 - 10 ** (hyp['lrf'] * (1 - x / epochs)) # inv exp ramp to lr0 * hyp['lrf']
scheduler = optim.lr_scheduler.LambdaLR(optimizer, lr_lambda=lf, last_epoch=start_epoch - 1) scheduler = optim.lr_scheduler.LambdaLR(optimizer, lr_lambda=lf, last_epoch=start_epoch - 1)
# scheduler = optim.lr_scheduler.MultiStepLR(optimizer, milestones=[218, 245], gamma=0.1, last_epoch=start_epoch - 1) # scheduler = optim.lr_scheduler.MultiStepLR(optimizer, milestones=[218, 245], gamma=0.1, last_epoch=start_epoch - 1)
# Plot lr schedule # # Plot lr schedule
# y = [] # y = []
# for _ in range(epochs): # for _ in range(epochs):
# scheduler.step() # scheduler.step()
# y.append(optimizer.param_groups[0]['lr']) # y.append(optimizer.param_groups[0]['lr'])
# plt.plot(y) # plt.plot(y, label='LambdaLR')
# plt.xlabel('epoch')
# plt.xlabel('LR')
# plt.tight_layout()
# plt.savefig('LR.png', dpi=300)
# Dataset # Dataset
dataset = LoadImagesAndLabels(train_path, img_size=img_size, augment=True) dataset = LoadImagesAndLabels(train_path, img_size=img_size, augment=True)
@ -165,8 +169,6 @@ def train(
imgs = imgs.to(device) imgs = imgs.to(device)
targets = targets.to(device) targets = targets.to(device)
nt = len(targets) nt = len(targets)
# if nt == 0: # if no targets continue
# continue
# Plot images with bounding boxes # Plot images with bounding boxes
if epoch == 0 and i == 0: if epoch == 0 and i == 0: