Ejemplo n.º 1
0
def debug_convsparsenet(lam_sparse=.1,N=16,perc_var=100.,stride=1,kshp=(7,7),batchsize=4,imsz=(64,64)):

    from hdl.learners import SGD

    whitenpatches = 100
    if isinstance(kshp,int): kshp = (kshp,kshp)
    if isinstance(stride,int): stride = (stride,stride)
    imszr = imsz[0]
    imszc = imsz[1]

    #model = ConvWhitenInputModel(imshp=(10,1,32,32),convwhitenfiltershp=(7,7),perc_var=100.)
    model = ConvSparseSlowModel(imshp=(batchsize,1,imszr,imszc),convwhitenfiltershp=(7,7),N=N,kshp=kshp,stride=stride,
        perc_var=perc_var,lam_sparse=lam_sparse)

    l = SGD(model=model,datasource='vid075-chunks',display_every=50,save_every=10000,batchsize=model.imshp[0])

    print 'whitenpatches', whitenpatches
    print 'model.imshp', model.imshp
    print 'model.convwhitenfiltershp', model.convwhitenfiltershp

    databatch = l.get_databatch(whitenpatches)
    l.model.learn_whitening(databatch)

    l.model.setup()

    l.learn(iterations=10)
    l.model.center_basis_functions = False
    l.learn(iterations=10)
Ejemplo n.º 2
0
def test_convsparsenet(lam_sparse=.1,N=16,perc_var=100.):

    from hdl.models import SparseSlowModel
    from hdl.learners import SGD

    whitenpatches = 1000

    #model = ConvWhitenInputModel(imshp=(10,1,32,32),convwhitenfiltershp=(7,7),perc_var=100.)
    model = ConvSparseSlowModel(imshp=(10,1,28,28),convwhitenfiltershp=(7,7),N=N,kshp=(7,7),perc_var=perc_var,lam_sparse=lam_sparse)

    l = SGD(model=model,datasource='vid075-chunks',display_every=1000,save_every=10000,batchsize=model.imshp[0])

    print 'whitenpatches', whitenpatches
    print 'model.imshp', model.imshp
    print 'model.convwhitenfiltershp', model.convwhitenfiltershp

    databatch = l.get_databatch(whitenpatches)
    l.model.learn_whitening(databatch)

    l.model.setup()

    l.learn(iterations=20000)
    l.change_target(.5)
    l.learn(iterations=5000)
    l.change_target(.5)
    l.learn(iterations=5000)

    #l.learn(iterations=160000)
    #l.change_target(.5)
    #l.learn(iterations=20000)
    #l.change_target(.5)
    #l.learn(iterations=20000)

    from hdl.display import display_final
    display_final(l.model)
Ejemplo n.º 3
0
def test_convsparsenet_subspace(lam_sparse=1.,lam_slow=1.,N=8,perc_var=100.,stride=(1,1)):

    from hdl.models import ConvSparseSlowModel
    from hdl.learners import SGD

    whitenpatches = 1000
    psz = 48
    ksz = 16
    convwhitenfiltershp=(15,15)

    #model = ConvWhitenInputModel(imshp=(10,1,32,32),convwhitenfiltershp=(7,7),perc_var=100.)
    model = ConvSparseSlowModel(imshp=(4,1,psz,psz),convwhitenfiltershp=convwhitenfiltershp,N=N,kshp=(ksz,ksz),stride=stride,
        sparse_cost='subspacel1',
        perc_var=perc_var,
        lam_sparse=lam_sparse,
        lam_slow=lam_slow,
        mask=True,
        force_subspace_orthogonal=True)

    l = SGD(model=model,datasource='vid075-chunks',display_every=50,save_every=10000,
            eta_target_maxupdate=0.5,
            batchsize=model.imshp[0])

    print 'whitenpatches', whitenpatches
    print 'model.imshp', model.imshp
    print 'model.convwhitenfiltershp', model.convwhitenfiltershp

    databatch = l.get_databatch(whitenpatches)
    l.model.learn_whitening(databatch)

    l.model.setup()

    l.learn(iterations=1000)
    l.model.center_basis_functions=False
    l.learn(iterations=9000)
    l.change_target(.5)
    l.learn(iterations=5000)
    l.change_target(.5)
    l.learn(iterations=5000)

    #l.learn(iterations=160000)
    #l.change_target(.5)
    #l.learn(iterations=20000)
    #l.change_target(.5)
    #l.learn(iterations=20000)

    from hdl.display import display_final
    display_final(l.model)
