示例#1
0
from config import *
from models import Model
from util import *
from samples import *
from random import shuffle

alex = Model().build_alexnet()
alex.compile(optimizer='adam',
             loss='categorical_crossentropy',
             metrics=['accuracy'])

data = list(dataset.items())
shuffle(data)
wave_data, loaded_paths, loaded_labels = load_wavs(conf, data)
train_size = int(len(loaded_paths) * 0.98)

train_XX, test_XX = wave_data[:train_size], wave_data[train_size:]
train_X, test_X = sounds_to_mels(conf, train_XX), sounds_to_mels(conf, test_XX)
train_Y, test_Y = loaded_labels[:train_size], loaded_labels[train_size:]

alex.fit([train_X], [train_Y],
         epochs=conf.epochs,
         batch_size=conf.batch_size,
         verbose=conf.verbose,
         validation_data=([test_X], [test_Y]))

alex.save("model/alexnet.h5")
示例#2
0
    dataset = YOLODataset('data/train',
                          S,
                          B,
                          C,
                          label_dict=label_dict,
                          to_tensor=to_tensor)
    dataloader = BaseDataLoader(dataset=dataset, batch_size=args.batch_size)

    len_train = len(dataset) * 8 // 10
    len_val = len(dataset) - len_train
    train_dataloader, val_dataloader = dataloader.split([len_train, len_val])

    net = YOLO(S, B, C)
    if args.gpu:
        net = net.cuda()
    net = nn.DataParallel(net)

    criterion = Loss(S, B, C)
    metric = Loss(S, B, C)
    optimizer = optim.SGD(filter(lambda p: p.requires_grad, net.parameters()),
                          lr=args.lr,
                          momentum=0.9)
    scheduler = lr_scheduler.StepLR(optimizer, step_size=10, gamma=0.1)

    model = Model(net)

    model.compile(optimizer, criterion, metric, scheduler, label_dict)
    model.fit(train_dataloader=train_dataloader,
              val_dataloader=val_dataloader,
              epoch=args.epoch,
              use_gpu=args.gpu)