In [5]:
import amitgroup as ag

In [6]:
import numpy as np
a = range(10)
img = ag.io.load_mnist("training",[4], selection= slice(100),return_labels=False)

In [7]:
import amitgroup.plot as gr

In [8]:
gr.images(img)



In [9]:
img2 = ag.io.load_mnist("training",[9], selection= slice(100),return_labels=False)
gr.images(img2)



In [10]:
img3 = ag.io.load_mnist("training",[7], selection= slice(100),return_labels=False)
gr.images(img3)



In [11]:
img4 = ag.io.load_mnist("training",[1], selection= slice(100),return_labels=False)
gr.images(img4)



In [12]:
import amitgroup as ag
import pnet

In [ ]:
edgeLayer = pnet.EdgeLayer(k=5, radius=1, spread='orthogonal', minimum_contrast=0.05)
#pnet.IntensityThresholdLayer(),

In [98]:
partsLayer = pnet.PartsLayer(20, (6, 6), settings=dict(outer_frame=0,
                                          threshold=150,
                                          samples_per_image=200,
                                          max_samples=100000,
                                          min_prob=0.005,
                                          ))

In [99]:
a = range(10)
img = ag.io.load_mnist("training",a, selection= slice(1000),return_labels=False)

In [94]:
edgeLayer.train(img)

In [95]:
imgEdges = edgeLayer.extract(img)

In [96]:
imgEdges.shape


Out[96]:
(1000, 28, 28, 8)

In [100]:
patches, originalPatches = partsLayer._get_patches(imgEdges,img)

In [23]:
type(patches)


Out[23]:
tuple

In [101]:
originalPatches.shape


Out[101]:
(0,)

In [89]:
gr.images(originalPatches[0:100])


<matplotlib.figure.Figure at 0x11826b910>

In [90]:
partsLayer.train_from_samples(patches,originalPatches)


---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-90-60133cdf0aa9> in <module>()
----> 1 partsLayer.train_from_samples(patches,originalPatches)

/Users/jiajunshen/Documents/Research/partsNet/pnet/parts_layer.pyc in train_from_samples(self, patches, patches_original)
     63         from pnet.bernoullimm import BernoulliMM
     64         min_prob = self._settings.get('min_prob', 0.01)
---> 65         flatpatches = patches.reshape((patches.shape[0], -1))
     66 
     67         if 1:

ValueError: total size of new array must be unchanged

In [ ]:
extractedFeature,num = partsLayer.extract(patches)

In [ ]:
meanPart = np.array([originalPatches[extractedFeature[:,0,0,0]==k].mean(axis = 0) for k in range(partsLayer._num_parts)])

In [81]:
totalFeature.shape


Out[81]:
(10838, 1, 1, 1)

In [75]:
originalPatches[extractedFeature[:,0,0,0]==2].shape


Out[75]:
(0, 6, 6)

In [ ]:
meanPart.shape

In [ ]:
gr.images(meanPart)

In [ ]: