Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aporia-ai/TrainInvaders
👾 Jupyter Notebook + Space Invaders!?
https://github.com/aporia-ai/TrainInvaders
ai jupyter-notebook machine-learning neural-network python space-invaders webassembly
Last synced: about 2 months ago
JSON representation
👾 Jupyter Notebook + Space Invaders!?
- Host: GitHub
- URL: https://github.com/aporia-ai/TrainInvaders
- Owner: aporia-ai
- License: mit
- Created: 2021-09-19T14:46:05.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-11-03T10:39:47.000Z (about 3 years ago)
- Last Synced: 2024-11-02T06:22:03.301Z (2 months ago)
- Topics: ai, jupyter-notebook, machine-learning, neural-network, python, space-invaders, webassembly
- Language: C
- Homepage:
- Size: 14.1 MB
- Stars: 93
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Train Invaders
Jupyter Notebook + Space Invaders!?
Why? •
Getting started •
How it works •
FAQ •
Drawbacks •
Contribute •
Thanks to •
You may also like...![Demo](https://raw.githubusercontent.com/aporia-ai/TrainInvaders/main/src/assets/demo.gif)
## Why❓
*Training a model can be a long long process!*In the meantime, have a bit of fun with a **competitive space invaders game**.
See if you can get your name to the top of the *leaderboard*.
## Getting started 🏁
1. Install the game:
`!pip3 install train_invaders --upgrade`
2. Import the game in your notebook:
`import train_invaders.start`
3. Start training your model. The game will automatically pop up when the process begins.
4. **Play the game!** *You'll get notified when your training is finished*.
5. Want to stop the game from popping up when the model is being trained?
`import train_invaders.stop` will do the work.## How it works ⚙️
**Tons of magic**... Just kidding :)When importing the `start` module, its code will be executed.
The code utilizes python's `settrace` function which follows the functions' call stack.
When a function named `fit` `train` or `train_on_batch` is called - using Jupyter notebook's kernel, aka, `IPython`, a javascript view code will be injected inside the output block as an `iframe` to keep it completely **isolated from your code**.
When importing the `stop` module, the `settrace` function will be canceled and the function hooks will be removed.
## FAQ 🙋
### Will it interfere with the training process somehow?NO. The game will start and be played **in parallel to the training** and will even *let you know when the training is finished*.
## Drawbacks 🥺
* Training stop indication is only in Jupyter Notebook. Want to get notified by email or text? Try [MLNotify](https://mlnotify.aporia.com/?utm_source=train-invaders&utm_medium=docs&utm_campaign=train-invaders)
* Authentication, and therefore, saving your score can only be done from `localhost` and port `8888 - 8891 / 8080 / 8081`## Contribute 🤝
Have an awesome idea for a new feature? PRs are more than welcome!1. Clone the project
2. Run `make build-game` to get a local and compiled copy of the game (if not exists)
2. Enter `src/view` directory and run `npm run serve` to run the local environment
2. Implement your ideas
3. Made changes in the game (C files)? Re-run `make build-game` from root dir and check them out
5. Enter root directory, run `make build`, `pip install . --upgrade` and test the changes in your notebook
6. PR us!## Thanks to 🙏
[JanSiebert](https://github.com/JanSiebert/wasm-space-invaders) for the WebAssembly game.[Cody Boisclair](https://github.com/codeman38) for the PressStart2P font.
[Vue](https://github.com/vuejs/vue) for the awesome FE framework.
## You may also ❤️
[Aporia](https://www.aporia.com?utm_source=github&utm_medium=github&utm_campaign=train-invaders) - Customized monitoring for your ML models.[MLNotify](https://www.mlnotify.aporia.com?utm_source=github&utm_medium=github&utm_campaign=train-invaders) - Get notified when training is complete.
[MLOps Toys](https://www.mlops.toys?utm_source=github&utm_medium=github&utm_campaign=train-invaders) - A curated list of useful MLOps tools.