Example #1
0
            pnet.PartsLayer(
                numParts,
                (patchSize, patchSize),
                settings=dict(
                    outer_frame=0,
                    #em_seed=training_seed,
                    threshold=40,
                    samples_per_image=40,
                    max_samples=1000000,
                    min_prob=0.005,
                )),
            pnet.PoolingLayer(shape=(4, 4), strides=(4, 4)),
            pnet.SVMClassificationLayer(C=None)
        ]

        net = pnet.PartsNet(layers)

        digits = range(10)
        print('Extracting subsets...')

        ims10k = data[:10000]
        print('Done.')

        start0 = time.time()
        print('Training unsupervised...')
        net.train(ims10k)
        print('Done.')
        end0 = time.time()

        error_rates = []
        test_ims, test_labels = ag.io.load_mnist('testing', return_labels=True)
Example #2
0
        for n_classes in num_class_models0:
            print('Classifier:', classifier, 'Components:', n_classes)
            if classifier == 'mixture':
                layers = [
                    pnet.PoolingLayer(shape=(4, 4), strides=(4, 4)),
                    pnet.MixtureClassificationLayer(n_components=n_classes,
                                                    min_prob=1e-5)
                ]
            elif classifier == 'svm':
                layers = [
                    pnet.PoolingLayer(shape=(4, 4), strides=(4, 4)),
                    pnet.SVMClassificationLayer(C=None),
                ]

            clnet = pnet.PartsNet([net] + layers)

            start1 = time.time()
            print('Training supervised...')
            print(sup_ims.shape)
            clnet.train(sup_ims, sup_labels)
            print('Done.')
            end1 = time.time()

            corrects = 0
            total = 0
            if 0:
                test_ims, test_labels = mnist_data['test_image'], mnist_data[
                    'test_label']
            else:
                test_ims = ims2k
    
    print("Inside")
    layers = [
        pnet.EdgeLayer(k=5, radius=1, spread='orthogonal', minimum_contrast=0.05),#

                pnet.PartsLayer(numParts, (patchSize, patchSize), settings=dict(outer_frame=0,
                                                  #em_seed=training_seed,
                                                  threshold=40,
                                                  samples_per_image=40,
                                                  max_samples=1000000,
                                                  min_prob=0.005,
                                                  )),
                
    ]

    net = pnet.PartsNet(layers)

    digits = range(10)
    print('Extracting subsets...')

    ims10k = data[:10000]
    print('Done.')


    start0 = time.time()
    print('Training unsupervised...')
    net.train(ims10k)
    print('Done.')
    end0 = time.time()

    error_rates = []
    extensionPatchSize = args.extensionPatchSize
    data = np.load(dataFileName)
    training_seed = args.seed
    num_rotation = args.num_rotation
    net = pnet.PartsNet.load(args.model)

    print("Inside")
    extensionlayers = [
        pnet.RotExtensionPartsLayer(num_parts=numParts,
                                    num_components=numExtensionParts,
                                    rotation=num_rotation,
                                    part_shape=(extensionPatchSize,
                                                extensionPatchSize),
                                    lowerLayerShape=(6, 6))
    ]
    clnet = pnet.PartsNet([net] + extensionlayers)

    digits = range(10)
    print('Extracting subsets...')

    ims10k = data[:10000]
    print('Done.')

    start0 = time.time()
    print('Training unsupervised...')
    clnet.train(ims10k)
    print('Done.')
    end0 = time.time()

    clnet.save(saveFile)
    print("=================")
    print(sup_ims.shape)
    print(sup_labels)


    for classifier in 'mixture', 'svm':
        for rotspread in [0, 1]:
            net.layers[0]._settings['rotation_spreading_radius'] = rotspread

            print('Classifier:', classifier, 'Rotational spreading:', rotspread)
            if classifier == 'mixture':
                cl = pnet.MixtureClassificationLayer(n_components=numOfClassModel, min_prob=1e-5)
            elif classifier == 'svm':
                cl = pnet.SVMClassificationLayer(C=None)

            clnet = pnet.PartsNet([net, cl])

            start1 = time.time()
            print('Training supervised...')
            print(sup_ims.shape)
            clnet.train(sup_ims, sup_labels)
            print('Done.')
            end1 = time.time()

            #print("Now testing...")
            ### Test ######################################################################

            corrects = 0
            total = 0
            if 0:
                test_ims, test_labels = mnist_data['test_image'], mnist_data['test_label']