Chọn hành động với DQN tối giản
Hàm select_action() cho phép agent chọn hành động có Q-value cao nhất ở mỗi bước.
Hàm nhận Q-network và trạng thái hiện tại làm đối số, và trả về chỉ số của hành động có Q-value cao nhất.
Q-network đã được khởi tạo là q_network, và một trạng thái ngẫu nhiên đã được nạp trong môi trường của bạn với state = torch.rand(8) để cung cấp dữ liệu ví dụ cho bạn thực hành.
Bài tập này là một phần của khóa học
Deep Reinforcement Learning bằng Python
Hướng dẫn bài tập
- Tính các Q-value tương ứng với mỗi hành động trong trạng thái được truyền vào làm đối số.
- Lấy chỉ số tương ứng với hành động có Q-value cao nhất.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
def select_action(q_network, state):
# Calculate the Q-values
q_values = ____
print("Q-values:", [round(x, 2) for x in q_values.tolist()])
# Obtain the action index with highest Q-value
action = torch.____.item()
print(f"Action selected: {action}, with q-value {q_values[action]:.2f}")
return action
select_action(q_network, state)