keras_rl DQN agent - все политики select_action() возвращают значение 0 или 1
Я пытаюсь настроить проект обучения с подкреплением, используя Gym & kears_rl.
Описание:
Учитывая числа в диапазоне (100, 200)
Я хочу, чтобы агент предупредил меня, когда число близко к пределам, скажем, между 0%-10%
а также 90%-100%
квантилей.
Вознаграждение:
выборка в квантиле (0, 0.1), награда (+1)
выборка в квантиле (0,1, 0,9), награда (-1)
выборка в квантиле (0,9, 1), награда (+1)
Агент должен изучить значения пределов 10% и 90%.
low = np.array([100])
high = np.array([200])
self.action_space = spaces.Box(low=low, high=high, dtype=np.intt32)
self.observation_space = spaces.Box(low=low, high=high, dtype=np.int32)
информация о main.py:
if __name__ == '__main__':
env = Env(max_steps=100)
nb_actions = env.action_space.shape[0] # equal to 100
model = Sequential()
model.add(Flatten(input_shape=(1,) + env.observation_space.shape))
model.add(Dense(8, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(2, activation='softmax'))
memory = SequentialMemory(limit=50000, window_length=1)
policy = BoltzmannQPolicy()
# Create DQN agent
dqn = DQNAgent(model=env.model,
memory=memory,
policy=policy,
nb_actions=nb_actions,
nb_steps_warmup=10,
target_model_update=1e-2)
# Compile the DQN agent
dqn.compile(Adam(lr=1e-3), metrics=['mae'])
# Okay, now it's time to learn something!
dqn.fit(env, nb_steps=50000, visualize=False, verbose=1)
Вопросы \ вопросы:
На функции подгонки (rl/core.py:169) действие I получается равным нулю. оно должно быть между [100, 200]. Это почему? Я ожидаю, что действие будет в action_space, но я вижу, что все политики возвращают значение 0 или 1. Как я предполагаю использовать значение в функции env.step()?
мой код основан на следующих примерах:
OpenAI-Gym hottercolder.py среда
Буду признателен за любую оказанную помощь.
Благодарю.