细碎的想法
    · 这个 stock_data_list 里面的这个 test_X 和 test_y 里面 有个 (876, 30, 1) 的 array 是什么?为什么会是这样的数据
    876 指的是这里一个股票会分为867个批次一次性计算

    · rnn 的 gpu训练模式怎么开启,怎么确定是gpu训练,老子fine-tune一个 bert 跑了 1天都跑不完

    · 数据处理
    · 如果没有选择特定的股票,先筛选 500 个股票
    · 然后是 normalize (主要是计算 percentage,涨多少和跌多少)
    · 然后是分训练、验证集
    · 然后分 epoch


    · input_size 和 num_steps(这个应该是序列长度) 的关系
    · epoch 和 num_steps 的关系,没什么关系,epoch 是 训练轮次, num_step 是序列长度

    · 怎么使用这个模型?
    可以这么用,直接加载训练完的模型之后,调用 sess run 的方法,注意run的方法要写对

    1. def predict(self):
    2. # TODO process test data
    3. # session run neutral network
    4. # get result and calculate the loss
    5. import pandas as pd
    6. import numpy as np
    7. raw_df = pd.read_csv(os.path.join("data", "%s.csv" % 'SP500'))
    8. raw_seq = raw_df['Close'].tolist()
    9. seq = np.array(raw_seq)
    10. seq = [np.array(raw_seq[i * self.input_size: (i + 1) * self.input_size])
    11. for i in range(len(raw_seq) // 1)]
    12. seq = [seq[0] / seq[0][0] - 1.0] + [
    13. curr / seq[i][-1] - 1.0 for i, curr in enumerate(seq[1:])]
    14. i = -1
    15. k = i - 30
    16. test_data = np.array([seq[k:i]])
    17. test_data_y = np.array([seq[i]])
    18. print(raw_seq[k:i])
    19. print(raw_seq[i])
    20. test_data_feed = {
    21. self.inputs: test_data,
    22. self.targets: test_data_y,
    23. self.keep_prob: 1.0
    24. }
    25. print('test data', test_data)
    26. print('test data y ', test_data_y)
    27. final_pred, final_loss = self.sess.run([self.pred, self.loss], test_data_feed)
    28. print('final result' ,final_pred, final_loss)

    · 一般 tensorflow 网络 编程习惯
    · 配置
    · 读入模型
    · 读入数据
    · train & validate
    · predict

    · 能不能把量,这个变量加上去

    · 用 xgboost 方法看看哪个好用?

    · 这个模型在训练的时候,在本数据集表现得很好,但是在测试集上面表现得几乎没有 predict 的能力
    原因一:
    训练的数据源的问题,数据源没有足够的预测能力
    ~~训练过拟合 - ~~

    · 为什么图画出来是能够避开下跌的位置,但是预测得不好

    这个图型对不上很可能是这个_flatten方法被我改了

    但是这里有个结论,如果考虑量价因素,能够成功地预测到大涨和大跌
    image.png