コード例 #1
0
ファイル: demo_regression.py プロジェクト: iamyaoting/books
def create_network(window, input):
    network_first = create_regressor(batchsize=batchsize,
                                     window=window,
                                     input=input,
                                     dropout=0.0)
    network_second = create_core(batchsize=batchsize,
                                 window=window,
                                 dropout=0.0,
                                 depooler=lambda x, **kw: x / 2)
    network_second.load(np.load('network_core.npz'))
    network = Network(network_first,
                      network_second[1],
                      params=network_first.params)
    network.load(np.load('network_regression.npz'))
    return network_first, network_second, network
コード例 #2
0
def create_network(batchsize, window):
    network = create_core(batchsize=batchsize, window=window, dropout=0.0, depooler=lambda x,**kw: x/2, rng=rng)
    network.load(np.load('network_core.npz'))
    return network
コード例 #3
0
from constraints import constrain, foot_sliding, joint_lengths, trajectory, multiconstraint

rng = np.random.RandomState(413342)

X = np.load('../data/processed/data_cmu.npz')['clips']
X = np.swapaxes(X, 1, 2).astype(theano.config.floatX)

preprocess = np.load('preprocess_core.npz')
X = (X - preprocess['Xmean']) / preprocess['Xstd']

batchsize = 1
window = X.shape[2]

X = theano.shared(X, borrow=True)

network = create_core(batchsize=batchsize, window=window, dropout=0.0, depooler=lambda x,**kw: x/2)
network.load(np.load('network_core.npz'))

from AnimationPlot import animation_plot

for _ in range(10):

    index = rng.randint(X.shape[0].eval())
    Xorgi = np.array(X[index:index+1].eval())
    Xnois = Xorgi.copy()
    Xnois[:,16*3-1:17*3] = 0.0
    Xrecn = np.array(network(Xnois).eval())    

    Xorgi = (Xorgi * preprocess['Xstd']) + preprocess['Xmean']
    Xnois = (Xnois * preprocess['Xstd']) + preprocess['Xmean']
    Xrecn = (Xrecn * preprocess['Xstd']) + preprocess['Xmean']
コード例 #4
0
#feet = np.array([12,13,14,15,16,17,24,25,26,27,28,29])
feet = np.array([27,28,29])
Xmean = X.mean(axis=2).mean(axis=0)[np.newaxis,:,np.newaxis]
#Xmean=(1,73,1)
print('X mean shape:' ,Xmean.shape)
Xmean[:,-7:-4] = 0.0
Xmean[:,-4:]   = 0.5

Xstd = np.array([[[X.std()]]]).repeat(X.shape[1], axis=1)
Xstd[:,feet]  = 0.9 * Xstd[:,feet]
Xstd[:,-7:-5] = 0.9 * X[:,-7:-5].std()
Xstd[:,-5:-4] = 0.9 * X[:,-5:-4].std()
Xstd[:,-4:]   = 0.5

np.savez_compressed('preprocess_core.npz', Xmean=Xmean, Xstd=Xstd)

X = (X - Xmean) / Xstd

I = np.arange(len(X))
rng.shuffle(I); X = X[I]

print(X.shape)

E = theano.shared(X, borrow=True)

batchsize = 1
network = create_core(rng=rng, batchsize=batchsize, window=X.shape[2])

trainer = AdamTrainer(rng=rng, batchsize=batchsize, epochs=100, alpha=0.00001)
trainer.train(network, E, E, filename='network_core.npz')
コード例 #5
0
ファイル: train_regression.py プロジェクト: iamyaoting/books
preprocess = np.load('preprocess_core.npz')
X = (X - preprocess['Xmean']) / preprocess['Xstd']

Y = X[:, -7:]

I = np.arange(len(X))
rng.shuffle(I)
X, Y = X[I], Y[I]

print(X.shape, Y.shape)

batchsize = 1

network_second = create_core(batchsize=batchsize,
                             window=X.shape[2],
                             dropout=0.0,
                             depooler=lambda x, **kw: x / 2)
network_second.load(np.load('network_core.npz'))

network_first = create_regressor(batchsize=batchsize,
                                 window=X.shape[2],
                                 input=Y.shape[1])
network = Network(network_first,
                  network_second[1],
                  params=network_first.params)

X = theano.shared(X, borrow=True)
Y = theano.shared(Y, borrow=True)

trainer = AdamTrainer(rng=rng, batchsize=batchsize, epochs=250, alpha=0.00001)
trainer.train(network, Y, X, filename='network_regression.npz')