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
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)