Ejemplo n.º 4
0
def test_convsparsenet(lam_sparse=.1,N=16,perc_var=100.,stride=1,kshp=(7,7),batchsize=4):

    from hdl.learners import SGD

    whitenpatches = 1000
    if isinstance(kshp,int): kshp = (kshp,kshp)
    if isinstance(stride,int): stride = (stride,stride)
    imszr = 5*stride[0] + kshp[0] - 1
    imszc = 5*stride[1] + kshp[1] - 1

    #model = ConvWhitenInputModel(imshp=(10,1,32,32),convwhitenfiltershp=(7,7),perc_var=100.)
    model = ConvSparseSlowModel(imshp=(batchsize,1,imszr,imszc),convwhitenfiltershp=(7,7),N=N,kshp=kshp,stride=stride,
        perc_var=perc_var,lam_sparse=lam_sparse)

    l = SGD(model=model,datasource='vid075-chunks',display_every=50,save_every=10000,batchsize=model.imshp[0])

    print 'whitenpatches', whitenpatches
    print 'model.imshp', model.imshp
    print 'model.convwhitenfiltershp', model.convwhitenfiltershp

    databatch = l.get_databatch(whitenpatches)
    l.model.learn_whitening(databatch)

    l.model.setup()

    l.learn(iterations=5000)
    l.model.center_basis_functions = False
    l.learn(iterations=15000)
    l.change_target(.5)
    l.learn(iterations=5000)
    l.change_target(.5)
    l.learn(iterations=5000)

    #l.learn(iterations=160000)
    #l.change_target(.5)
    #l.learn(iterations=20000)
    #l.change_target(.5)
    #l.learn(iterations=20000)

    from hdl.display import display_final
    display_final(l.model)
Ejemplo n.º 5
0
def test_sparsenet_subspace(lam_sparse=1.,lam_slow=1.,N=8,perc_var=100.):

    from hdl.models import SparseSlowModel
    from hdl.learners import SGD

    whitenpatches = 10000
    psz = 16

    #model = ConvWhitenInputModel(imshp=(10,1,32,32),convwhitenfiltershp=(7,7),perc_var=100.)
    model = SparseSlowModel(patch_sz=psz,N=N,
        sparse_cost='subspacel1',
        perc_var=perc_var,
        lam_sparse=lam_sparse,
        lam_slow=lam_slow,T=48)

    l = SGD(model=model,datasource='vid075-chunks',display_every=100,save_every=10000,batchsize=model.T)

    print 'whitenpatches', whitenpatches

    databatch = l.get_databatch(whitenpatches)
    l.model.learn_whitening(databatch)

    l.model.setup()

    l.learn(iterations=5000)
    l.change_target(.5)
    l.learn(iterations=5000)
    l.change_target(.5)
    l.learn(iterations=5000)

    #l.learn(iterations=160000)
    #l.change_target(.5)
    #l.learn(iterations=20000)
    #l.change_target(.5)
    #l.learn(iterations=20000)

    from hdl.display import display_final
    display_final(l.model)
Ejemplo n.º 6
0
whitenpatches = 200

patch_sz = 48
kshp = (16,16)
N = 256
model = ConvSparseSlowModel(imshp=(2,1,patch_sz,patch_sz),convwhitenfiltershp=(7,7),N=N,kshp=kshp,
    perc_var=99.5,lam_sparse=1.0)

