1681827183
This repo contains distributed implementations of the algorithms described in:
Our code is based off of code from OpenAI, who we thank. The original code and related paper from OpenAI can be found here. The repo has been modified to run both ES and our algorithms, including our Deep Genetic Algorithm (DeepGA) locally and on AWS.
Note: The Humanoid experiment depends on Mujoco. Please provide your own Mujoco license and binary
The article describing these papers can be found here
The folder ./visual_inspector
contains implementations of VINE, i.e., Visual Inspector for NeuroEvolution, an interactive data visualization tool for neuroevolution. Refer to README.md
in that folder for further instructions on running and customizing your visualization. An article describing this visualization tool can be found here.
The folder ./gpu_implementation
contains an implementation that uses GPU more efficiently. Refer to README.md
in that folder for further instructions.
clone repo
git clone https://github.com/uber-common/deep-neuroevolution.git
create python3 virtual env
python3 -m venv env
. env/bin/activate
install requirements
pip install -r requirements.txt
If you plan to use the mujoco env, make sure to follow mujoco-py's readme about how to install mujoco correctly
launch redis
. scripts/local_run_redis.sh
launch sample ES experiment
. scripts/local_run_exp.sh es configurations/frostbite_es.json # For the Atari game Frostbite
. scripts/local_run_exp.sh es configurations/humanoid.json # For the MuJoCo Humanoid-v1 environment
launch sample NS-ES experiment
. scripts/local_run_exp.sh ns-es configurations/frostbite_nses.json
. scripts/local_run_exp.sh ns-es configurations/humanoid_nses.json
launch sample NSR-ES experiment
. scripts/local_run_exp.sh nsr-es configurations/frostbite_nsres.json
. scripts/local_run_exp.sh nsr-es configurations/humanoid_nsres.json
launch sample GA experiment
. scripts/local_run_exp.sh ga configurations/frostbite_ga.json # For the Atari game Frostbite
launch sample Random Search experiment
. scripts/local_run_exp.sh rs configurations/frostbite_ga.json # For the Atari game Frostbite
visualize results by running a policy file
python -m scripts.viz 'FrostbiteNoFrameskip-v4' <YOUR_H5_FILE>
python -m scripts.viz 'Humanoid-v1' <YOUR_H5_FILE>
The extra folder holds the XML specification file for the Humanoid Locomotion with Deceptive Trap domain used in https://arxiv.org/abs/1712.06560. Use this XML file in gym to recreate the environment.
You can also run the code inside a docker container using docker and docker-compose.
See https://docs.docker.com/get-started/ for an introduction to docker.
See also https://docs.docker.com/compose/overview/ for an introduction to docker-compose.
Clone repo and enter the directory.
git clone https://github.com/uber-common/deep-neuroevolution.git
cd deep-neuroevolution
Start the container launching the redis instance, use sudo if required, see also this page.
sudo docker-compose up
Open up a second terminal session into the container.
sudo docker exec -it deepneuro /bin/bash
Start the experiment of your choice as stated above. E.g.
cd ~/deep-neuroevolution/
. scripts/local_run_exp.sh es configurations/frostbite_es.json
Author: uber-research
Source Code: https://github.com/uber-research/deep-neuroevolution
License: View license
1678737960
This is the official C++ source code repository of the Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
The Issue tracker was flooded with support questions and is closed until it is cleaned up. Use the PyBullet forums to discuss with others.
It is highly recommended to use PyBullet Python bindings for improved support for robotics, reinforcement learning and VR. Use pip install pybullet and checkout the PyBullet Quickstart Guide.
Installation is simple:
pip3 install pybullet --upgrade --user
python3 -m pybullet_envs.examples.enjoy_TF_AntBulletEnv_v0_2017may
python3 -m pybullet_envs.examples.enjoy_TF_HumanoidFlagrunHarderBulletEnv_v1_2017jul
python3 -m pybullet_envs.deep_mimic.testrl --arg_file run_humanoid3d_backflip_args.txt
If you use PyBullet in your research, please cite it like this:
@MISC{coumans2021,
author = {Erwin Coumans and Yunfei Bai},
title = {PyBullet, a Python module for physics simulation for games, robotics and machine learning},
howpublished = {\url{http://pybullet.org}},
year = {2016--2021}
}
A C++ compiler for C++ 2003. The library is tested on Windows, Linux, Mac OSX, iOS, Android, but should likely work on any platform with C++ compiler. Some optional demos require OpenGL 2 or OpenGL 3, there are some non-graphical demos and unit tests too.
https://docs.google.com/document/d/1u9vyzPtrVoVhYqQOGNWUgjRbfwfCdIts_NzmvgiJ144/edit
The entire collision detection and rigid body dynamics can be executed on the GPU.
A high-end desktop GPU, such as an AMD Radeon 7970 or NVIDIA GTX 680 or better. We succesfully tested the software under Windows, Linux and Mac OSX. The software currently doesn't work on OpenCL CPU devices. It might run on a laptop GPU but performance will not likely be very good. Note that often an OpenCL drivers fails to compile a kernel. Some unit tests exist to track down the issue, but more work is required to cover all OpenCL kernels.
All source code files are licensed under the permissive zlib license (http://opensource.org/licenses/Zlib) unless marked differently in a particular folder/file.
You can download and install Bullet using the vcpkg dependency manager:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install bullet3
The Bullet port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the vcpkg repository.
Windows
Click on build_visual_studio_vr_pybullet_double.bat and open build3/vs2010/0_Bullet3Solution.sln When asked, convert the projects to a newer version of Visual Studio. If you installed Python in the C:\ root directory, the batch file should find it automatically. Otherwise, edit this batch file to choose where Python include/lib directories are located.
Windows Virtual Reality sandbox for HTC Vive and Oculus Rift
Build and run the App_SharedMemoryPhysics_VR project, preferably in Release/optimized build. You can connect from Python pybullet to the sandbox using:
import pybullet as p
p.connect(p.SHARED_MEMORY) #or (p.TCP, "localhost", 6667) or (p.UDP, "192.168.86.10",1234)
Linux and Mac OSX gnu make
Make sure gcc and cmake is installed (sudo apt-get install build-essential
and sudo apt-get install cmake
for Linux, brew install cmake
for Mac, or https://cmake.org)
In a terminal type:
./build_cmake_pybullet_double.sh
This script will invoke cmake and build in the build_cmake directory. You can find pybullet in Bullet/examples/pybullet. The BulletExampleBrowser binary will be in Bullet/examples/ExampleBrowser.
You can also build Bullet using premake. There are premake executables in the build3 folder. Depending on your system (Linux 32bit, 64bit or Mac OSX) use one of the following lines Using premake:
cd build3
./premake4_linux --double gmake
./premake4_linux64 --double gmake
./premake4_osx --double --enable_pybullet gmake
Then
cd gmake
make
Note that on Linux, you need to use cmake to build pybullet, since the compiler has issues of mixing shared and static libraries.
Mac OSX Xcode
Click on build3/xcode4.command or in a terminal window execute
./premake_osx xcode4
The App_ExampleBrowser executables will be located in the bin folder. You can just run it though a terminal/command prompt, or by clicking it.
[--start_demo_name="Demo Name"] Start with a selected demo
[--mp4=moviename.mp4] Create a mp4 movie of the window, requires ffmpeg installed
[--mouse_move_multiplier=0.400000] Set the mouse move sensitivity
[--mouse_wheel_multiplier=0.01] Set the mouse wheel sensitivity
[--background_color_red= 0.9] Set the red component for background color. Same for green and blue
[--fixed_timestep= 0.0] Use either a real-time delta time (0.0) or a fixed step size (0.016666)
You can use mouse picking to grab objects. When holding the ALT or CONTROL key, you have Maya style camera mouse controls. Press F1 to create a series of screenshots. Hit ESCAPE to exit the demo app.
Check out the docs folder and the Bullet physics forums for further information.
Author: Bulletphysics
Source Code: https://github.com/bulletphysics/bullet3
License: View license
#machinelearning #cpluplus #reinforcementlearning #robots #computer #animation
1676050740
There are no plans for any new or bugfix releases of SVL Simulator in 2022. There will be no new source code changes pushed to GitHub, and there will be no reviews or merging of Pull Requests submitted on GitHub for SVL Simulator or any of its related plug-ins. There will be no new simulator assets built and shared nor updates made to existing assets by the SVL Simulator team.
We will make a reasonable effort to keep the wise.svlsimulator.com website up and running through at least Thursday, June 30, 2022, and will also maintain the SVLSimulator.com web site including the simulator documentation pages through at least Thursday, June 30, 2022.
At this time we do not plan to remove the SVL Simulator source code (and related plug-in) projects from GitHub. The open source project and source code will remain available for anyone who wants to build (or modify) SVL Simulator.
We apologize for any inconvenience this may cause and appreciate your understanding.
Sincerely,
The SVL Simulator team
Q: Will SVL Simulator run locally without the wise.svlsimulator.com web site?
A: The latest released version of SVL (2021.3) requires the use of the WISE (web user interface) cloud service to download assets, configure simulation clusters, and create and launch simulations. It may be possible to remove this dependency (e.g. in a fork; see below) and then build and launch a local simulator instance.
Q: Will LG release the source code for the WISE (web user interface) cloud service?
A: There are no plans at this time to release the source code for WISE.
Q: Would LG be interested in transferring the SVL Simulator project to someone interested in taking over the project?
A: There are no plans at this time to transfer the SVL Simulator project (or the WISE cloud service).
Q: Will the Simulator Software License Agreement be changed?
A: There are no plans at this time to change the Simulator Software License Agreement.
Q: Can users share source code changes and forks of SVL Simulator?
A: As a GitHub project, anyone is able to create their own fork; in fact, there are already over 500 such forks of the SVL Simulator project. Users can then make changes and even submit pull requests back to the original (parent) project. While we have no plans to review or merge such changes into the main project, users are free to review open PRs and create their own local build from their own or any other public fork.
Q: Can users share new builds of SVL Simulator?
A: The Simulator Software License Agreement allows you to “modify or create derivative works of the Licensed Materials” and only restricts their commercial use. Therefore, it is ok for users to share new builds of SVL Simulator as long as such builds are not sold or otherwise used for commercial purposes.
Q: What about the SVL Simulator Premium product and/or cloud simulation service?
A: There are no plans at this time to offer a SVL Simulator Premium product or cloud service.
Q: Can users still post technical questions on GitHub?
A: Technical questions may be posted to the SVL Simulator Issues page on GitHub but may not be answered by the SVL Simulator team. We encourage users to help each other with questions or issues that are posted.
Q: What if there are other questions not addressed in this document?
A: Other questions may be posted to the SVL Simulator Issues page on GitHub.
Project README
Check out our latest news and subscribe to our mailing list to get the latest updates.
LG Electronics America R&D Lab has developed an HDRP Unity-based multi-robot simulator for autonomous vehicle developers. We provide an out-of-the-box solution which can meet the needs of developers wishing to focus on testing their autonomous vehicle algorithms. It currently has integration with The Autoware Foundation's Autoware.auto and Baidu's Apollo platforms, can generate HD maps, and can be immediately used for testing and validation of a whole system with little need for custom integrations. We hope to build a collaborative community among robotics and autonomous vehicle developers by open sourcing our efforts.
To use the simulator with Apollo 6.0 or master, first download the simulator binary, then follow our Running with latest Apollo docs.
To use the simulator with Autoware.auto, first download the simulator binary, then follow the guide on our Autoware.auto.
For users in China, you can view our latest videos here and download our simulator releases here (code: 6k91). 对于中国的用户,您也可在哔哩哔哩上观看我们最新发布的视频,从百度网盘(提取码: 6k91)上下载使用我们的仿真器。
If you are using SVL Simulator for your research paper, please cite our ITSC 2020 paper: LGSVL Simulator: A High Fidelity Simulator for Autonomous Driving
@article{rong2020lgsvl,
title={LGSVL Simulator: A High Fidelity Simulator for Autonomous Driving},
author={Rong, Guodong and Shin, Byung Hyun and Tabatabaee, Hadi and Lu, Qiang and Lemke, Steve and Mo{\v{z}}eiko, M{\=a}rti{\c{n}}{\v{s}} and Boise, Eric and Uhm, Geehoon and Gerow, Mark and Mehta, Shalin and others},
journal={arXiv preprint arXiv:2005.03778},
year={2020}
}
You can find complete and the most up-to-date guides on our documentation website.
Running the simulator with reasonable performance and frame rate (for perception related tasks) requires a high performance desktop. Below is the recommended system for running the simulator at high quality. We are currently working on performance improvements for a better experience.
Recommended system:
The easiest way to get started with running the simulator is to download our latest release and run as a standalone executable.
Currently, running the simulator in Windows yields better performance than running on Linux.
See the full installation guide here.
If you would like to customize the simulator, build simulation content, or access specific features available in Developer Mode, you can clone the project with Unity Editor, and build the project from source.
Check out our instructions for getting started with building from source here. Note: Please checkout the "release-*" branches or release tags for stable (ready features) and "master" branch for unstable (preview of work in progress).
NOTE: If using a release older than "2021.1", please follow the instructions on our documentation archives.
Look here for a guide to currently available functionality and features.
Please feel free to provide feedback or ask questions by creating a Github issue. For inquiries about collaboration, please email us at contact@svlsimulator.com.
Website | Documentation | Download
Author: lgsvl
Source Code: https://github.com/lgsvl/simulator
License: View license
#machinelearning #api #reinforcementlearning #computervision
1675253940
Implementations of basic RL algorithms with minimal lines of codes! (PyTorch based)
Each algorithm is complete within a single file.
Length of each file is up to 100~150 lines of codes.
Every algorithm can be trained within 30 seconds, even without GPU.
Envs are fixed to "CartPole-v1". You can just focus on the implementations.
# Works only with Python 3.
# e.g.
python3 REINFORCE.py
python3 actor_critic.py
python3 dqn.py
python3 ppo.py
python3 ddpg.py
python3 a3c.py
python3 a2c.py
python3 acer.py
python3 sac.py
Author: Seungeunrho
Source Code: https://github.com/seungeunrho/minimalRL
License: MIT license
#machinelearning #reinforcementlearning #deeplearning #simple
1674032700
The goal of this repository is to provide comprehensive tutorials for TensorFlow while maintaining the simplicity of the code.
Each tutorial includes a detailed explanation (written in .ipynb) format, as well as the source code (in .py format).
There is a necessity to address the motivations for this project. TensorFlow is one of the deep learning frameworks available with the largest community. This repository is dedicated to suggesting a simple path to learn TensorFlow.
We can summarize the pros as below:
- It’s developed and maintained by Google. As such, a continued support and development is ensured
- Very large and active community
- Low-level and high-level interfaces to network training
- Tensorboard is the powerful visualization suite which is developed to track both the network topology and performance, making debugging even simpler.
- Written in Python (even though some parts crucial for performance is implemented in C++) which is a very attractive language to read and develop in
- Multiple GPUs support. So you can freely run the code on different machines without having to stop or restart the program
- Faster model compilation than Theano-based options
- Faster compile times than Theano
- Is about more than deep learning. TensorFlow actually has tools to support reinforcement learning and other algorithms.
In addition to the aforementioned points, the large community of TensorFlow enrich the developers with the answer to almost all the questions one may encounter. Furthermore, since most of the developers are using TensorFlow for code development, having a hands-on on TensorFlow is a necessity these days.
In most of the available projects on the web, one of the below issues exists:
- There is no or very limited explanation of what is happening in the code.
- Different parts are not connected in a meaningful way.
- The code implementation is too vague or complicated.
- The focus is on either advanced or elementary level of Tensorflow implementation.
In this project, we tried to connect parts from easy to advanced with detailed tutorials while keeping the code implementation as simple as possible.
The aim here is to explain how to install TensorFlow library "step by step" and on different operating systems. TensorFlow is a python library. Similar to many others, we tried installing many side packages and libraries and experienced lots of problems and errors.
In order to install TensorFlow please refer to the following link:
The tutorials in this repository are partitioned into relevant categories.
# | topic | |
---|---|---|
0 | Installation | Code |
1 | Basics | Code |
2 | Logistic_Regression | Code |
3 | Feed_Forward_Neural_Network | Code |
4 | Tensorboard | Code |
5 | AutoEncoder | Code |
6 | Convolutional_Neural_Network | Code |
- TensorFlow World - Simple and ready-to-use tutorials for TensorFlow
- TensorFlow Examples - TensorFlow tutorials and code examples for beginners
- Sungjoon's TensorFlow-101 - TensorFlow tutorials written in Python with Jupyter Notebook
- Terry Um’s TensorFlow Exercises - Re-create the codes from other TensorFlow examples
- Classification on time series - Recurrent Neural Network classification in TensorFlow with LSTM on cellphone sensor data
When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change. For typos, please do not create a pull request. Instead, declare them in issues or email the repository owner.
Please note we have a code of conduct, please follow it in all your interactions with the project.
Please consider the following criterions in order to help us in a better way:
- The pull request is mainly expected to be a code script suggestion or improvement.
- A pull request related to non-code-script sections is expected to make a significant difference in the documentation. Otherwise, it is expected to be announced in the issues section.
- Ensure any install or build dependencies are removed before the end of the layer when doing a build and creating a pull request.
- Add comments with details of changes to the interface, this includes new environment variables, exposed ports, useful file locations and container parameters.
- You may merge the Pull Request in once you have the sign-off of at least one other developer, or if you do not have permission to do that, you may request the owner to merge it for you if you believe all checks are passed.
We are looking forward to your kind feedback. Please help us to improve this open source project and make our work better. For contribution, please create a pull request and we will investigate it promptly. Once again, we appreciate your kind feedback and elaborate code inspections.
Author: Easy-tensorflow
Source Code: https://github.com/easy-tensorflow/easy-tensorflow
License: MIT license
#python #machinelearning #reinforcementlearning #deeplearning #tensorflow
1672768260
neurojs is a JavaScript framework for deep learning in the browser. It mainly focuses on reinforcement learning, but can be used for any neural network based task. It contains neat demos to visualise these capabilities, for instance a 2D self-driving car.
Feel free to contribute. I appreciate any support, because frankly this is a big project to maintain!
Note: this repo is no longer maintained since more general frameworks such as TensorFlow-JS emerged, which I recommend you to use.
npm install
npm start
Open http://localhost:8080/examples/
in your browser and select the demo you want to run.
Author: janhuenermann
Source Code: https://github.com/janhuenermann/neurojs
License: MIT license
#machinelearning #javascript #reinforcementlearning #deeplearning
1628484261
#Tutorial
The gym is an open-source toolkit for developing and comparing reinforcement learning algorithms.
#reinforcementlearning #opensource
Read more: https://analyticsindiamag.com/exploring-panda-gym-a-multi-goal-reinforcement-learning-environment/?fbclid=IwAR3cvuQcz26b4qVRIgd5ZIyLst7II0XPkBDZHy57X6RmdNNJOzB-7VQT5OM
1624904606
This article will talk about reinforcement learning (RL) and Deep Q-Learning using openAI’s Gym environment and TensorFlow 2, and we will implement a case study using python. I assume that readers have a good understanding of reinforcement learning and deep learning. For the very beginners, I recommend this article before going further.
Read more: https://analyticsindiamag.com/comprehensive-guide-to-deep-q-learning-for-data-science-enthusiasts/
#reinforcementlearning #tensorflow #python
1624345218
The objective of reinforcement learning, a sub-domain of AI, is to provide the underlying infrastructure for intelligence that arises as a result of seeking goals through rewards. These rewards are mathematical expressions in their most rudimentary form and nudge the algorithms towards the target. Rewards are sufficient to express a wide variety of goals but are they enough for creating artificial general intelligence(AGI)?
Read more: https://analyticsindiamag.com/deepmind-has-a-solution-for-agi-not-many-agree/
#reinforcementlearning #deepmind
1623317499
DQN or Deep-Q Networks were first proposed by DeepMind back in 2015 in an attempt to bring the advantages of deep learning to reinforcement learning(RL), Reinforcement learning focuses on training agents to take any action at a particular stage in an environment to maximise rewards. Reinforcement learning then tries to train the model to improve itself and its choices by observing rewards through interactions with the environment. A simple demonstration of such learning is seen in the figure below.
Read more: https://analyticsindiamag.com/what-are-dqn-reinforcement-learning-models/
#reinforcementlearning
1622890101
Alphabet Inc.’s DeepMind has recently introduced AndroidEnv, an open-source platform for Reinforcement Learning (RL) built on top of the Android ecosystem. According to the team, AndroidEnv facilitates RL agents to interact with a wide variety of apps and services commonly used by humans on a widely used touchscreen interface.
Read more: https://analyticsindiamag.com/reinforcement-learning-comes-to-android-phones/
#deepmind #reinforcementlearning
1622449995
In the context of reinforcement learning (RL), the model allows inferences to be made about the environment. For example, the model might predict the resultant next state and next reward, given a state and action.
Read more: https://analyticsindiamag.com/what-is-model-free-reinforcement-learning/\
#reinforcementlearning
1619773860
At the heart of a successful reinforcement learning algorithm sits a well-coded reward function. Reward functions for most real-world tasks are difficult to specify procedurally. Most real-world tasks have complex reward functions. In particular, tasks involving human interaction depend on complex and user-dependent preferences. A popular belief within the RL community is that it is usually easier and more robust to specify a reward function, rather than a policy maximising that reward function.
Read more: https://analyticsindiamag.com/epic-reward-function-evaluation-reinforcement-learning/
#reinforcementlearning
1616400899
Machine learning (ML) can handle many complex tasks than just output singular decisions based on a labelled training dataset. Reinforcement learning (RL), a subset of ML, can train an agent to learn through interaction with the environment and use trial and error methods to alter its behaviour based on feedback. While the RL model can make decisions using a large table, modern RL applications are far too complex for the tabular approach to suffice. Deep Learning (DL), another subset of ML, can come in handy here: It uses a large matrix of numerical values to produce an output through the repeated application of mathematical operati
Read more: https://analyticsindiamag.com/the-societal-implications-of-deep-reinforcement-learning/
#machine-learning #deep-learning #reinforcementlearning
1615895834
Last year, Walmart scrapped its ambitious plan to deploy inventory tracking robots. The retail giant has ended its contract with Bossa Nova Robotics citing “different and simpler solutions” could be as effective. This certainly indicates that the much anticipated AI takeover is still a distant dream. Scaling introduces new challenges in robotics or in any domain that tries to automate.
Read more: https://analyticsindiamag.com/the-promise-of-maximum-entropy-reinforcement-learning/
#algorithms #reinforcementlearning