# tensorflow/minigo

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/tensorflow-minigo).**

3,531 stars · 557 forks · C++ · apache-2.0 · archived

## Links

- GitHub: https://github.com/tensorflow/minigo
- awesome-repositories: https://awesome-repositories.com/repository/tensorflow-minigo.md

## Description

Minigo is a TensorFlow-based reinforcement learning engine designed to master the game of Go. It functions as a comprehensive system for training neural networks to predict board policies and game outcomes, utilizing a model trainer to generate self-play data and optimize weights.

The project is distinguished by its ability to perform large-scale game simulations using Kubernetes to distribute worker nodes across CPU, GPU, and TPU hardware. It employs a Monte Carlo Tree Search implementation to identify optimal moves and supports specialized hardware acceleration, including inference on Edge TPUs.

The engine covers a broad set of capabilities including a full reinforcement learning pipeline, game logic simulation, and data management for SGF extraction and binary serialization. It integrates the Go Text Protocol to communicate with external game interfaces and provides tools for game state visualization and variation analysis.

## Tags

### Artificial Intelligence & ML

- [Board Game AI Agents](https://awesome-repositories.com/f/artificial-intelligence-ml/board-game-ai-agents.md) — Builds a competitive agent for the game of Go using TensorFlow to predict board policies and outcomes.
- [Reinforcement Learning](https://awesome-repositories.com/f/artificial-intelligence-ml/reinforcement-learning.md) — Implements a full reinforcement learning system using TensorFlow to master the game of Go.
- [Reinforcement Learning Training](https://awesome-repositories.com/f/artificial-intelligence-ml/reinforcement-learning-training.md) — The Go AI processes game data from self play sessions to update weights and improve playing strength. ([source](https://github.com/tensorflow/minigo#readme))
- [Game State Feature Encoding](https://awesome-repositories.com/f/artificial-intelligence-ml/game-state-feature-encoding.md) — Transforms board positions and move histories into encoded feature planes for neural network training. ([source](https://github.com/tensorflow/minigo/blob/master/features.py))
- [Game State Predictors](https://awesome-repositories.com/f/artificial-intelligence-ml/game-state-predictors.md) — Estimates the best next move and likely game outcome from the same set of input board features. ([source](https://github.com/tensorflow/minigo/blob/master/dual_net.py))
- [Policy and Value Function Approximators](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/frameworks/model-construction/neural-network-layers/policy-and-value-function-approximators.md) — Predicts both the optimal move probabilities and the expected game outcome from a single board state input.
- [Machine Learning Training](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/machine-learning-training.md) — Provides frameworks for training and fine-tuning the Go AI using historical games and self-play simulations. ([source](https://github.com/tensorflow/minigo/blob/master/WORKSPACE))
- [Model Loading](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/model-training-and-tuning/data-and-checkpointing/model-loading.md) — Reads serialized models and metadata from files while verifying versions for execution. ([source](https://github.com/tensorflow/minigo/blob/master/minigo_model.py))
- [Monte Carlo Tree Search](https://awesome-repositories.com/f/artificial-intelligence-ml/monte-carlo-tree-search.md) — Implements Monte Carlo Tree Search to evaluate potential future board states and identify the highest win probability moves.
- [Self-Play Architectures](https://awesome-repositories.com/f/artificial-intelligence-ml/multi-agent-systems/self-play-architectures.md) — Generates training examples by simulating games between different model versions to iteratively improve the network.
- [Neural Network Optimizers](https://awesome-repositories.com/f/artificial-intelligence-ml/neural-network-optimizers.md) — Optimizes neural network convergence using configurable training durations, data shuffling, and specialized export paths. ([source](https://github.com/tensorflow/minigo/blob/master/train.py))
- [Neural Network Training](https://awesome-repositories.com/f/artificial-intelligence-ml/neural-network-training.md) — Implements the iterative process of adjusting neural network weights to predict Go board policies and game outcomes. ([source](https://github.com/tensorflow/minigo/blob/master/requirements-colab.txt))
- [Reinforcement Learning Training Pipelines](https://awesome-repositories.com/f/artificial-intelligence-ml/reinforcement-learning-training-pipelines.md) — Provides an orchestration pipeline that loops through bootstrapping, self-play data generation, and weight updates. ([source](https://github.com/tensorflow/minigo/blob/master/README.md))
- [TensorFlow Model Development](https://awesome-repositories.com/f/artificial-intelligence-ml/tensorflow-model-development.md) — Features a complete pipeline for designing and training neural networks using the TensorFlow ecosystem.
- [AI Backend Integrations](https://awesome-repositories.com/f/artificial-intelligence-ml/ai-backend-integrations.md) — Integrates the engine as a backend for compatible user interfaces via the Go Text Protocol. ([source](https://github.com/tensorflow/minigo/tree/master/cc))
- [Hardware-Accelerated Inference](https://awesome-repositories.com/f/artificial-intelligence-ml/hardware-accelerated-inference.md) — Executes model predictions using specialized hardware engines, including support for Edge TPUs. ([source](https://github.com/tensorflow/minigo/tree/master/cc))
- [Imitation Learning Bootstrapping](https://awesome-repositories.com/f/artificial-intelligence-ml/imitation-learning-bootstrapping.md) — Initializes the model using a dataset of professional games to emulate human opening patterns. ([source](https://github.com/tensorflow/minigo/blob/master/RESULTS.md))
- [Iterative Local Optimization](https://awesome-repositories.com/f/artificial-intelligence-ml/iterative-local-optimization.md) — Refines playing strategy through iterative optimization using learning rate schedules and batch normalization. ([source](https://github.com/tensorflow/minigo/blob/master/notes.txt))
- [TPU Training Accelerators](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/machine-learning-training/tpu-training-accelerators.md) — Uses TPU hardware to increase batch sizes and reduce training time for large-scale learning runs. ([source](https://github.com/tensorflow/minigo/blob/master/RESULTS.md))
- [Model Performance Benchmarking](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/model-evaluation-analysis/model-analysis/model-performance-benchmarking.md) — Replays model generations against target opponents to benchmark win rates and convergence time. ([source](https://github.com/tensorflow/minigo/blob/master/evaluate.py))
- [Data Preprocessing](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/model-training-and-tuning/data-and-checkpointing/data-preprocessing.md) — Converts raw game files into a standardized record format to prepare datasets for model training and validation. ([source](https://github.com/tensorflow/minigo/blob/master/README.md))
- [MCTS Parallelization Strategies](https://awesome-repositories.com/f/artificial-intelligence-ml/mcts-parallelization-strategies.md) — Applies virtual losses during tree search to enable parallel leaf evaluation and encourage exploration of diverse moves. ([source](https://github.com/tensorflow/minigo/blob/master/RESULTS.md))
- [Edge Inference](https://awesome-repositories.com/f/artificial-intelligence-ml/neural-networks/edge-inference.md) — Supports execution of quantized models on Edge TPUs for efficient board policy and value prediction. ([source](https://github.com/tensorflow/minigo/blob/master/dual_net_edge_tpu.py))
- [Symmetry-Based Data Augmentation](https://awesome-repositories.com/f/artificial-intelligence-ml/symmetry-based-data-augmentation.md) — Increases training data diversity by applying rotations and flips to board features and move probabilities. ([source](https://github.com/tensorflow/minigo/blob/master/symmetries.py))

### DevOps & Infrastructure

- [Distributed Task Workers](https://awesome-repositories.com/f/devops-infrastructure/distributed-task-workers.md) — Scales game simulation throughput by deploying containerized agents across a cluster of CPU or TPU nodes via Kubernetes.
- [Task Distribution Scaling](https://awesome-repositories.com/f/devops-infrastructure/worker-scaling/task-distribution-scaling.md) — Distributes game playing tasks across multiple containerized worker nodes to increase processing throughput. ([source](https://github.com/tensorflow/minigo/tree/master/cluster))
- [Optimized Container Images](https://awesome-repositories.com/f/devops-infrastructure/optimized-container-images.md) — Creates optimized container images tailored for different roles across CPU, GPU, and TPU hardware. ([source](https://github.com/tensorflow/minigo/tree/master/cluster/README.md))
- [Simulation Throughput Optimizers](https://awesome-repositories.com/f/devops-infrastructure/performance-optimization-utilities/compute-throughput-optimizers/simulation-throughput-optimizers.md) — Manages concurrency and parallelized search to increase the speed of training data generation. ([source](https://github.com/tensorflow/minigo/tree/master/ml_perf))

### Game Development

- [Move Evaluation Engines](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/engine-evaluation-tools/move-evaluation-engines.md) — Provides a move evaluation engine that uses tree search to assess board states and select optimal actions. ([source](https://github.com/tensorflow/minigo/blob/master/mcts.py))
- [Game Simulation Environments](https://awesome-repositories.com/f/game-development/game-simulation-environments.md) — Runs worker jobs across a cluster to simulate games simultaneously and accelerate data collection. ([source](https://github.com/tensorflow/minigo/tree/master/cluster/README.md))
- [Go Gameplay Simulators](https://awesome-repositories.com/f/game-development/go-gameplay-simulators.md) — Implements a game engine that manages board positions and executes moves according to Go rules. ([source](https://github.com/tensorflow/minigo/blob/master/player_interface.py))
- [Move Evaluation Engines](https://awesome-repositories.com/f/game-development/move-evaluation-engines.md) — Analyzes current board positions to identify and return the best possible move for a player. ([source](https://github.com/tensorflow/minigo/blob/master/player_interface.py))
- [Self-Play Dataset Generation](https://awesome-repositories.com/f/game-development/open-source-games/game-data-repositories/self-play-dataset-generation.md) — Executes self-play games to produce structured raw data for iterative neural network training. ([source](https://github.com/tensorflow/minigo#readme))
- [Game Rule Validation](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/game-rule-validation.md) — Implements game rules and heuristics, including resignation thresholds and move limits. ([source](https://github.com/tensorflow/minigo/blob/master/notes.txt))

### Networking & Communication

- [Go Text Protocol Implementations](https://awesome-repositories.com/f/networking-communication/go-text-protocol-implementations.md) — The Go AI parses commands and returns formatted responses according to the Go Text Protocol to communicate with game clients. ([source](https://github.com/tensorflow/minigo/blob/master/gtp_engine.py))
- [Communication Protocols](https://awesome-repositories.com/f/networking-communication/communication-protocols.md) — Facilitates human or computer matchups through standardized communication with external game software. ([source](https://github.com/tensorflow/minigo#readme))
- [Game Engine Communication Protocols](https://awesome-repositories.com/f/networking-communication/game-engine-communication-protocols.md) — Uses the Go Text Protocol to enable communication between external game interfaces and the AI agent. ([source](https://github.com/tensorflow/minigo/blob/master/gtp.py))
- [Text-Based Communication Protocols](https://awesome-repositories.com/f/networking-communication/text-based-communication-protocols.md) — Communicates engine state and move suggestions using a standardized text-based protocol.

### Programming Languages & Runtimes

- [Self-Play Data Generation](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/webassembly/game-execution/self-play-data-generation.md) — Simulates parallel games against itself using batched inference to generate raw training data. ([source](https://github.com/tensorflow/minigo/tree/master/cc))
- [Parallel Search Execution](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/concurrency/execution-models/multi-threaded-execution/parallel-search-execution.md) — Performs parallel search execution by distributing game tree readouts across CPU cores to identify optimal moves. ([source](https://github.com/tensorflow/minigo/blob/master/strategies.py))

### Scientific & Mathematical Computing

- [Game Tree Search](https://awesome-repositories.com/f/scientific-mathematical-computing/monte-carlo-sampling/game-tree-search.md) — Implements a Monte Carlo Tree Search to evaluate thousands of potential future board states and determine the highest win probability. ([source](https://github.com/tensorflow/minigo/blob/master/player_interface.py))

### Part of an Awesome List

- [Model Validation](https://awesome-repositories.com/f/awesome-lists/ai/model-validation.md) — Validates model performance and tracks overfitting by computing error rates against high-quality game data. ([source](https://github.com/tensorflow/minigo#readme))

### Data & Databases

- [Binary Serialization Formats](https://awesome-repositories.com/f/data-databases/binary-serialization-formats.md) — Transforms game features and outcomes into a serialized binary format for efficient storage and training. ([source](https://github.com/tensorflow/minigo/blob/master/preprocessing.py))
- [Batched Data Loading](https://awesome-repositories.com/f/data-databases/data-pipeline-orchestration/data-engineering-pipelines/batched-data-loading.md) — Loads serialized records from disk into batched tensors with shuffling and filtering options. ([source](https://github.com/tensorflow/minigo/blob/master/preprocessing.py))
- [Training Data Pipelines](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-processing/ml-data-pipelines/training-data-pipelines.md) — Uses BigTable distributed database to store and sample training examples to reduce pipeline bottlenecks. ([source](https://github.com/tensorflow/minigo/blob/master/RESULTS.md))
