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
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",