Example #1
0
def main():
    i_gen = InputGenerator(0, T, NUM_TIME_STEPS)
    data = i_gen.generate_lorentz()
    num_train = int(len(data) * RATIO_TRAIN)
    train_data = data[:num_train]
    print("number of training is"+ str(num_train))
    print(dt)
    model = ReservoirNetWork(inputs=train_data,
        teacher = train_data,
        num_input_nodes=NUM_INPUT_NODES, 
        num_reservoir_nodes=NUM_RESERVOIR_NODES, 
        num_output_nodes=NUM_OUTPUT_NODES, 
        leak_rate=LEAK_RATE)

    # model.offline_training() #オフライン学習で出力重みを初期化
    model.online_training()#(オンライン学習で)重み更新
    
    train_result = model.get_train_result() # 訓練の結果を取得

    num_predict = int(len(data[num_train:]))
    predict_result = model.predict(num_predict)
    

    train_result = model.get_train_result() # 訓練の結果を取得
    # print(train_result)
    
    
    ## plot
    fig = plt.figure()
    ax = Axes3D(fig)

    # ax.plot(train_result[0,:], train_result[1,:], train_result[2,:])
    plt.show()