Tôi có một nhiệm vụ để tạo một Đại lý AI sẽ học chơi trò chơi video bằng ML. Tôi muốn tạo một môi trường mới trong OpenAI vì tôi không muốn làm việc trên môi trường hiện có. Làm thế nào tôi có thể tạo một môi trường mới. Ngoài ra, có cách nào khác để tôi có thể bắt đầu phát triển AI Agent để chơi một trò chơi video cụ thể mà không cần sự giúp đỡ của OpenAI? Tôi là người mới bắt đầu trong lĩnh vực này nên mọi loại trợ giúp/hướng khởi đầu sẽ được đánh giá cao.Có thể tạo môi trường phòng tập thể dục mới trong OpenAI không?
Trả lời
Chắc chắn là có thể. Họ nói như vậy trong trang Tài liệu, gần cuối.
Như thế nào để làm điều đó, bạn nên nhìn vào mã nguồn của các môi trường hiện tại cho cảm hứng. sẵn có của mình trong github:
https://github.com/openai/gym#installation
Hầu hết các môi trường của họ, họ đã không thực hiện từ đầu, nhưng thay vì tạo ra một wrapper xung quanh môi trường hiện có và đưa nó tất cả một giao diện thuận tiện cho học tăng cường.
Nếu bạn muốn tự mình làm, có lẽ bạn nên đi theo hướng này và cố gắng điều chỉnh thứ gì đó đã tồn tại trong giao diện phòng tập thể dục. Mặc dù có một cơ hội tốt mà điều này là rất tốn thời gian.
Có một tùy chọn khác có thể thú vị cho mục đích của bạn. Đó là OpenAI của vũ
nó có thể tích hợp với các trang web để bạn luyện tập mô hình của bạn trên các trò chơi kongregate, ví dụ. Nhưng vũ trụ không dễ sử dụng như Gym.
Nếu bạn là người mới bắt đầu, đề xuất của tôi là bạn bắt đầu với việc thực hiện vani trên môi trường chuẩn. Sau khi bạn vượt qua các vấn đề với thông tin cơ bản, hãy tiếp tục tăng dần ...
Xem banana-gym
của tôi cho một môi trường cực kỳ nhỏ.
Tạo môi trường mới
Xem trang chính của kho:
https://github.com/openai/gym/tree/master/gym/envs#how-to-create-new-environments-for-gym
Các bước thực hiện:
- Tạo một kho lưu trữ mới với một cấu trúc PIP gói
Nó sẽ giống như thế này
gym-foo/
README.md
setup.py
gym_foo/
__init__.py
envs/
__init__.py
foo_env.py
foo_extrahard_env.py
Đối với nội dung của nó, hãy làm theo liên kết ở trên. Chi tiết không được đề cập, đặc biệt là một số chức năng trong foo_env.py
sẽ trông như thế nào. Nhìn vào các ví dụ và tại gym.openai.com/docs/ giúp.Dưới đây là một ví dụ:
class FooEnv(gym.Env):
metadata = {'render.modes': ['human']}
def __init__(self):
pass
def _step(self, action):
"""
Parameters
----------
action :
Returns
-------
ob, reward, episode_over, info : tuple
ob (object) :
an environment-specific object representing your observation of
the environment.
reward (float) :
amount of reward achieved by the previous action. The scale
varies between environments, but the goal is always to increase
your total reward.
episode_over (bool) :
whether it's time to reset the environment again. Most (but not
all) tasks are divided up into well-defined episodes, and done
being True indicates the episode has terminated. (For example,
perhaps the pole tipped too far, or you lost your last life.)
info (dict) :
diagnostic information useful for debugging. It can sometimes
be useful for learning (for example, it might contain the raw
probabilities behind the environment's last state change).
However, official evaluations of your agent are not allowed to
use this for learning.
"""
self._take_action(action)
self.status = self.env.step()
reward = self._get_reward()
ob = self.env.getState()
episode_over = self.status != hfo_py.IN_GAME
return ob, reward, episode_over, {}
def _reset(self):
pass
def _render(self, mode='human', close=False):
pass
def _take_action(self, action):
pass
def _get_reward(self):
""" Reward is given for XY. """
if self.status == FOOBAR:
return 1
elif self.status == ABC:
return self.somestate ** 2
else:
return 0
Sử dụng môi trường của bạn
import gym
import gym_foo
env = gym.make('MyEnv-v0')
Ví dụ
- https://github.com/openai/gym-soccer
- https://github.com/openai/gym-wikinav
- https://github.com/alibaba/gym-starcraft
- https://github.com/endgameinc/gym-malware
- https://github.com/hackthemarket/gym-trading
- https://github.com/tambetm/gym-minecraft
- https://github.com/ppaquette/gym-doom
- https://github.com/ppaquette/gym-super-mario
- https://github.com/tuzzer/gym-maze
Tôi nhận được một chữ "gym_foo' xấu xí được nhập nhưng không sử dụng". Làm sao để tôi thoát khỏi nó? – hipoglucido
- 1. Cải thiện thời gian chạy Fastlane cho Scan -> phòng tập thể dục -> Triển khai
- 2. Tạo môi trường mới trong Rails
- 3. nhầm lẫn về tập thể dục javascript
- 4. Làm cách nào để lưu trữ dữ liệu Thiết bị thể dục/tập thể dục trong FHIR?
- 5. Tạo sails.js cấu hình môi trường mới
- 6. MacOS có thể chạy trong môi trường kiểu VMWare không?
- 7. Tập thể dục: con trỏ và tham chiếu trong C++
- 8. Các mẫu thiết kế tập thể dục trong Java
- 9. Rails Tutorial - 2.5.2 Không thể tập thể dục validaiton để làm việc
- 10. Tôi có thể nhận các biến môi trường trong tập lệnh WSH vbscript không?
- 11. Virtualenv không tạo môi trường
- 12. Có thể makefile cập nhật môi trường gọi điện không?
- 13. Tập lệnh python có thể liên tục thay đổi biến môi trường Windows không? (thanh lịch)
- 14. Chúng ta có thể tạo Biến môi trường cho các ứng dụng xương sống không?
- 15. Có thể .emacs đọc biến môi trường không?
- 16. Có thể xuất thuộc tính môi trường từ tập lệnh ruby không?
- 17. Tập thể dục tăng tốc C++ 11-6
- 18. Cần giúp đỡ với C++ Loops Tập thể dục
- 19. in ra để giải thích về tập thể dục java
- 20. Bạn có thể sử dụng các biến môi trường trong tập tin cấu hình cho fluentd
- 21. Sử dụng JRuby Warbler, có thể tạo ra một WAR có thể học RAILS_ENV từ biến môi trường không?
- 22. biến môi trường pom.xml với dự phòng mặc định
- 23. Anaconda có tạo biến PYTHONPATH riêng cho từng môi trường mới không?
- 24. Không thể chuyển đổi môi trường ngôn ngữ ở Django
- 25. Làm thế nào bạn có thể "nhân bản" môi trường conda vào môi trường gốc?
- 26. Ruby không thể thấy biến môi trường NLS_LANG
- 27. getResourceAsStream không thành công trong môi trường mới?
- 28. Tạo trống môi trường conda
- 29. Các biến môi trường thể hiện
- 30. Có thể sử dụng các biến môi trường trong kịch bản lệnh Inno Setup không?
gì nếu một mong muốn để tạo ra một môi trường cho các hoạt động phi kỹ thuật số như Tic-Tac-Toe hoặc khối Rubik của nơi trạng thái có thể là hữu hạn và có thể được xác định rõ? Tôi sẽ chỉ tạo ra một danh sách với tất cả các trạng thái có thể? Làm thế nào một mô phỏng có thể tìm ra trạng thái đích hợp lệ từ một trạng thái đã cho là gì? – Hendrik