|
|
|
@ -48,7 +48,6 @@ hyp = {'lr0': 0.01, # initial learning rate (SGD=1E-2, Adam=1E-3)
|
|
|
|
|
#print(hyp)
|
|
|
|
|
|
|
|
|
|
# Overwrite hyp with hyp*.txt (optional)
|
|
|
|
|
f = glob.glob('hyp*.txt')
|
|
|
|
|
if f:
|
|
|
|
|
print('Using %s' % f[0])
|
|
|
|
|
for k, v in zip(hyp.keys(), np.loadtxt(f[0])):
|
|
|
|
@ -64,6 +63,9 @@ def train(hyp):
|
|
|
|
|
batch_size = opt.batch_size # 64
|
|
|
|
|
weights = opt.weights # initial training weights
|
|
|
|
|
|
|
|
|
|
#write all results to the tb log_dir, so all data from one run is together
|
|
|
|
|
log_dir = tb_writer.log_dir
|
|
|
|
|
|
|
|
|
|
# Configure
|
|
|
|
|
init_seeds(1)
|
|
|
|
|
with open(opt.data) as f:
|
|
|
|
@ -192,6 +194,13 @@ def train(hyp):
|
|
|
|
|
model.class_weights = labels_to_class_weights(dataset.labels, nc).to(device) # attach class weights
|
|
|
|
|
model.names = data_dict['names']
|
|
|
|
|
|
|
|
|
|
#save hyperparamter and training options in run folder
|
|
|
|
|
with open(os.path.join(log_dir, 'hyp.yaml', 'w')) as f:
|
|
|
|
|
yaml.dump(hyp, f)
|
|
|
|
|
|
|
|
|
|
with open(os.path.join(log_dir, 'opt.yaml', 'w')) as f:
|
|
|
|
|
yaml.dump(opt, f)
|
|
|
|
|
|
|
|
|
|
# Class frequency
|
|
|
|
|
labels = np.concatenate(dataset.labels, 0)
|
|
|
|
|
c = torch.tensor(labels[:, 0]) # classes
|
|
|
|
|