【问题标题】:How to use a trained RL model to make a prediction?如何使用经过训练的 RL 模型进行预测?
【发布时间】:2021-03-11 04:26:57
【问题描述】:

我想使用经过训练的 RL 模型进行离散测试预测。

这就是模型的构建方式:

model = Sequential()
model.add(Dense(60, activation='relu', input_shape=states))
model.add(Dense(60, activation='relu', input_shape=states))
model.add(Dense(60, activation='relu', input_shape=states))
model.add(Dense(actions, activation='linear'))

动作空间是一个离散值。观察空间是一个简单的浮点值:

self.action_space = Discrete(len(ACTION_MAP))
observation_high = np.finfo(np.float32).max
self.observation_space = Box(low=np.array([-observation_high]), high=np.array([observation_high]))

测试功能运行良好:

scores = dqn.test(env, nb_episodes=1, visualize=False, verbose=1, callbacks=[CustomCallback()])

但是当我这样做时:

print(dqn.model.predict_step([30]))

我收到此错误:

ValueError:密集层的输入 0 与层不兼容::预期 min_ndim=2,发现 ndim=0。收到完整的形状:()

这是进行预测的正确方法吗?输入数据应该是什么样的?

【问题讨论】:

    标签: tensorflow predict openai-gym dqn keras-rl


    【解决方案1】:

    解决方案:

    model = keras.models.load_model('models/130000/')
    pf = model.predict(sample_to_predict)
    best_action = np.argmax(pf[0])
    

    【讨论】:

      最近更新 更多