l = SGD(model=model,datasource='YouTubeFaces_aligned',display_every=1000,batchsize=model.imshp[0])

databatch = l.get_databatch(whitenpatches)
l.model.learn_whitening(databatch)
l.model.setup()

l.learn(iterations=100000)
#l.batchsize *= 2
#l.learn(iterations=100000)
l.change_target(.5)
#l.batchsize *= 2
l.learn(iterations=100000)
l.change_target(.5)
#l.batchsize *= 2
l.learn(iterations=100000)
l.change_target(.5)
#l.batchsize *= 2
l.learn(iterations=100000)

from hdl.display import display_final
display_final(l.model)
Ejemplo n.º 7
0
#self.get_databatch() time 0.000623
#self.model.gradient time 0.119030
#self.model.update_model time 0.010784
#self.get_databatch() time 0.000476
#self.model.gradient time 0.118870
#self.model.update_model time 0.009735
#self.get_databatch() time 0.000473
#self.model.gradient time 0.118527
#self.model.update_model time 0.011175

# Experiment with projection and maxiter=1
#l = SGD(model=SparseSlowModel(patch_sz=32,N=1024,T=64,sparse_cost='l1',slow_cost=None,fista_maxiter=1,u_init_method='proj'),datasource='vid075-chunks')

#Default
#l = SGD(model=SparseSlowModel(patch_sz=16,N=256,T=64,sparse_cost='subspacel1',slow_cost='dist'),datasource='vid075-chunks')

l = SGD(model=SparseSlowModel(patch_sz=16,N=256,T=48,sparse_cost='elastic',lam_l2=1.0,slow_cost=None),datasource='vid075-chunks',display_every=10000,save_every=10000)

databatch = l.get_databatch(whitenpatches)
l.model.learn_whitening(databatch)
l.model.setup()

l.learn(iterations=160000)
l.change_target(.5)
l.learn(iterations=20000)
l.change_target(.5)
l.learn(iterations=20000)

from hdl.display import display_final
display_final(l.model)
Ejemplo n.º 8
0
    Xhat = np.dot(A,m.inferlatent(X))
    return .5*np.sum((X - Xhat)**2) + np.sum(np.abs(u))*m.lam_sparse.get_value()


iterations = 100
epochs = 100
t0 = now()
lossdefault = defaultdict(list)
loss = compute_loss(ldefault.model,preXdefault)
print ldefault.iter, 'Default method loss:', loss
tic = now() - t0
lossdefault['loss'].append(loss)
lossdefault['time'].append(tic)
lossdefault['iter'].append(ldefault.iter)
for epoch in range(int(.8*epochs)):
    ldefault.learn(iterations=iterations)
    loss = compute_loss(ldefault.model,preXdefault)
    print ldefault.iter, 'Default method loss:', loss, 'learner.eta', ldefault.eta
    tic = now() - t0
    lossdefault['loss'].append(loss)
    lossdefault['time'].append(tic)
    lossdefault['iter'].append(ldefault.iter)

ldefault.change_target(.5)
for epoch in range(int(.1*epochs)):
    ldefault.learn(iterations=iterations)
    loss = compute_loss(ldefault.model,preXdefault)
    print ldefault.iter, 'Default method loss:', loss, 'learner.eta', ldefault.eta
    tic = now() - t0
    lossdefault['loss'].append(loss)
    lossdefault['time'].append(tic)
Ejemplo n.º 9
0
import hdl
reload(hdl)

from hdl.models import SparseSlowModel
from hdl.learners import SGD

whitenpatches = 10000

l = SGD(model=SparseSlowModel(patch_sz=8,N=64,T=64,sparse_cost='l1',slow_cost=None),datasource='vid075-chunks',display_every=500,save_every=500)

databatch = l.get_databatch(whitenpatches)
l.model.learn_whitening(databatch)
l.model.setup()

l.learn()