NarmaFile, OscillatorFile = 'Narma10.h5', 'ReservoirResponse.h5' # Split between training and testing datasets training, testing = [0, 1], [2, 3] # Create Narma10 samples and the Multiplexed input data if not os.path.isfile(os.getcwd() + '/' + NarmaFile): Narma10_Input.CreateSamples(NarmaFile, len(training) + len(testing)) if os.path.isfile(os.getcwd() + '/' + OscillatorFile): os.remove(os.getcwd() + '/' + OscillatorFile) # Pass the Multiplexed input through the nonlinear node if not os.path.isfile(os.getcwd() + '/' + OscillatorFile): Driver, Virtual_Node_time, Sim, Sim_time = Oscillator_Simulation( NarmaFile, OscillatorFile) Vis.Reservoir_Response(Driver, Virtual_Node_time, Sim, Sim_time, 'Reservoir_Response.png') # Train Inputs, Ybar_train, Ytrain, NRMSE_train, Ybar_test, Ytest, NRMSE_test1 = TrainData( NarmaFile, OscillatorFile, training, testing) Vis.Trained_Datasets(Inputs, Ybar_train, Ytrain, NRMSE_train, training, r'$NRMSE_{train} = %.3f$' % NRMSE_train, 'Train_Dataset.png') Vis.Trained_Datasets(Inputs, Ybar_test, Ytest, NRMSE_test1, testing, r'$NRMSE_{test} = %.3f$' % NRMSE_test1, 'Test_Dataset.png') # Flip training and testing datasets to calculate the 2-fold crossvalidation error Inputs, Ybar_train, Ytrain, NRMSE_train, Ybar_test, Ytest, NRMSE_test2 = TrainData( NarmaFile, OscillatorFile, testing, training)