Я пытаюсь настроить проект обучения с подкреплением, используя 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 info:
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 cartpole.py
keras_rl dqn_cartpole.py
OpenAI-Gymhottercolder.py environment
Любая помощь очень ценится.
Спасибо.