def trainGaussian():
    training_seed = 1
    layers = [
        pnet.OrientedGaussianPartsLayer(32,4,(5,5),settings=dict(
            seed=training_seed,
            n_init = 2,
            samples_per_image=40,
            max_samples=100000,
            channel_mode='together'
            #covariance_type = ''
        )),
        pnet.PoolingLayer(shape=(8,8),strides=(2,2)),
        pnet.SVMClassificationLayer(C=1.0)
    ]
    net = pnet.PartsNet(layers)
    trainingData, trainingLabel, testingData, testingLabel = load_mean_cifar10()
    net.train(np.rollaxis(trainingData,1,4)/255.0, trainingLabel)
    return net
示例#2
0
                           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,
                )),
            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()
    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)
    for i in range(11):
        
        clnet = pnet.PartsNet([net] + [pnet.PoolingLayer(shape=(4,4),strides=(4,4)), pnet.SVMClassificationLayer(C=None)])
        digits = range(10)
        sup_ims = []
        sup_labels = []
        rs = np.random.RandomState(i)
        for d in digits:
            ims0 = ag.io.load_mnist('training',[d],return_labels=False)
            #indices = [k for k in range(len(label)) if label[k] in [d]]
            indices = np.arange(ims0.shape[0])
            print(indices[:10])
            rs.shuffle(indices)
            print(indices[:10])
            sup_ims.append(ims0[indices[:10]])
            sup_labels.append(d * np.ones(10,dtype=np.int64))
        sup_ims = np.concatenate(sup_ims, axis = 0)
        sup_labels = np.concatenate(sup_labels, axis = 0)