You need to enable JavaScript to run this app. 运行deep-q-trading股票预测代码出现DQN模型输出shape错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

运行deep-q-trading股票预测代码出现DQN模型输出shape错误如何解决

问题修复方案

根因说明

你遇到的报错属于依赖库版本不兼容导致的形状校验逻辑误判:你的模型输出形状(?,3)完全符合DQN要求的3个动作维度,只是旧版keras-rl和高版本TensorFlow搭配时会触发这个误判bug。

可行修复步骤(按优先级尝试)

  • 方案1:替换为项目匹配的依赖版本(最稳妥)

    1. 先卸载现有冲突依赖:
      pip uninstall tensorflow keras keras-rl -y
    2. 安装项目兼容的指定版本:
      pip install tensorflow==1.15.0 keras==2.2.4 keras-rl==0.4.2
      版本对齐后重新运行命令即可正常执行。
  • 方案2:修改模型输入层(版本调整后仍报错时使用)
    原模型冗余的维度会加重版本兼容问题,直接修改main.py中的模型架构为:

    model = Sequential()
    # 去掉多余的1维度,删除Flatten层
    model.add(Dense(35,activation='linear', input_shape=(68,)))
    model.add(LeakyReLU(alpha=.001))
    model.add(Dense(nb_actions))
    model.add(Activation('linear'))
    
  • 方案3:跳过误判的校验逻辑(不想调整版本时快速解决)
    打开报错提示的/Users/anisschohra/.local/lib/python3.7/site-packages/rl/agents/dqn.py文件,找到第107行的raise ValueError语句,直接注释掉该行即可,你的模型输出本身符合要求,校验逻辑属于误报。

如果需要消除开头的TensorFlow弃用警告,在main.py开头添加以下代码即可:

import tensorflow as tf
tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)

内容的提问来源于stack exchange,提问作者Aniss Chohra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 09:21:02