Beispiel #1
0
model = ESN(input_size=input_size,
            output_size=output_size,
            reservoir_size=reservoir_size,
            adjacency_density=0.0006,
            spectral_radius=0.1,
            input_scale=0.5)

W_out, reservoir = model.train(train_data,
                               target_data=target_data,
                               washout=washout,
                               ridge_param=ridge_param)

predict = model.predict(reservoir,
                        test_observed,
                        ptb_func=None,
                        ptb_scale=1.0,
                        nexttime=nexttime,
                        extended_interval=1000)

predict = Lorenz96(predict.T.flatten(),
                   nsteps=test_length,
                   npoints=output_size)
test_target = Lorenz96(test_target.T.flatten(),
                       nsteps=test_length,
                       npoints=output_size)

predict.saveData(savepath="./predict.csv")
test_target.saveData(savepath="./nature.csv")

diff = predict - test_target
Beispiel #2
0
Datei: gen.py Projekt: minbin/esn
if args.t == 'dnf':
    data = np.log(data)
elif args.t == 'ig':
    data = data[0::2] / 10000 - 1.1

esn = ESN(n_in=1, n_fb=1, n_units=args.u, spectral_radius=args.s)

trainlen = args.trainlen
predlen = args.predlen
print('using: %d, predicting: %d' % (trainlen, predlen))

print('fitting...')
fit = esn.fit(np.ones(trainlen), data[:trainlen])
print('predicting...')
pred = esn.predict(np.ones(predlen), cont=True)

if args.t == 'dnf':
    data = np.exp(data)
    pred = np.exp(pred)
elif args.t == 'ig':
    data = data + 1.1 * 10000
    pred = pred + 1.1 * 10000

plt.figure(figsize=(200, 30))
end = trainlen + predlen + 1
datalen = min(end, len(data))
plt.plot(range(0, datalen),
         data[0:datalen],
         '--bo',
         linestyle="solid",