Exemplo n.º 1
0
def train(net: EMGClassifier, gesture_amount):
    train_set = CSLDataset(gesture=gesture_amount,
                           frame_x=True,
                           sequence_len=10,
                           train=True)
    net.dataset = train_set
    net.fit_with_dataset()
    return net
Exemplo n.º 2
0
def train(net: EMGClassifier, gesture_indices: list):
    train_set = CapgDataset(gestures_label_map=net.gesture_map,
                            sequence_len=1,
                            frame_x=True,
                            gesture_list=gesture_indices,
                            train=True)
    net.dataset = train_set
    net.fit_with_dataset()
    return net
Exemplo n.º 3
0
def train(net: EMGClassifier, gesture_indices: list):
    if net.hyperparamters['dataset'] == 'capg':
        train_set = CapgDataset(gestures_label_map=net.gesture_map,
                                sequence_len=1,
                                gesture_list=gesture_indices,
                                train=True)
    else:
        train_set = CSLDataset(gesture=8,
                               sequence_len=1,
                               train=True)
    net.dataset = train_set
    net.fit_with_dataset()
    return net
Exemplo n.º 4
0
def main(train_args, TEST_MODE=False):
    args = train_args
    if args['gesture_num'] == 8:
        all_gestures = list(range(8))
    elif args['gesture_num'] == 12:
        all_gestures = list(range(8, 20))
    else:
        all_gestures = list(range(args['gesture_num']))

    model = CNN(len(all_gestures))
    name = args['name']
    sub_folder = args['sub_folder']

    tensorboard_cb = config_tensorboard(name, sub_folder)

    from emg.utils.lr_scheduler import DecayLR
    lr_callback = DecayLR(start_lr=args['lr'],
                          gamma=0.5,
                          step_size=args['lr_step'])

    net = EMGClassifier(module=model,
                        model_name=name,
                        sub_folder=sub_folder,
                        hyperparamters=args,
                        optimizer=torch.optim.Adam,
                        gesture_list=all_gestures,
                        callbacks=[tensorboard_cb, lr_callback])
    if not TEST_MODE:
        net = train(net, all_gestures)

    confusion_matrx = test(net, all_gestures)
    return confusion_matrx
Exemplo n.º 5
0
def main(train_args, TEST_MODE=False):
    # 1. 设置好optimizer
    # 2. 定义好model
    args = train_args
    all_gestures = list(range(args['gesture_num']))

    model = C3D(len(all_gestures))
    name = args['name']
    sub_folder = args['sub_folder']

    # from emg.utils import config_tensorboard
    # tensorboard_cb = config_tensorboard(name, sub_folder)

    from emg.utils.lr_scheduler import DecayLR
    lr_callback = DecayLR(start_lr=args['lr'],
                          gamma=0.5,
                          step_size=args['lr_step'])

    net = EMGClassifier(module=model,
                        model_name=name,
                        sub_folder=sub_folder,
                        hyperparamters=args,
                        optimizer=torch.optim.Adam,
                        gesture_list=all_gestures,
                        callbacks=[lr_callback])

    net = train(net, args['gesture_num'])

    net = test(net, args['gesture_num'], all_gestures)
Exemplo n.º 6
0
def test(net: EMGClassifier, gesture_amount, gesture_indices: list):
    test_set = CSLDataset(gesture=gesture_amount,
                          frame_x=True,
                          sequence_len=10,
                          train=False)

    avg_score = net.test_model(gesture_indices, test_set)
    print('test accuracy: {:.4f}'.format(avg_score))
    return net
Exemplo n.º 7
0
def test(net: EMGClassifier, gesture_indices: list):
    test_set = CapgDataset(gestures_label_map=net.gesture_map,
                           sequence_len=1,
                           frame_x=True,
                           gesture_list=gesture_indices,
                           train=False)

    avg_score, matrix = net.test_model(gesture_indices, test_set)
    print('test accuracy: {:.4f}'.format(avg_score))
    return matrix
Exemplo n.º 8
0
def test(net: EMGClassifier, gesture_indices: list):
    if net.hyperparamters['dataset'] == 'capg':
        test_set = CapgDataset(gestures_label_map=net.gesture_map,
                               sequence_len=1,
                               gesture_list=gesture_indices,
                               train=False)
    else:
        test_set = CSLDataset(gesture=8,
                              sequence_len=1,
                              train=False)

    avg_score, matrix = net.test_model(gesture_indices, test_set)
    print('test accuracy: {:.4f}'.format(avg_score))
    return matrix
Exemplo n.º 9
0
def main(train_args, TEST_MODE=False):
    if train_args['dataset'] == 'capg':
        args = {**train_args, **capg_args}
    else:
        args = {**train_args, **csl_args}

    if args['gesture_num'] == 8:
        all_gestures = list(range(8))
    elif args['gesture_num'] == 12:
        all_gestures = list(range(8, 20))
    else:
        all_gestures = list(range(args['gesture_num']))

    model = MLP(args['input_size'], args['hidden_size'], len(all_gestures))
    name = args['name']
    sub_folder = args['sub_folder']

    # from emg.utils import config_tensorboard
    # tensorboard_cb = config_tensorboard(name, sub_folder, model, (1, 128))

    from emg.utils.lr_scheduler import DecayLR
    lr_callback = DecayLR(start_lr=args['lr'], gamma=0.5, step_size=args['lr_step'])

    net = EMGClassifier(module=model,
                        model_name=name,
                        sub_folder=sub_folder,
                        hyperparamters=args,
                        optimizer=torch.optim.Adam,
                        gesture_list=all_gestures,
                        callbacks=[lr_callback])

    if not TEST_MODE:
        net = train(net, all_gestures)

    confusion_matrx = test(net, all_gestures)
    return confusion_matrx