예제 #1
0
def main():

    in_arg = IO.get_input_args(train=True)

    device = IO.get_device(in_arg.gpu)

    dataloaders, class_to_idx = IO.get_image_data(in_arg.data_directory)

    classifier = Classifier(arch=in_arg.arch,
                            hidden_units=in_arg.hidden_units,
                            output_units=102,
                            learning_rate=in_arg.learning_rate,
                            epochs=in_arg.epochs,
                            device=device)

    classifier.train_model(dataloaders['trainloader'],
                           dataloaders['validloader'])

    trained_classifier = classifier.get_trained_classifier()

    checkpoint = {
        'classifier': trained_classifier['classifier'],
        'state_dict': trained_classifier['state_dict'],
        'learning_rate': trained_classifier['learning_rate'],
        'epochs': trained_classifier['epochs'],
        'class_to_idx': class_to_idx
    }

    IO.save_checkpoint(checkpoint, in_arg.save_dir)
예제 #2
0
def main():

    in_arg = IO.get_input_args(train=False)

    device = IO.get_device(in_arg.gpu)

    category_names = IO.get_label_mapping(in_arg.category_names)

    checkpoint = IO.load_checkpoint(in_arg.checkpoint)

    classifier = Classifier.generate_classifier_by_checkpoint(
        checkpoint, in_arg.arch, device)

    image = IO.load_image(in_arg.image_path)

    image_tensor = ImageUtils.get_image_tensor(image)

    probs, classes = classifier.predict(image_tensor, in_arg.top_k,
                                        checkpoint['class_to_idx'])

    labels = [category_names[cls] for cls in classes]

    print(probs)
    print(classes)
    print(labels)