All Projects → hijkzzz → Alpha Zero Gomoku

hijkzzz / Alpha Zero Gomoku

A Multi-threaded Implementation of AlphaZero

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Alpha Zero Gomoku

Hamsters.js
100% Vanilla Javascript Multithreading & Parallel Execution Library
Stars: ✭ 517 (+95.83%)
Mutual labels:  parallel, multi-threading
Quantum
Powerful multi-threaded coroutine dispatcher and parallel execution engine
Stars: ✭ 291 (+10.23%)
Mutual labels:  parallel, multi-threading
Taskflow
A General-purpose Parallel and Heterogeneous Task Programming System
Stars: ✭ 6,128 (+2221.21%)
Mutual labels:  multi-threading, parallel
thread-pool
BS::thread_pool: a fast, lightweight, and easy-to-use C++17 thread pool library
Stars: ✭ 1,043 (+295.08%)
Mutual labels:  multi-threading, parallel
libjwdpmi
C++20 development framework for 32-bit DOS applications
Stars: ✭ 32 (-87.88%)
Mutual labels:  multi-threading
Autonomx
Autonomx provides a complete testing platform for UI (Web, iOS, Android, Win) and API testing. It provides a feature rich and viable testing solution for end to end testing. It's designed to be fast, scalable, reliable and adaptable to any requirements for ever growing projects.
Stars: ✭ 14 (-94.7%)
Mutual labels:  parallel
Paraphrase
Multi-core suitable Forth-like language
Stars: ✭ 27 (-89.77%)
Mutual labels:  multi-threading
RcppAlgos
Tool for Solving Problems in Combinatorics and Computational Mathematics
Stars: ✭ 31 (-88.26%)
Mutual labels:  parallel
data-parallelism
juliafolds.github.io/data-parallelism/
Stars: ✭ 22 (-91.67%)
Mutual labels:  parallel
pugz
Truly parallel gzip decompression
Stars: ✭ 96 (-63.64%)
Mutual labels:  parallel
trembita
Model complex data transformation pipelines easily
Stars: ✭ 44 (-83.33%)
Mutual labels:  parallel
run-parallel-limit
Run an array of functions in parallel, but limit the number of tasks executing at the same time
Stars: ✭ 70 (-73.48%)
Mutual labels:  parallel
executive
🕴Elegant command execution for Node.
Stars: ✭ 37 (-85.98%)
Mutual labels:  parallel
TensorFlow-Input-Pipeline
TensorFlow Input Pipeline Examples based on multi-thread and FIFOQueue
Stars: ✭ 54 (-79.55%)
Mutual labels:  multi-threading
node-bogota
🚀 Run tape tests concurrently with tap-spec output
Stars: ✭ 15 (-94.32%)
Mutual labels:  parallel
safe
C++11 header only RAII guards for mutexes and locks.
Stars: ✭ 119 (-54.92%)
Mutual labels:  multi-threading
chicken-gochan
Go-like Channels for Chicken Scheme
Stars: ✭ 18 (-93.18%)
Mutual labels:  multi-threading
kinetics-downloader
Simple tool to download videos from kinetics dataset.
Stars: ✭ 28 (-89.39%)
Mutual labels:  parallel
rethinkdb.nim
RethinkDB driver for Nim
Stars: ✭ 35 (-86.74%)
Mutual labels:  multi-threading
shortcut-comparison
Performance comparison of parallel Rust and C++
Stars: ✭ 74 (-71.97%)
Mutual labels:  parallel

AlphaZero Gomoku

A multi-threaded implementation of AlphaZero

Features

  • Free-style Gomoku
  • Tree/Root Parallelization with Virtual Loss/LibTorch
  • Gomoku and MCTS are written in C++
  • SWIG wrap C++ extension
  • Update 2019.7.10: support Ubuntu and Windows

Args

Edit config.py

Environment

  • Python 3.6+
  • PyGame 1.9+
  • PyTorch 1.0+
  • LibTorch 1.0+
  • MSVC14.0/GCC6.0+
  • CMake 3.8+
  • SWIG 3.0.12+

Run

# Add LibTorch/SWIG to environment variable $PATH

# Compile Python extension
mkdir build
cd build
cmake .. -DCMAKE_PREFIX_PATH=path/to/libtorch -DCMAKE_BUILD_TYPE=Release
cmake --build

# Run
cd ../test
python learner_test.py train # train model
python learner_test.py play  # play with human

Pre-trained models

Trained 2 days on GTX1070

Link: https://pan.baidu.com/s/1c2Otxdl7VWFEXul-FyXaJA Password: e5y4

GUI

References

  1. Mastering the Game of Go without Human Knowledge
  2. Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm
  3. Parallel Monte-Carlo Tree Search
  4. An Analysis of Virtual Loss in Parallel MCTS
  5. A Lock-free Multithreaded Monte-Carlo Tree Search Algorithm
  6. github.com/suragnair/alpha-zero-general
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].