diff --git a/.dockerignore b/.dockerignore index a295e20e..71eace90 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,8 +1,6 @@ data ui logs -experimental/logs -experimental/models assets venv .git diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index d03dca4d..dfca0348 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -5,9 +5,9 @@ name: Lint and Tests on: push: - branches: [master] + branches: [master, staging] pull_request: - branches: [master] + branches: [master, staging] jobs: build: @@ -23,9 +23,16 @@ jobs: run: | python -m pip install --upgrade pip pip install -r dev-requirements.txt + pip install -e catanatron_core + pip install -e catanatron_gym + pip install -e catanatron_server + pip install -e catanatron_experimental - name: Lint with black run: | - black catanatron/ --check + black catanatron_core --check + black catanatron_gym --check + black catanatron_server --check + black catanatron_experimental --check - name: Test with pytest run: | coverage run --source=catanatron -m pytest tests/ diff --git a/Dockerfile.paperspace b/Dockerfile.paperspace index 72a67b23..a86c5093 100644 --- a/Dockerfile.paperspace +++ b/Dockerfile.paperspace @@ -1,10 +1,10 @@ # This is a Container we can use to run Experiments in Paperspace. # Edit, build, and publish to DockerHub. # `docker build . -f Dockerfile.paperspace -t bcollazo/paperspace-rl` to build. -# `docker run --rm -it bcollazo/paperspace-rl python3.8 experimental/play.py` to ensure it works. +# `docker run --rm -it bcollazo/paperspace-rl catanatron-play` to ensure it works. # `docker push bcollazo/paperspace-rl` to publish. # FROM paperspace/tensorflow:2.0.0-gpu-py3-jupyter-lab -FROM tensorflow/tensorflow:2.4.1-gpu-jupyter-py38 +FROM tensorflow/tensorflow:2.4.1-gpu-jupyter # Install Python3.8 RUN apt update && \ @@ -20,13 +20,15 @@ WORKDIR /app COPY requirements.txt /app RUN python3.8 -m pip install --upgrade pip -RUN python3.8 -m pip install -r requirements.txt +RUN python3.8 -m pip install -r dev-requirements.txt # For some reason we can't include the -e . dependency of the # catanatron package in the requirements.txt. So we install # it separately, here: COPY . . - -RUN python3.8 -m pip install -e . +RUN python3.8 -m pip install -e catanatron_core +RUN python3.8 -m pip install -e catanatron_gym +RUN python3.8 -m pip install -e catanatron_server +RUN python3.8 -m pip install -e catanatron_experimental EXPOSE 8888 diff --git a/Dockerfile.web b/Dockerfile.web index dfe10d32..40656b13 100644 --- a/Dockerfile.web +++ b/Dockerfile.web @@ -6,11 +6,11 @@ ENV FLASK_ENV=development ENV FLASK_APP=catanatron_server ENV FLASK_RUN_HOST=0.0.0.0 -# We can't leverage Docker caching too much since we -# depend on the catanatron package via "-e ." in requirements.txt -COPY . . RUN pip install --upgrade pip -RUN pip install -r requirements.txt + +COPY . . +RUN pip install -e catanatron_core +RUN pip install -e catanatron_server EXPOSE 5000 diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..578837de --- /dev/null +++ b/Makefile @@ -0,0 +1,36 @@ +clean: clean-build clean-pyc clean-test + +clean-build: + rm -fr build/ + rm -fr dist/ + rm -fr .eggs/ + find . -name '*.egg-info' -exec rm -fr {} + + find . -name '*.egg' -exec rm -f {} + + +clean-pyc: + find . -name '*.pyc' -exec rm -f {} + + find . -name '*.pyo' -exec rm -f {} + + find . -name '__pycache__' -exec rm -fr {} + + # find . -name '*~' -exec rm -f {} + + +clean-test: + rm -fr .tox/ + rm -f .coverage + rm -fr htmlcov/ + +build-catanatron: clean + python catanatron_core/setup.py sdist bdist_wheel + ls -l dist + twine check dist/* + + +build-catanatron-gym: clean + python catanatron_gym/setup.py sdist bdist_wheel + ls -l dist + twine check dist/* + +upload: + twine upload --repository-url https://test.pypi.org/legacy/ dist/* + +upload-production: + twine upload dist/* \ No newline at end of file diff --git a/README.md b/README.md index f531b037..4df99fa3 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Install with pip: pip install catanatron ``` -Make your own bot by implementing the following API (see examples in [catanatron/players](catanatron/players) and [experimental/machine_learning/players](experimental/machine_learning/players)): +Make your own bot by implementing the following API (see examples in [catanatron_core/catanatron/players](catanatron_core/catanatron/players) and [catanatron_experimental/catanatron_experimental/machine_learning/players](catanatron_experimental/catanatron_experimental/machine_learning/players)): ```python from catanatron.game import Game @@ -62,7 +62,7 @@ For watching these games in a UI see [watching games](#watching-games). ## Advanced Usage -Cloning the repo and using directly will allow you to access additional tools not included in the core package. In particular, a web UI for watching games and a `experimental/play.py` script that provides a blueprint to run many games, collect summary statistics (avg vps, avg game length, etc...), +Cloning the repo and using directly will allow you to access additional tools not included in the core package. In particular, a web UI for watching games and a `catanatron-play` CLI script that provides a blueprint to run many games, collect summary statistics (avg vps, avg game length, etc...), save game for viewing in browser, and/or generate machine learning datasets. Create a virtualenv with Python 3.8 and install requirements: @@ -71,12 +71,16 @@ Create a virtualenv with Python 3.8 and install requirements: python3.8 -m venv venv source ./venv/bin/activate pip install -r dev-requirements.txt +pip install -e catanatron_core +pip install -e catanatron_server +pip install -e catanatron_gym +pip install -e catanatron_experimental ``` Run games with the `play.py` script. It provides extra options you can explore with `--help`: ``` -python experimental/play.py --num=100 +catanatron-play --num=100 ``` Currently, we can execute one game in ~76 milliseconds. @@ -172,13 +176,13 @@ ptw --ignore=tests/integration_tests/ --nobeep Generate data (GZIP CSVs of features and PGSQL rows) by running: ``` -python experimental/play.py --num=100 --outpath=my-data-path/ +catanatron-play --num=100 --outpath=my-data-path/ ``` You can then use this data to build a machine learning model, and then implement a `Player` subclass that implements the corresponding "predict" step of your model. There are some examples of these type of -players in `experimental/machine_learning/players/reinforcement.py`. +players in [reinforcement.py](catanatron_experimental/catanatron_experimental/machine_learning/players/reinforcement.py). # Appendix @@ -252,7 +256,7 @@ docker run -it --rm -v $(realpath ./notebooks):/tf/notebooks -p 8888:8888 tensor ### Testing Performance ``` -python -m cProfile -o profile.pstats experimental/play.py --num=5 +python -m cProfile -o profile.pstats catanatron_experimental/catanatron_experimental/play.py --num=5 snakeviz profile.pstats ``` @@ -273,13 +277,9 @@ In [3]: x.get_chunk(10) catanatron Package ``` -pip install twine -rm -rf build -rm -rf dist -python setup.py sdist bdist_wheel -twine check dist/* -twine upload --repository-url https://test.pypi.org/legacy/ dist/* -twine upload dist/* +make build-catanatron +make upload +make upload-production ``` ### Building Docs @@ -292,7 +292,7 @@ sphinx-build -b html docs/source/ docs/build/html # Contributing -I am new to Open Source Development, so open to suggestions on this section. The best contributions would be to make the core bot stronger by tinkering with the weights of each of the hand-crafted features in `experimental/machine_learning/players/minimax.py`, or coming up with new hand-crafted features! In particular, you can edit the `CONTENDER_WEIGHTS` and/or `contender_fn` function and run a command like: `python experimental/play.py --players=AB:2:False:C,AB:2 --num=100` to see if your changes improve the main bot. +I am new to Open Source Development, so open to suggestions on this section. The best contributions would be to make the core bot stronger by tinkering with the weights of each of the hand-crafted features in [minimax.py](catanatron_experimental/catanatron_experimental/machine_learning/players/minimax.py), or coming up with new hand-crafted features! In particular, you can edit the `CONTENDER_WEIGHTS` and/or `contender_fn` function and run a command like: `catanatron-play --players=AB:2:False:C,AB:2 --num=100` to see if your changes improve the main bot. Here is also a list of ideas: diff --git a/catanatron/__init__.py b/catanatron_core/catanatron/__init__.py similarity index 100% rename from catanatron/__init__.py rename to catanatron_core/catanatron/__init__.py diff --git a/catanatron/game.py b/catanatron_core/catanatron/game.py similarity index 100% rename from catanatron/game.py rename to catanatron_core/catanatron/game.py diff --git a/catanatron/json.py b/catanatron_core/catanatron/json.py similarity index 100% rename from catanatron/json.py rename to catanatron_core/catanatron/json.py diff --git a/catanatron/models/__init__.py b/catanatron_core/catanatron/models/__init__.py similarity index 100% rename from catanatron/models/__init__.py rename to catanatron_core/catanatron/models/__init__.py diff --git a/catanatron/models/actions.py b/catanatron_core/catanatron/models/actions.py similarity index 100% rename from catanatron/models/actions.py rename to catanatron_core/catanatron/models/actions.py diff --git a/catanatron/models/board.py b/catanatron_core/catanatron/models/board.py similarity index 100% rename from catanatron/models/board.py rename to catanatron_core/catanatron/models/board.py diff --git a/catanatron/models/coordinate_system.py b/catanatron_core/catanatron/models/coordinate_system.py similarity index 100% rename from catanatron/models/coordinate_system.py rename to catanatron_core/catanatron/models/coordinate_system.py diff --git a/catanatron/models/decks.py b/catanatron_core/catanatron/models/decks.py similarity index 100% rename from catanatron/models/decks.py rename to catanatron_core/catanatron/models/decks.py diff --git a/catanatron/models/enums.py b/catanatron_core/catanatron/models/enums.py similarity index 100% rename from catanatron/models/enums.py rename to catanatron_core/catanatron/models/enums.py diff --git a/catanatron/models/map.py b/catanatron_core/catanatron/models/map.py similarity index 100% rename from catanatron/models/map.py rename to catanatron_core/catanatron/models/map.py diff --git a/catanatron/models/player.py b/catanatron_core/catanatron/models/player.py similarity index 100% rename from catanatron/models/player.py rename to catanatron_core/catanatron/models/player.py diff --git a/catanatron/players/__init__.py b/catanatron_core/catanatron/players/__init__.py similarity index 100% rename from catanatron/players/__init__.py rename to catanatron_core/catanatron/players/__init__.py diff --git a/catanatron/players/search.py b/catanatron_core/catanatron/players/search.py similarity index 100% rename from catanatron/players/search.py rename to catanatron_core/catanatron/players/search.py diff --git a/catanatron/players/weighted_random.py b/catanatron_core/catanatron/players/weighted_random.py similarity index 100% rename from catanatron/players/weighted_random.py rename to catanatron_core/catanatron/players/weighted_random.py diff --git a/catanatron/state.py b/catanatron_core/catanatron/state.py similarity index 100% rename from catanatron/state.py rename to catanatron_core/catanatron/state.py diff --git a/catanatron/state_functions.py b/catanatron_core/catanatron/state_functions.py similarity index 100% rename from catanatron/state_functions.py rename to catanatron_core/catanatron/state_functions.py diff --git a/setup.py b/catanatron_core/setup.py similarity index 69% rename from setup.py rename to catanatron_core/setup.py index 63bb6117..b363c241 100644 --- a/setup.py +++ b/catanatron_core/setup.py @@ -1,27 +1,26 @@ import setuptools +import os -with open("README.md", "r") as fh: +readme_path = os.path.abspath(os.path.join(__file__, "..", "..", "README.md")) + +with open(readme_path, "r") as fh: long_description = fh.read() setuptools.setup( name="catanatron", - version="2.0.0", + version="3.0.0", author="Bryan Collazo", author_email="bcollazo2010@gmail.com", description="Fast Settlers of Catan Python Implementation", long_description=long_description, long_description_content_type="text/markdown", url="https://github.com/bcollazo/catanatron", - packages=setuptools.find_packages( - exclude=[ - "catanatron_server", - ] - ), + packages=setuptools.find_packages(exclude=["catanatron_server"]), classifiers=[ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], python_requires=">=3.8", - install_requires=["networkx", "gym"], + install_requires=["networkx"], ) diff --git a/experimental/alphatan/benchmark.py b/catanatron_experimental/catanatron_experimental/alphatan/benchmark.py similarity index 71% rename from experimental/alphatan/benchmark.py rename to catanatron_experimental/catanatron_experimental/alphatan/benchmark.py index 73de26f8..5aad3dc0 100644 --- a/experimental/alphatan/benchmark.py +++ b/catanatron_experimental/catanatron_experimental/alphatan/benchmark.py @@ -1,9 +1,9 @@ from catanatron.game import Game from catanatron.models.player import Color, Player, RandomPlayer -from experimental.alphatan.mcts import AlphaMCTS, game_end_value +from catanatron_experimental.alphatan.mcts import AlphaMCTS, game_end_value -from experimental.alphatan.simple_alpha_zero import ( +from catanatron_experimental.alphatan.simple_alpha_zero import ( AlphaTan, create_model, load_replay_memory, diff --git a/experimental/alphatan/mcts.py b/catanatron_experimental/catanatron_experimental/alphatan/mcts.py similarity index 96% rename from experimental/alphatan/mcts.py rename to catanatron_experimental/catanatron_experimental/alphatan/mcts.py index 2fa7bccf..2b89b143 100644 --- a/experimental/alphatan/mcts.py +++ b/catanatron_experimental/catanatron_experimental/alphatan/mcts.py @@ -4,8 +4,10 @@ import tensorflow as tf import numpy as np -from experimental.machine_learning.players.reinforcement import ACTION_SPACE_SIZE -from experimental.dqn_player import to_action_space, from_action_space +from catanatron_experimental.machine_learning.players.reinforcement import ( + ACTION_SPACE_SIZE, +) +from catanatron_experimental.dqn_player import to_action_space, from_action_space from catanatron_gym.features import create_sample_vector EPS = 1e-8 diff --git a/experimental/alphatan/offline_alpha_test.py b/catanatron_experimental/catanatron_experimental/alphatan/offline_alpha_test.py similarity index 96% rename from experimental/alphatan/offline_alpha_test.py rename to catanatron_experimental/catanatron_experimental/alphatan/offline_alpha_test.py index 42ac19ed..76a1c489 100644 --- a/experimental/alphatan/offline_alpha_test.py +++ b/catanatron_experimental/catanatron_experimental/alphatan/offline_alpha_test.py @@ -1,4 +1,6 @@ -from experimental.machine_learning.players.reinforcement import ACTION_SPACE_SIZE +from catanatron_experimental.machine_learning.players.reinforcement import ( + ACTION_SPACE_SIZE, +) import time from pathlib import Path @@ -9,7 +11,7 @@ # Read datasets. Try to fit model from simple_alpha_zero import create_model, load_replay_memory, pit -from experimental.machine_learning.board_tensor_features import ( +from catanatron_experimental.machine_learning.board_tensor_features import ( HEIGHT, WIDTH, create_board_tensor, diff --git a/experimental/alphatan/pit.py b/catanatron_experimental/catanatron_experimental/alphatan/pit.py similarity index 81% rename from experimental/alphatan/pit.py rename to catanatron_experimental/catanatron_experimental/alphatan/pit.py index bdefb696..e80ff10b 100644 --- a/experimental/alphatan/pit.py +++ b/catanatron_experimental/catanatron_experimental/alphatan/pit.py @@ -1,13 +1,13 @@ import uuid -from experimental.alphatan.simple_alpha_zero import ( +from catanatron_experimental.alphatan.simple_alpha_zero import ( AlphaTan, create_model, load_replay_memory, pit, ) from catanatron.models.player import Color, Player, RandomPlayer -from experimental.play import play_batch +from catanatron_experimental.play import play_batch save_in_db = False model = create_model() diff --git a/experimental/alphatan/simple_alpha_zero.py b/catanatron_experimental/catanatron_experimental/alphatan/simple_alpha_zero.py similarity index 96% rename from experimental/alphatan/simple_alpha_zero.py rename to catanatron_experimental/catanatron_experimental/alphatan/simple_alpha_zero.py index c5fdb344..b4c69241 100644 --- a/experimental/alphatan/simple_alpha_zero.py +++ b/catanatron_experimental/catanatron_experimental/alphatan/simple_alpha_zero.py @@ -13,18 +13,18 @@ import tensorflow as tf from catanatron.game import Game -from experimental.alphatan.mcts import AlphaMCTS, game_end_value -from experimental.machine_learning.utils import ensure_dir +from catanatron_experimental.alphatan.mcts import AlphaMCTS, game_end_value +from catanatron_experimental.machine_learning.utils import ensure_dir from catanatron.models.player import Color, Player, RandomPlayer -from experimental.play import play_batch +from catanatron_experimental.play import play_batch from catanatron_gym.envs.catanatron_env import ( ACTIONS_ARRAY, ACTION_SPACE_SIZE, from_action_space, to_action_space, ) -from experimental.dqn_player import epsilon_greedy_policy -from experimental.machine_learning.board_tensor_features import ( +from catanatron_experimental.dqn_player import epsilon_greedy_policy +from catanatron_experimental.machine_learning.board_tensor_features import ( CHANNELS, HEIGHT, WIDTH, @@ -108,7 +108,7 @@ def main(): # TODO: Save checkpoint model.save_weights(f"data/checkpoints/{name}") - model.save(f"experimental/models/{name}") + model.save(f"data/models/{name}") def save_replay_memory(data_directory, examples): diff --git a/experimental/bayesian.py b/catanatron_experimental/catanatron_experimental/bayesian.py similarity index 96% rename from experimental/bayesian.py rename to catanatron_experimental/catanatron_experimental/bayesian.py index 93243b0e..f95ee2f3 100644 --- a/experimental/bayesian.py +++ b/catanatron_experimental/catanatron_experimental/bayesian.py @@ -1,13 +1,13 @@ from bayes_opt import BayesianOptimization from bayes_opt.logger import JSONLogger -from experimental.machine_learning.players.minimax import ( +from catanatron_experimental.machine_learning.players.minimax import ( AlphaBetaPlayer, DEFAULT_WEIGHTS, ValueFunctionPlayer, ) from catanatron.models.player import Color -from experimental.play import play_batch +from catanatron_experimental.play import play_batch def black_box_function(a, b, c, d, e, f, g, h, i, j, k, l): diff --git a/experimental/benchmarks/benchmark.py b/catanatron_experimental/catanatron_experimental/benchmarks/benchmark.py similarity index 100% rename from experimental/benchmarks/benchmark.py rename to catanatron_experimental/catanatron_experimental/benchmarks/benchmark.py diff --git a/experimental/benchmarks/benchmark_bot_strength.py b/catanatron_experimental/catanatron_experimental/benchmarks/benchmark_bot_strength.py similarity index 90% rename from experimental/benchmarks/benchmark_bot_strength.py rename to catanatron_experimental/catanatron_experimental/benchmarks/benchmark_bot_strength.py index 8efd77ad..44df5901 100644 --- a/experimental/benchmarks/benchmark_bot_strength.py +++ b/catanatron_experimental/catanatron_experimental/benchmarks/benchmark_bot_strength.py @@ -1,4 +1,4 @@ -from experimental.play import simulate +from catanatron_experimental.play import simulate simulate(50, "AB:2,F", None, False, False) diff --git a/experimental/benchmarks/benchmark_create_sample_vector.py b/catanatron_experimental/catanatron_experimental/benchmarks/benchmark_create_sample_vector.py similarity index 100% rename from experimental/benchmarks/benchmark_create_sample_vector.py rename to catanatron_experimental/catanatron_experimental/benchmarks/benchmark_create_sample_vector.py diff --git a/experimental/benchmarks/benchmark_deck.py b/catanatron_experimental/catanatron_experimental/benchmarks/benchmark_deck.py similarity index 100% rename from experimental/benchmarks/benchmark_deck.py rename to catanatron_experimental/catanatron_experimental/benchmarks/benchmark_deck.py diff --git a/experimental/benchmarks/benchmark_game_copy.py b/catanatron_experimental/catanatron_experimental/benchmarks/benchmark_game_copy.py similarity index 100% rename from experimental/benchmarks/benchmark_game_copy.py rename to catanatron_experimental/catanatron_experimental/benchmarks/benchmark_game_copy.py diff --git a/experimental/benchmarks/benchmark_game_ops.py b/catanatron_experimental/catanatron_experimental/benchmarks/benchmark_game_ops.py similarity index 100% rename from experimental/benchmarks/benchmark_game_ops.py rename to catanatron_experimental/catanatron_experimental/benchmarks/benchmark_game_ops.py diff --git a/experimental/binary-problem.py b/catanatron_experimental/catanatron_experimental/binary-problem.py similarity index 100% rename from experimental/binary-problem.py rename to catanatron_experimental/catanatron_experimental/binary-problem.py diff --git a/experimental/cross-entropy-method.py b/catanatron_experimental/catanatron_experimental/cross-entropy-method.py similarity index 97% rename from experimental/cross-entropy-method.py rename to catanatron_experimental/catanatron_experimental/cross-entropy-method.py index 2db9427b..e0bc0bc6 100644 --- a/experimental/cross-entropy-method.py +++ b/catanatron_experimental/catanatron_experimental/cross-entropy-method.py @@ -6,8 +6,10 @@ import tensorflow as tf import kerastuner as kt -from experimental.machine_learning.players.reinforcement import ACTION_SPACE_SIZE -from experimental.train import NUM_FEATURES +from catanatron_experimental.machine_learning.players.reinforcement import ( + ACTION_SPACE_SIZE, +) +from catanatron_experimental.train import NUM_FEATURES # ===== Configuration diff --git a/experimental/data_logger.py b/catanatron_experimental/catanatron_experimental/data_logger.py similarity index 97% rename from experimental/data_logger.py rename to catanatron_experimental/catanatron_experimental/data_logger.py index fddeb605..3011c50e 100644 --- a/experimental/data_logger.py +++ b/catanatron_experimental/catanatron_experimental/data_logger.py @@ -7,7 +7,7 @@ create_sample_vector, get_feature_ordering, ) -from experimental.machine_learning.board_tensor_features import ( +from catanatron_experimental.machine_learning.board_tensor_features import ( CHANNELS, HEIGHT, WIDTH, diff --git a/experimental/datasets.py b/catanatron_experimental/catanatron_experimental/datasets.py similarity index 96% rename from experimental/datasets.py rename to catanatron_experimental/catanatron_experimental/datasets.py index 39f07aa5..75c5d6bc 100644 --- a/experimental/datasets.py +++ b/catanatron_experimental/catanatron_experimental/datasets.py @@ -3,7 +3,11 @@ import tensorflow as tf import pandas as pd -from experimental.machine_learning.board_tensor_features import CHANNELS, HEIGHT, WIDTH +from catanatron_experimental.machine_learning.board_tensor_features import ( + CHANNELS, + HEIGHT, + WIDTH, +) def read_data( diff --git a/experimental/dql-tutorial.py b/catanatron_experimental/catanatron_experimental/dql-tutorial.py similarity index 100% rename from experimental/dql-tutorial.py rename to catanatron_experimental/catanatron_experimental/dql-tutorial.py diff --git a/experimental/dqn.py b/catanatron_experimental/catanatron_experimental/dqn.py similarity index 98% rename from experimental/dqn.py rename to catanatron_experimental/catanatron_experimental/dqn.py index 2b227e56..e53f4e60 100644 --- a/experimental/dqn.py +++ b/catanatron_experimental/catanatron_experimental/dqn.py @@ -20,14 +20,16 @@ from PIL import Image import cv2 -from experimental.machine_learning.board_tensor_features import ( +from catanatron_experimental.machine_learning.board_tensor_features import ( WIDTH, HEIGHT, CHANNELS, NUMERIC_FEATURES, NUM_NUMERIC_FEATURES, ) -from experimental.machine_learning.players.reinforcement import ACTION_SPACE_SIZE +from catanatron_experimental.machine_learning.players.reinforcement import ( + ACTION_SPACE_SIZE, +) # CNN_FILTERS = 256 # DROPOUT_RATE = 0.2 diff --git a/experimental/dqn_player.py b/catanatron_experimental/catanatron_experimental/dqn_player.py similarity index 99% rename from experimental/dqn_player.py rename to catanatron_experimental/catanatron_experimental/dqn_player.py index 83ea2f2c..8ff10c93 100644 --- a/experimental/dqn_player.py +++ b/catanatron_experimental/catanatron_experimental/dqn_player.py @@ -29,7 +29,9 @@ from catanatron.players.search import VictoryPointPlayer from catanatron_gym.features import create_sample_vector, get_feature_ordering from catanatron_server.utils import ensure_link -from experimental.machine_learning.board_tensor_features import create_board_tensor +from catanatron_experimental.machine_learning.board_tensor_features import ( + create_board_tensor, +) from catanatron_gym.envs.catanatron_env import ( from_action_space, to_action_space, @@ -382,7 +384,7 @@ def main(experiment_name): # Ensure models folder model_name = f"{experiment_name}-{int(time.time())}" - models_folder = "experimental/models/" + models_folder = "data/models/" if not os.path.isdir(models_folder): os.makedirs(models_folder) diff --git a/experimental/learn-to-and.py b/catanatron_experimental/catanatron_experimental/learn-to-and.py similarity index 98% rename from experimental/learn-to-and.py rename to catanatron_experimental/catanatron_experimental/learn-to-and.py index a2149d90..98a8a9fa 100644 --- a/experimental/learn-to-and.py +++ b/catanatron_experimental/catanatron_experimental/learn-to-and.py @@ -5,7 +5,7 @@ # Part 2: Count across layers. # Part 3: Count only one layer ignore the other. -# from experimental.datasets import read_data +# from catanatron_experimental.datasets import read_data # data_directory = "data/random-games-separate-edge-nodes-simple-problem-big" # samples, actions, rewards = read_data(data_directory) diff --git a/experimental/learn-to-count.py b/catanatron_experimental/catanatron_experimental/learn-to-count.py similarity index 98% rename from experimental/learn-to-count.py rename to catanatron_experimental/catanatron_experimental/learn-to-count.py index 2edcd90a..fea74f22 100644 --- a/experimental/learn-to-count.py +++ b/catanatron_experimental/catanatron_experimental/learn-to-count.py @@ -5,7 +5,7 @@ # Part 2: Count across layers. # Part 3: Count only one layer ignore the other. -# from experimental.datasets import read_data +# from catanatron_experimental.datasets import read_data # data_directory = "data/random-games-separate-edge-nodes-simple-problem-big" # samples, actions, rewards = read_data(data_directory) diff --git a/experimental/machine_learning/__init__.py b/catanatron_experimental/catanatron_experimental/machine_learning/__init__.py similarity index 100% rename from experimental/machine_learning/__init__.py rename to catanatron_experimental/catanatron_experimental/machine_learning/__init__.py diff --git a/experimental/machine_learning/board_tensor_features.py b/catanatron_experimental/catanatron_experimental/machine_learning/board_tensor_features.py similarity index 100% rename from experimental/machine_learning/board_tensor_features.py rename to catanatron_experimental/catanatron_experimental/machine_learning/board_tensor_features.py diff --git a/experimental/machine_learning/players/mcts.py b/catanatron_experimental/catanatron_experimental/machine_learning/players/mcts.py similarity index 93% rename from experimental/machine_learning/players/mcts.py rename to catanatron_experimental/catanatron_experimental/machine_learning/players/mcts.py index 6e22f886..30994365 100644 --- a/experimental/machine_learning/players/mcts.py +++ b/catanatron_experimental/catanatron_experimental/machine_learning/players/mcts.py @@ -6,9 +6,13 @@ from catanatron.game import Game from catanatron.models.player import Player -from experimental.machine_learning.players.playouts import run_playout -from experimental.machine_learning.players.tree_search_utils import execute_spectrum -from experimental.machine_learning.players.minimax import list_prunned_actions +from catanatron_experimental.machine_learning.players.playouts import run_playout +from catanatron_experimental.machine_learning.players.tree_search_utils import ( + execute_spectrum, +) +from catanatron_experimental.machine_learning.players.minimax import ( + list_prunned_actions, +) SIMULATIONS = 10 epsilon = 1e-8 diff --git a/experimental/machine_learning/players/minimax.py b/catanatron_experimental/catanatron_experimental/machine_learning/players/minimax.py similarity index 99% rename from experimental/machine_learning/players/minimax.py rename to catanatron_experimental/catanatron_experimental/machine_learning/players/minimax.py index 8d831078..f206254f 100644 --- a/experimental/machine_learning/players/minimax.py +++ b/catanatron_experimental/catanatron_experimental/machine_learning/players/minimax.py @@ -17,7 +17,9 @@ reachability_features, resource_hand_features, ) -from experimental.machine_learning.players.tree_search_utils import expand_spectrum +from catanatron_experimental.machine_learning.players.tree_search_utils import ( + expand_spectrum, +) TRANSLATE_VARIETY = 4 # i.e. each new resource is like 4 production points diff --git a/experimental/machine_learning/players/online_mcts_dqn.py b/catanatron_experimental/catanatron_experimental/machine_learning/players/online_mcts_dqn.py similarity index 95% rename from experimental/machine_learning/players/online_mcts_dqn.py rename to catanatron_experimental/catanatron_experimental/machine_learning/players/online_mcts_dqn.py index 05ff47c0..65a06aef 100644 --- a/experimental/machine_learning/players/online_mcts_dqn.py +++ b/catanatron_experimental/catanatron_experimental/machine_learning/players/online_mcts_dqn.py @@ -1,5 +1,5 @@ from collections import deque -from experimental.data_logger import DataLogger +from catanatron_experimental.data_logger import DataLogger import os import random import time @@ -24,12 +24,12 @@ from catanatron.game import Game from catanatron.models.player import Player -from experimental.machine_learning.players.playouts import run_playouts +from catanatron_experimental.machine_learning.players.playouts import run_playouts from catanatron_gym.features import ( create_sample_vector, get_feature_ordering, ) -from experimental.machine_learning.board_tensor_features import ( +from catanatron_experimental.machine_learning.board_tensor_features import ( WIDTH, HEIGHT, CHANNELS, @@ -50,7 +50,7 @@ # ===== PLAYER STATE (here to allow pickle-serialization of player) # MODEL_NAME = "online-mcts-dqn-3.0" -# MODEL_PATH = str(Path("experimental/models/", MODEL_NAME)) +# MODEL_PATH = str(Path("data/models/", MODEL_NAME)) # MODEL_SINGLETON = None DATA_LOGGER = DataLogger(DATA_PATH) diff --git a/experimental/machine_learning/players/playouts.py b/catanatron_experimental/catanatron_experimental/machine_learning/players/playouts.py similarity index 100% rename from experimental/machine_learning/players/playouts.py rename to catanatron_experimental/catanatron_experimental/machine_learning/players/playouts.py diff --git a/experimental/machine_learning/players/reinforcement.py b/catanatron_experimental/catanatron_experimental/machine_learning/players/reinforcement.py similarity index 98% rename from experimental/machine_learning/players/reinforcement.py rename to catanatron_experimental/catanatron_experimental/machine_learning/players/reinforcement.py index 69d764a8..ae0106bb 100644 --- a/experimental/machine_learning/players/reinforcement.py +++ b/catanatron_experimental/catanatron_experimental/machine_learning/players/reinforcement.py @@ -12,12 +12,12 @@ get_feature_ordering, ) from catanatron_gym.envs.catanatron_env import ACTIONS_ARRAY, ACTION_SPACE_SIZE -from experimental.machine_learning.board_tensor_features import ( +from catanatron_experimental.machine_learning.board_tensor_features import ( NUMERIC_FEATURES, create_board_tensor, ) -# from experimental.rep_b_model import build_model +# from catanatron_experimental.rep_b_model import build_model # Taken from correlation analysis FEATURES = [ diff --git a/experimental/machine_learning/players/scikit.py b/catanatron_experimental/catanatron_experimental/machine_learning/players/scikit.py similarity index 82% rename from experimental/machine_learning/players/scikit.py rename to catanatron_experimental/catanatron_experimental/machine_learning/players/scikit.py index fe76e378..2c5266d8 100644 --- a/experimental/machine_learning/players/scikit.py +++ b/catanatron_experimental/catanatron_experimental/machine_learning/players/scikit.py @@ -9,18 +9,18 @@ from catanatron_gym.features import create_sample, create_sample_vector -from experimental.simple_model import FEATURES +from catanatron_experimental.simple_model import FEATURES -# from experimental.simple_forest import FEATURES +# from catanatron_experimental.simple_forest import FEATURES clf = None def load_model(): global clf - with open("experimental/models/simple-scikit-linear.model", "rb") as file: + with open("data/models/simple-scikit-linear.model", "rb") as file: clf = pickle.load(file) - # with open("experimental/models/simple-rf.model", "rb") as file: + # with open("data/models/simple-rf.model", "rb") as file: # clf = pickle.load(file) diff --git a/experimental/machine_learning/players/simple_model/saved_model.pb b/catanatron_experimental/catanatron_experimental/machine_learning/players/simple_model/saved_model.pb similarity index 100% rename from experimental/machine_learning/players/simple_model/saved_model.pb rename to catanatron_experimental/catanatron_experimental/machine_learning/players/simple_model/saved_model.pb diff --git a/experimental/machine_learning/players/simple_model/variables/variables.data-00000-of-00001 b/catanatron_experimental/catanatron_experimental/machine_learning/players/simple_model/variables/variables.data-00000-of-00001 similarity index 100% rename from experimental/machine_learning/players/simple_model/variables/variables.data-00000-of-00001 rename to catanatron_experimental/catanatron_experimental/machine_learning/players/simple_model/variables/variables.data-00000-of-00001 diff --git a/experimental/machine_learning/players/simple_model/variables/variables.index b/catanatron_experimental/catanatron_experimental/machine_learning/players/simple_model/variables/variables.index similarity index 100% rename from experimental/machine_learning/players/simple_model/variables/variables.index rename to catanatron_experimental/catanatron_experimental/machine_learning/players/simple_model/variables/variables.index diff --git a/experimental/machine_learning/players/simple_model64/saved_model.pb b/catanatron_experimental/catanatron_experimental/machine_learning/players/simple_model64/saved_model.pb similarity index 100% rename from experimental/machine_learning/players/simple_model64/saved_model.pb rename to catanatron_experimental/catanatron_experimental/machine_learning/players/simple_model64/saved_model.pb diff --git a/experimental/machine_learning/players/simple_model64/variables/variables.data-00000-of-00001 b/catanatron_experimental/catanatron_experimental/machine_learning/players/simple_model64/variables/variables.data-00000-of-00001 similarity index 100% rename from experimental/machine_learning/players/simple_model64/variables/variables.data-00000-of-00001 rename to catanatron_experimental/catanatron_experimental/machine_learning/players/simple_model64/variables/variables.data-00000-of-00001 diff --git a/experimental/machine_learning/players/simple_model64/variables/variables.index b/catanatron_experimental/catanatron_experimental/machine_learning/players/simple_model64/variables/variables.index similarity index 100% rename from experimental/machine_learning/players/simple_model64/variables/variables.index rename to catanatron_experimental/catanatron_experimental/machine_learning/players/simple_model64/variables/variables.index diff --git a/experimental/machine_learning/players/tree_search_utils.py b/catanatron_experimental/catanatron_experimental/machine_learning/players/tree_search_utils.py similarity index 100% rename from experimental/machine_learning/players/tree_search_utils.py rename to catanatron_experimental/catanatron_experimental/machine_learning/players/tree_search_utils.py diff --git a/experimental/machine_learning/plot.py b/catanatron_experimental/catanatron_experimental/machine_learning/plot.py similarity index 100% rename from experimental/machine_learning/plot.py rename to catanatron_experimental/catanatron_experimental/machine_learning/plot.py diff --git a/experimental/machine_learning/utils.py b/catanatron_experimental/catanatron_experimental/machine_learning/utils.py similarity index 100% rename from experimental/machine_learning/utils.py rename to catanatron_experimental/catanatron_experimental/machine_learning/utils.py diff --git a/experimental/normalizer.py b/catanatron_experimental/catanatron_experimental/normalizer.py similarity index 93% rename from experimental/normalizer.py rename to catanatron_experimental/catanatron_experimental/normalizer.py index 8b8359f0..cb71eebd 100644 --- a/experimental/normalizer.py +++ b/catanatron_experimental/catanatron_experimental/normalizer.py @@ -16,17 +16,17 @@ import tensorflow as tf import numpy as np -from experimental.machine_learning.board_tensor_features import ( +from catanatron_experimental.machine_learning.board_tensor_features import ( get_numeric_features, get_channels, ) -from experimental.datasets import ( +from catanatron_experimental.datasets import ( read_dataset, preprocess_samples, preprocess_board_tensors, ) -# usage: python experimental/normalizer.py data/reachability 100000 2 +# usage: python catanatron_experimental/catanatron_experimental/normalizer.py data/reachability 100000 2 DATA_DIRECTORY = sys.argv[1] NORMALIZATION_SAMPLES = int(sys.argv[2]) NUM_PLAYERS = int(sys.argv[3]) diff --git a/experimental/notebooks/Overview.ipynb b/catanatron_experimental/catanatron_experimental/notebooks/Overview.ipynb similarity index 100% rename from experimental/notebooks/Overview.ipynb rename to catanatron_experimental/catanatron_experimental/notebooks/Overview.ipynb diff --git a/experimental/notebooks/Untitled.ipynb b/catanatron_experimental/catanatron_experimental/notebooks/Untitled.ipynb similarity index 100% rename from experimental/notebooks/Untitled.ipynb rename to catanatron_experimental/catanatron_experimental/notebooks/Untitled.ipynb diff --git a/experimental/play.py b/catanatron_experimental/catanatron_experimental/play.py similarity index 93% rename from experimental/play.py rename to catanatron_experimental/catanatron_experimental/play.py index c0f1f8a0..53f6ae2b 100644 --- a/experimental/play.py +++ b/catanatron_experimental/catanatron_experimental/play.py @@ -15,38 +15,42 @@ from catanatron.game import Game from catanatron.models.player import HumanPlayer, RandomPlayer, Color from catanatron.players.weighted_random import WeightedRandomPlayer -from experimental.machine_learning.players.reinforcement import ( +from catanatron_experimental.machine_learning.players.reinforcement import ( QRLPlayer, TensorRLPlayer, VRLPlayer, PRLPlayer, hot_one_encode_action, ) -from experimental.tensorforce_player import ForcePlayer -from experimental.machine_learning.players.minimax import ( +from catanatron_experimental.tensorforce_player import ForcePlayer +from catanatron_experimental.machine_learning.players.minimax import ( AlphaBetaPlayer, ValueFunctionPlayer, ) from catanatron.players.search import ( VictoryPointPlayer, ) -from experimental.machine_learning.players.mcts import MCTSPlayer -from experimental.machine_learning.players.scikit import ScikitPlayer -from experimental.machine_learning.players.playouts import GreedyPlayoutsPlayer -from experimental.machine_learning.players.online_mcts_dqn import OnlineMCTSDQNPlayer +from catanatron_experimental.machine_learning.players.mcts import MCTSPlayer +from catanatron_experimental.machine_learning.players.scikit import ScikitPlayer +from catanatron_experimental.machine_learning.players.playouts import ( + GreedyPlayoutsPlayer, +) +from catanatron_experimental.machine_learning.players.online_mcts_dqn import ( + OnlineMCTSDQNPlayer, +) from catanatron_gym.features import ( create_sample, create_sample_vector, get_feature_ordering, ) -from experimental.dqn_player import DQNPlayer -from experimental.machine_learning.board_tensor_features import ( +from catanatron_experimental.dqn_player import DQNPlayer +from catanatron_experimental.machine_learning.board_tensor_features import ( CHANNELS, HEIGHT, WIDTH, create_board_tensor, ) -from experimental.machine_learning.utils import ( +from catanatron_experimental.machine_learning.utils import ( get_discounted_return, get_tournament_return, get_victory_points_return, diff --git a/experimental/rep_a_model.py b/catanatron_experimental/catanatron_experimental/rep_a_model.py similarity index 98% rename from experimental/rep_a_model.py rename to catanatron_experimental/catanatron_experimental/rep_a_model.py index 85be73a1..1ef89157 100644 --- a/experimental/rep_a_model.py +++ b/catanatron_experimental/catanatron_experimental/rep_a_model.py @@ -9,7 +9,7 @@ from catanatron_gym.features import get_feature_ordering -# from experimental.machine_learning.players.reinforcement import ( +# from catanatron_experimental.machine_learning.players.reinforcement import ( # FEATURES, # FEATURE_INDICES, # ) @@ -64,7 +64,7 @@ def allow_feature(feature_name): SHUFFLE_BUFFER_SIZE = 100000 MODEL_NAME = "1v1-rep-a" -MODEL_PATH = f"experimental/models/{MODEL_NAME}" +MODEL_PATH = f"data/models/{MODEL_NAME}" LOG_DIR = f"data/logs/{MODEL_NAME}/{int(time.time())}" diff --git a/experimental/rep_b_model.py b/catanatron_experimental/catanatron_experimental/rep_b_model.py similarity index 97% rename from experimental/rep_b_model.py rename to catanatron_experimental/catanatron_experimental/rep_b_model.py index ad3d23f1..e867c956 100644 --- a/experimental/rep_b_model.py +++ b/catanatron_experimental/catanatron_experimental/rep_b_model.py @@ -8,14 +8,17 @@ import kerastuner as kt from catanatron_gym.features import get_feature_ordering -from experimental.machine_learning.board_tensor_features import ( +from catanatron_experimental.machine_learning.board_tensor_features import ( WIDTH, HEIGHT, CHANNELS, NUMERIC_FEATURES, NUM_NUMERIC_FEATURES, ) -from experimental.datasets import preprocess_samples, preprocess_board_tensors +from catanatron_experimental.datasets import ( + preprocess_samples, + preprocess_board_tensors, +) # ===== Configuration BATCH_SIZE = 32 @@ -47,7 +50,7 @@ BOARD_TENSORS_VARIANCE_PATH = Path(NORMALIZATION_DATA_DIR, "board-tensors-variance.npy") MODEL_NAME = "mcts-rep-b" -MODEL_PATH = f"experimental/models/{MODEL_NAME}" +MODEL_PATH = f"data/models/{MODEL_NAME}" LOG_DIR = f"logs/rep-b-mixed-data-model/{MODEL_NAME}/{int(time.time())}" diff --git a/experimental/rl_utils.py b/catanatron_experimental/catanatron_experimental/rl_utils.py similarity index 100% rename from experimental/rl_utils.py rename to catanatron_experimental/catanatron_experimental/rl_utils.py diff --git a/experimental/scripts/Lab.ipynb b/catanatron_experimental/catanatron_experimental/scripts/Lab.ipynb similarity index 100% rename from experimental/scripts/Lab.ipynb rename to catanatron_experimental/catanatron_experimental/scripts/Lab.ipynb diff --git a/experimental/scripts/TestViz.ipynb b/catanatron_experimental/catanatron_experimental/scripts/TestViz.ipynb similarity index 99% rename from experimental/scripts/TestViz.ipynb rename to catanatron_experimental/catanatron_experimental/scripts/TestViz.ipynb index 66ebc329..26fc7951 100644 --- a/experimental/scripts/TestViz.ipynb +++ b/catanatron_experimental/catanatron_experimental/scripts/TestViz.ipynb @@ -12,7 +12,7 @@ "import pandas as pd\n", "import seaborn as sns\n", "\n", - "from experimental.datasets import head_dataset" + "from catanatron_experimental.datasets import head_dataset" ] }, { diff --git a/experimental/scripts/autokeras-model.py b/catanatron_experimental/catanatron_experimental/scripts/autokeras-model.py similarity index 100% rename from experimental/scripts/autokeras-model.py rename to catanatron_experimental/catanatron_experimental/scripts/autokeras-model.py diff --git a/experimental/scripts/bryan.py b/catanatron_experimental/catanatron_experimental/scripts/bryan.py similarity index 100% rename from experimental/scripts/bryan.py rename to catanatron_experimental/catanatron_experimental/scripts/bryan.py diff --git a/experimental/scripts/force.py b/catanatron_experimental/catanatron_experimental/scripts/force.py similarity index 100% rename from experimental/scripts/force.py rename to catanatron_experimental/catanatron_experimental/scripts/force.py diff --git a/experimental/scripts/gymtest.py b/catanatron_experimental/catanatron_experimental/scripts/gymtest.py similarity index 100% rename from experimental/scripts/gymtest.py rename to catanatron_experimental/catanatron_experimental/scripts/gymtest.py diff --git a/experimental/scripts/keras-test.py b/catanatron_experimental/catanatron_experimental/scripts/keras-test.py similarity index 100% rename from experimental/scripts/keras-test.py rename to catanatron_experimental/catanatron_experimental/scripts/keras-test.py diff --git a/experimental/scripts/krltutorial.py b/catanatron_experimental/catanatron_experimental/scripts/krltutorial.py similarity index 100% rename from experimental/scripts/krltutorial.py rename to catanatron_experimental/catanatron_experimental/scripts/krltutorial.py diff --git a/experimental/scripts/policy_learn.py b/catanatron_experimental/catanatron_experimental/scripts/policy_learn.py similarity index 100% rename from experimental/scripts/policy_learn.py rename to catanatron_experimental/catanatron_experimental/scripts/policy_learn.py diff --git a/experimental/scripts/sample.py b/catanatron_experimental/catanatron_experimental/scripts/sample.py similarity index 100% rename from experimental/scripts/sample.py rename to catanatron_experimental/catanatron_experimental/scripts/sample.py diff --git a/experimental/simple-cnn-learning.py b/catanatron_experimental/catanatron_experimental/simple-cnn-learning.py similarity index 99% rename from experimental/simple-cnn-learning.py rename to catanatron_experimental/catanatron_experimental/simple-cnn-learning.py index 6404aa9d..a1046fac 100644 --- a/experimental/simple-cnn-learning.py +++ b/catanatron_experimental/catanatron_experimental/simple-cnn-learning.py @@ -5,7 +5,7 @@ import tensorflow as tf import kerastuner as kt -from experimental.machine_learning.board_tensor_features import ( +from catanatron_experimental.machine_learning.board_tensor_features import ( WIDTH, HEIGHT, CHANNELS, diff --git a/experimental/simple_forest.py b/catanatron_experimental/catanatron_experimental/simple_forest.py similarity index 91% rename from experimental/simple_forest.py rename to catanatron_experimental/catanatron_experimental/simple_forest.py index 8db839ba..29529408 100644 --- a/experimental/simple_forest.py +++ b/catanatron_experimental/catanatron_experimental/simple_forest.py @@ -4,7 +4,7 @@ import sklearn from sklearn.ensemble import RandomForestRegressor -from experimental.simple_model import create_datasets_iters, read_data_tf +from catanatron_experimental.simple_model import create_datasets_iters, read_data_tf from catanatron_gym.features import get_feature_ordering # Taken from correlation analysis @@ -60,5 +60,5 @@ breakpoint() # Save model - with open("experimental/models/simple-rf.model", "wb") as file: + with open("data/models/simple-rf.model", "wb") as file: pickle.dump(model, file) diff --git a/experimental/simple_model.py b/catanatron_experimental/catanatron_experimental/simple_model.py similarity index 97% rename from experimental/simple_model.py rename to catanatron_experimental/catanatron_experimental/simple_model.py index 09b596df..9a2e116e 100644 --- a/experimental/simple_model.py +++ b/catanatron_experimental/catanatron_experimental/simple_model.py @@ -11,7 +11,7 @@ from sklearn.pipeline import make_pipeline from catanatron_gym.features import get_feature_ordering -from experimental.datasets import read_dataset, preprocess_samples +from catanatron_experimental.datasets import read_dataset, preprocess_samples # Taken from correlation analysis @@ -206,5 +206,5 @@ def read_and_train_online(): breakpoint() # Save model - with open("experimental/models/simple-scikit-linear.model", "wb") as file: + with open("data/models/simple-scikit-linear.model", "wb") as file: pickle.dump(clf, file) diff --git a/experimental/spsa.py b/catanatron_experimental/catanatron_experimental/spsa.py similarity index 90% rename from experimental/spsa.py rename to catanatron_experimental/catanatron_experimental/spsa.py index d540f027..0d680c3a 100644 --- a/experimental/spsa.py +++ b/catanatron_experimental/catanatron_experimental/spsa.py @@ -3,8 +3,8 @@ import numpy as np from catanatron.models.player import Color -from experimental.machine_learning.players.minimax import ValueFunctionPlayer -from experimental.play import play_batch +from catanatron_experimental.machine_learning.players.minimax import ValueFunctionPlayer +from catanatron_experimental.play import play_batch # for (k=0; k < N; k++) { # ak = a / (k + 1 + A)^alpha; diff --git a/experimental/tensorforce_player.py b/catanatron_experimental/catanatron_experimental/tensorforce_player.py similarity index 100% rename from experimental/tensorforce_player.py rename to catanatron_experimental/catanatron_experimental/tensorforce_player.py diff --git a/experimental/tf-dataset-train.py b/catanatron_experimental/catanatron_experimental/tf-dataset-train.py similarity index 98% rename from experimental/tf-dataset-train.py rename to catanatron_experimental/catanatron_experimental/tf-dataset-train.py index d3562eaf..72b0a443 100644 --- a/experimental/tf-dataset-train.py +++ b/catanatron_experimental/catanatron_experimental/tf-dataset-train.py @@ -2,7 +2,7 @@ import tensorflow as tf -from experimental.machine_learning.board_tensor_features import ( +from catanatron_experimental.machine_learning.board_tensor_features import ( WIDTH, HEIGHT, CHANNELS, diff --git a/experimental/train.py b/catanatron_experimental/catanatron_experimental/train.py similarity index 97% rename from experimental/train.py rename to catanatron_experimental/catanatron_experimental/train.py index aa9d5346..fcad5e35 100644 --- a/experimental/train.py +++ b/catanatron_experimental/catanatron_experimental/train.py @@ -9,12 +9,12 @@ import tensorflow as tf from catanatron_gym.features import get_feature_ordering -from experimental.machine_learning.utils import ( +from catanatron_experimental.machine_learning.utils import ( estimate_num_samples, generate_arrays_from_file, get_games_directory, ) -from experimental.machine_learning.players.reinforcement import ( +from catanatron_experimental.machine_learning.players.reinforcement import ( ACTION_SPACE_SIZE, p_model_path, q_model_path, diff --git a/catanatron_experimental/setup.py b/catanatron_experimental/setup.py new file mode 100644 index 00000000..5c1ddc93 --- /dev/null +++ b/catanatron_experimental/setup.py @@ -0,0 +1,21 @@ +import setuptools + +setuptools.setup( + name="catanatron_experimental", + version="1.0.0", + author="Bryan Collazo", + author_email="bcollazo2010@gmail.com", + description="Experimental scripts", + url="https://github.com/bcollazo/catanatron", + packages=setuptools.find_packages(), + classifiers=[ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + ], + python_requires=">=3.8", + install_requires=[], + entry_points={ + "console_scripts": ["catanatron-play=catanatron_experimental.play:simulate"], + }, +) diff --git a/catanatron_gym/__init__.py b/catanatron_gym/catanatron_gym/__init__.py similarity index 100% rename from catanatron_gym/__init__.py rename to catanatron_gym/catanatron_gym/__init__.py diff --git a/catanatron_gym/envs/__init__.py b/catanatron_gym/catanatron_gym/envs/__init__.py similarity index 100% rename from catanatron_gym/envs/__init__.py rename to catanatron_gym/catanatron_gym/envs/__init__.py diff --git a/catanatron_gym/envs/catanatron_env.py b/catanatron_gym/catanatron_gym/envs/catanatron_env.py similarity index 100% rename from catanatron_gym/envs/catanatron_env.py rename to catanatron_gym/catanatron_gym/envs/catanatron_env.py diff --git a/catanatron_gym/features.py b/catanatron_gym/catanatron_gym/features.py similarity index 100% rename from catanatron_gym/features.py rename to catanatron_gym/catanatron_gym/features.py diff --git a/catanatron_gym/setup.py b/catanatron_gym/setup.py new file mode 100644 index 00000000..6432fb07 --- /dev/null +++ b/catanatron_gym/setup.py @@ -0,0 +1,26 @@ +import setuptools +import os + +readme_path = os.path.abspath(os.path.join(__file__, "..", "README.md")) + +with open(readme_path, "r") as fh: + long_description = fh.read() + +setuptools.setup( + name="catanatron_gym", + version="2.0.0", + author="Bryan Collazo", + author_email="bcollazo2010@gmail.com", + description="Open AI Gym to play 1v1 Catan against a random bot", + long_description=long_description, + long_description_content_type="text/markdown", + url="https://github.com/bcollazo/catanatron", + packages=setuptools.find_packages(exclude=["catanatron_server"]), + classifiers=[ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + ], + python_requires=">=3.8", + install_requires=["catanatron", "gym"], +) diff --git a/catanatron_server/__init__.py b/catanatron_server/catanatron_server/__init__.py similarity index 100% rename from catanatron_server/__init__.py rename to catanatron_server/catanatron_server/__init__.py diff --git a/catanatron_server/api.py b/catanatron_server/catanatron_server/api.py similarity index 94% rename from catanatron_server/api.py rename to catanatron_server/catanatron_server/api.py index 3c941b7f..5ca61e98 100644 --- a/catanatron_server/api.py +++ b/catanatron_server/catanatron_server/api.py @@ -6,7 +6,7 @@ from catanatron.json import GameEncoder, action_from_json from catanatron.models.player import Color, RandomPlayer from catanatron.game import Game -from experimental.machine_learning.players.minimax import ( +from catanatron_experimental.machine_learning.players.minimax import ( AlphaBetaPlayer, ValueFunctionPlayer, ) @@ -94,8 +94,8 @@ def post_action_endpoint(game_id): # if game is None: # abort(404, description="Resource not found") -# # model = tf.keras.models.load_model("experimental/models/mcts-rep-a") -# model2 = tf.keras.models.load_model("experimental/models/mcts-rep-b") +# # model = tf.keras.models.load_model("data/models/mcts-rep-a") +# model2 = tf.keras.models.load_model("data/models/mcts-rep-b") # feature_ordering = get_feature_ordering() # indices = [feature_ordering.index(f) for f in NUMERIC_FEATURES] # data = {} diff --git a/catanatron_server/models.py b/catanatron_server/catanatron_server/models.py similarity index 100% rename from catanatron_server/models.py rename to catanatron_server/catanatron_server/models.py diff --git a/catanatron_server/utils.py b/catanatron_server/catanatron_server/utils.py similarity index 100% rename from catanatron_server/utils.py rename to catanatron_server/catanatron_server/utils.py diff --git a/catanatron_server/wsgi.py b/catanatron_server/catanatron_server/wsgi.py similarity index 100% rename from catanatron_server/wsgi.py rename to catanatron_server/catanatron_server/wsgi.py diff --git a/catanatron_server/setup.py b/catanatron_server/setup.py new file mode 100644 index 00000000..dc6fb35f --- /dev/null +++ b/catanatron_server/setup.py @@ -0,0 +1,24 @@ +import setuptools + +setuptools.setup( + name="catanatron_server", + version="1.0.0", + author="Bryan Collazo", + author_email="bcollazo2010@gmail.com", + description="Server to watch catanatron games", + url="https://github.com/bcollazo/catanatron", + packages=setuptools.find_packages(), + classifiers=[ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + ], + python_requires=">=3.8", + install_requires=[ + "catanatron", + "flask", + "flask_cors", + "flask_sqlalchemy", + "sqlalchemy", + ], +) diff --git a/dev-requirements.txt b/dev-requirements.txt index 5e5c2b02..854ee9e4 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -1,165 +1,111 @@ -absl-py==0.12.0 -alabaster==0.7.12 -anyio==2.2.0 +absl-py==0.13.0 appdirs==1.4.4 -argon2-cffi==20.1.0 astunparse==1.6.3 -async-generator==1.10 -atomicwrites==1.4.0 -attrs==20.3.0 -Babel==2.9.0 -backcall==0.2.0 -bayesian-optimization==1.2.0 -beautifulsoup4==4.9.3 -black==21.6b0 -bleach==3.3.0 -cachetools==4.2.1 --e ./ -certifi==2020.12.5 -cffi==1.14.5 -chardet==4.0.0 -click==7.1.2 +attrs==21.2.0 +black==21.7b0 +bleach==3.3.1 +cachetools==4.2.2 +certifi==2021.5.30 +cffi==1.14.6 +charset-normalizer==2.0.3 +click==8.0.1 cloudpickle==1.6.0 colorama==0.4.4 +coloredlogs==15.0.1 coverage==5.5 -coveralls==3.0.1 +coveralls==3.2.0 +cryptography==3.4.7 cycler==0.10.0 decorator==4.4.2 -defusedxml==0.7.1 docopt==0.6.2 -docutils==0.16 -entrypoints==0.3 -Flask==1.1.2 +docutils==0.17.1 +Flask==2.0.1 Flask-Cors==3.0.10 Flask-SQLAlchemy==2.5.1 flatbuffers==1.12 -future==0.18.2 -gast==0.3.3 -google-auth==1.28.1 +gast==0.4.0 +google-auth==1.33.1 google-auth-oauthlib==0.4.4 google-pasta==0.2.0 -graphviz==0.16 greenlet==1.1.0 -grpcio==1.32.0 +grpcio==1.34.1 gunicorn==20.1.0 -gym==0.18.0 -h5py==2.10.0 -idna==2.10 -imagesize==1.2.0 +gym==0.18.3 +h5py==3.1.0 +humanfriendly==9.2 +idna==3.2 +importlib-metadata==4.6.1 iniconfig==1.1.1 -ipykernel==5.5.3 -ipython==7.22.0 -ipython-genutils==0.2.0 -itsdangerous==1.1.0 -jedi==0.18.0 -Jinja2==2.11.3 +itsdangerous==2.0.1 +jeepney==0.7.0 +Jinja2==3.0.1 joblib==1.0.1 -json5==0.9.5 -jsonschema==3.2.0 -jupyter-client==6.1.12 -jupyter-core==4.7.1 -jupyter-packaging==0.7.12 -jupyter-server==1.6.0 -jupyterlab==3.0.13 -jupyterlab-pygments==0.1.2 -jupyterlab-server==2.4.0 +keras-nightly==2.5.0.dev2021032900 Keras-Preprocessing==1.1.2 +keyring==23.0.1 kiwisolver==1.3.1 -m2r2==0.2.8 Markdown==3.3.4 -markdown-it-py==1.1.0 -MarkupSafe==1.1.1 -matplotlib==3.4.1 -mdit-py-plugins==0.2.8 -mistune==0.8.4 +MarkupSafe==2.0.1 +matplotlib==3.4.2 msgpack==1.0.2 msgpack-numpy==0.4.7.1 mypy-extensions==0.4.3 -myst-parser==0.15.1 -nbclassic==0.2.7 -nbclient==0.5.3 -nbconvert==6.0.7 -nbformat==5.1.3 -nest-asyncio==1.5.1 networkx==2.5.1 -notebook==6.3.0 numpy==1.19.5 -oauthlib==3.1.0 +oauthlib==3.1.1 opt-einsum==3.3.0 -packaging==20.9 -pandas==1.2.3 -pandocfilters==1.4.3 -parso==0.8.2 -pathspec==0.8.1 -pexpect==4.8.0 -pickleshare==0.7.5 -Pillow==7.2.0 +packaging==21.0 +pandas==1.3.1 +pathspec==0.9.0 +Pillow==8.2.0 +pkginfo==1.7.1 pluggy==0.13.1 -prometheus-client==0.10.1 -prompt-toolkit==3.0.18 -protobuf==3.15.8 -psycopg2-binary==2.8.6 -ptyprocess==0.7.0 +protobuf==3.17.3 py==1.10.0 -py-cpuinfo==7.0.0 +py-cpuinfo==8.0.0 pyasn1==0.4.8 pyasn1-modules==0.2.8 pycparser==2.20 -pydata-sphinx-theme==0.6.3 -pyglet==1.5.0 -Pygments==2.8.1 +pyglet==1.5.15 +Pygments==2.9.0 pyparsing==2.4.7 -pyrsistent==0.17.3 -pytest==6.2.3 -pytest-benchmark==3.2.3 -pytest-watch==4.2.0 -python-dateutil==2.8.1 -python-dotenv==0.17.0 +pytest==6.2.4 +pytest-benchmark==3.4.1 +python-dateutil==2.8.2 +python-dotenv==0.19.0 pytz==2021.1 -PyYAML==5.4.1 -pyzmq==22.0.3 -regex==2021.4.4 -requests==2.25.1 +readme-renderer==29.0 +regex==2021.7.6 +requests==2.26.0 requests-oauthlib==1.3.0 +requests-toolbelt==0.9.1 +rfc3986==1.5.0 rsa==4.7.2 -rstcheck==3.3.1 -scikit-learn==0.24.1 -scipy==1.6.2 -seaborn==0.11.1 +scikit-learn==0.24.2 +scipy==1.7.0 +SecretStorage==3.3.1 selenium==3.141.0 -Send2Trash==1.5.0 six==1.15.0 +sklearn==0.0 snakeviz==2.1.0 -sniffio==1.2.0 -snowballstemmer==2.1.0 -soupsieve==2.2.1 -Sphinx==4.0.2 -sphinxcontrib-applehelp==1.0.2 -sphinxcontrib-devhelp==1.0.2 -sphinxcontrib-htmlhelp==2.0.0 -sphinxcontrib-jsmath==1.0.1 -sphinxcontrib-qthelp==1.0.3 -sphinxcontrib-serializinghtml==1.1.5 -SQLAlchemy==1.4.15 -tensorboard==2.4.1 +SQLAlchemy==1.4.22 +tensorboard==2.5.0 +tensorboard-data-server==0.6.1 tensorboard-plugin-wit==1.8.0 -tensorflow==2.4.1 -tensorflow-estimator==2.4.0 -Tensorforce==0.6.3 +tensorflow==2.5.0 +tensorflow-estimator==2.5.0 +Tensorforce==0.6.4 termcolor==1.1.0 -terminado==0.9.4 -termplotlib==0.3.4 -testpath==0.4.4 -threadpoolctl==2.1.0 +termplotlib==0.3.8 +threadpoolctl==2.2.0 toml==0.10.2 +tomli==1.1.0 tornado==6.1 -tqdm==4.60.0 -traitlets==5.0.5 -typed-ast==1.4.2 +tqdm==4.61.2 +twine==3.4.2 typing-extensions==3.7.4.3 -urllib3==1.26.4 -watchdog==2.0.2 -wcwidth==0.2.5 +urllib3==1.26.6 webencodings==0.5.1 -Werkzeug==1.0.1 +Werkzeug==2.0.1 wrapt==1.12.1 +zipp==3.5.0 diff --git a/RESULTS_LOG.md b/docs/RESULTS_LOG.md similarity index 100% rename from RESULTS_LOG.md rename to docs/RESULTS_LOG.md diff --git a/experimental/models/1v1-rep-a-randomly-lucky/saved_model.pb b/experimental/models/1v1-rep-a-randomly-lucky/saved_model.pb deleted file mode 100644 index 1ffddfd9..00000000 Binary files a/experimental/models/1v1-rep-a-randomly-lucky/saved_model.pb and /dev/null differ diff --git a/experimental/models/1v1-rep-a-randomly-lucky/variables/variables.data-00000-of-00001 b/experimental/models/1v1-rep-a-randomly-lucky/variables/variables.data-00000-of-00001 deleted file mode 100644 index 93b3c254..00000000 Binary files a/experimental/models/1v1-rep-a-randomly-lucky/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/1v1-rep-a-randomly-lucky/variables/variables.index b/experimental/models/1v1-rep-a-randomly-lucky/variables/variables.index deleted file mode 100644 index 21d0012d..00000000 Binary files a/experimental/models/1v1-rep-a-randomly-lucky/variables/variables.index and /dev/null differ diff --git a/experimental/models/1v1-rep-a/saved_model.pb b/experimental/models/1v1-rep-a/saved_model.pb deleted file mode 100644 index 4d123963..00000000 Binary files a/experimental/models/1v1-rep-a/saved_model.pb and /dev/null differ diff --git a/experimental/models/1v1-rep-a/variables/variables.data-00000-of-00001 b/experimental/models/1v1-rep-a/variables/variables.data-00000-of-00001 deleted file mode 100644 index 24627696..00000000 Binary files a/experimental/models/1v1-rep-a/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/1v1-rep-a/variables/variables.index b/experimental/models/1v1-rep-a/variables/variables.index deleted file mode 100644 index d9ea5186..00000000 Binary files a/experimental/models/1v1-rep-a/variables/variables.index and /dev/null differ diff --git a/experimental/models/1v1-repa-decent/saved_model.pb b/experimental/models/1v1-repa-decent/saved_model.pb deleted file mode 100644 index 92ab130c..00000000 Binary files a/experimental/models/1v1-repa-decent/saved_model.pb and /dev/null differ diff --git a/experimental/models/1v1-repa-decent/variables/variables.data-00000-of-00001 b/experimental/models/1v1-repa-decent/variables/variables.data-00000-of-00001 deleted file mode 100644 index 0af60ddb..00000000 Binary files a/experimental/models/1v1-repa-decent/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/1v1-repa-decent/variables/variables.index b/experimental/models/1v1-repa-decent/variables/variables.index deleted file mode 100644 index d4b70175..00000000 Binary files a/experimental/models/1v1-repa-decent/variables/variables.index and /dev/null differ diff --git a/experimental/models/ak-big-vptenth/saved_model.pb b/experimental/models/ak-big-vptenth/saved_model.pb deleted file mode 100644 index 7a56ee0e..00000000 Binary files a/experimental/models/ak-big-vptenth/saved_model.pb and /dev/null differ diff --git a/experimental/models/ak-big-vptenth/variables/variables.data-00000-of-00001 b/experimental/models/ak-big-vptenth/variables/variables.data-00000-of-00001 deleted file mode 100644 index 2ec07821..00000000 Binary files a/experimental/models/ak-big-vptenth/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/ak-big-vptenth/variables/variables.index b/experimental/models/ak-big-vptenth/variables/variables.index deleted file mode 100644 index f7148bdd..00000000 Binary files a/experimental/models/ak-big-vptenth/variables/variables.index and /dev/null differ diff --git a/experimental/models/alphatan/saved_model.pb b/experimental/models/alphatan/saved_model.pb deleted file mode 100644 index ba9c2b33..00000000 Binary files a/experimental/models/alphatan/saved_model.pb and /dev/null differ diff --git a/experimental/models/alphatan/variables/variables.data-00000-of-00001 b/experimental/models/alphatan/variables/variables.data-00000-of-00001 deleted file mode 100644 index 87b65d18..00000000 Binary files a/experimental/models/alphatan/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/alphatan/variables/variables.index b/experimental/models/alphatan/variables/variables.index deleted file mode 100644 index 1be21766..00000000 Binary files a/experimental/models/alphatan/variables/variables.index and /dev/null differ diff --git a/experimental/models/batch128-train1ep-update5ep-1620512332/saved_model.pb b/experimental/models/batch128-train1ep-update5ep-1620512332/saved_model.pb deleted file mode 100644 index 340d18b4..00000000 Binary files a/experimental/models/batch128-train1ep-update5ep-1620512332/saved_model.pb and /dev/null differ diff --git a/experimental/models/batch128-train1ep-update5ep-1620512332/variables/variables.data-00000-of-00001 b/experimental/models/batch128-train1ep-update5ep-1620512332/variables/variables.data-00000-of-00001 deleted file mode 100644 index 7801f989..00000000 Binary files a/experimental/models/batch128-train1ep-update5ep-1620512332/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/batch128-train1ep-update5ep-1620512332/variables/variables.index b/experimental/models/batch128-train1ep-update5ep-1620512332/variables/variables.index deleted file mode 100644 index d4afab1e..00000000 Binary files a/experimental/models/batch128-train1ep-update5ep-1620512332/variables/variables.index and /dev/null differ diff --git a/experimental/models/batch128-train1ep-update5ep-20000eps-1620517062/saved_model.pb b/experimental/models/batch128-train1ep-update5ep-20000eps-1620517062/saved_model.pb deleted file mode 100644 index 16da1924..00000000 Binary files a/experimental/models/batch128-train1ep-update5ep-20000eps-1620517062/saved_model.pb and /dev/null differ diff --git a/experimental/models/batch128-train1ep-update5ep-20000eps-1620517062/variables/variables.data-00000-of-00001 b/experimental/models/batch128-train1ep-update5ep-20000eps-1620517062/variables/variables.data-00000-of-00001 deleted file mode 100644 index fe5809ef..00000000 Binary files a/experimental/models/batch128-train1ep-update5ep-20000eps-1620517062/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/batch128-train1ep-update5ep-20000eps-1620517062/variables/variables.index b/experimental/models/batch128-train1ep-update5ep-20000eps-1620517062/variables/variables.index deleted file mode 100644 index 8f9e77fb..00000000 Binary files a/experimental/models/batch128-train1ep-update5ep-20000eps-1620517062/variables/variables.index and /dev/null differ diff --git a/experimental/models/batch16k-every100ep-update10-1620496881/saved_model.pb b/experimental/models/batch16k-every100ep-update10-1620496881/saved_model.pb deleted file mode 100644 index e6a84f94..00000000 Binary files a/experimental/models/batch16k-every100ep-update10-1620496881/saved_model.pb and /dev/null differ diff --git a/experimental/models/batch16k-every100ep-update10-1620496881/variables/variables.data-00000-of-00001 b/experimental/models/batch16k-every100ep-update10-1620496881/variables/variables.data-00000-of-00001 deleted file mode 100644 index 62e1b516..00000000 Binary files a/experimental/models/batch16k-every100ep-update10-1620496881/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/batch16k-every100ep-update10-1620496881/variables/variables.index b/experimental/models/batch16k-every100ep-update10-1620496881/variables/variables.index deleted file mode 100644 index 915b9097..00000000 Binary files a/experimental/models/batch16k-every100ep-update10-1620496881/variables/variables.index and /dev/null differ diff --git a/experimental/models/batch1k-every100ep-update1-1620502444/saved_model.pb b/experimental/models/batch1k-every100ep-update1-1620502444/saved_model.pb deleted file mode 100644 index f2cf75ba..00000000 Binary files a/experimental/models/batch1k-every100ep-update1-1620502444/saved_model.pb and /dev/null differ diff --git a/experimental/models/batch1k-every100ep-update1-1620502444/variables/variables.data-00000-of-00001 b/experimental/models/batch1k-every100ep-update1-1620502444/variables/variables.data-00000-of-00001 deleted file mode 100644 index ba39bc7a..00000000 Binary files a/experimental/models/batch1k-every100ep-update1-1620502444/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/batch1k-every100ep-update1-1620502444/variables/variables.index b/experimental/models/batch1k-every100ep-update1-1620502444/variables/variables.index deleted file mode 100644 index 6af7f43b..00000000 Binary files a/experimental/models/batch1k-every100ep-update1-1620502444/variables/variables.index and /dev/null differ diff --git a/experimental/models/board-tensor-model-dr/saved_model.pb b/experimental/models/board-tensor-model-dr/saved_model.pb deleted file mode 100644 index e9cdbab8..00000000 Binary files a/experimental/models/board-tensor-model-dr/saved_model.pb and /dev/null differ diff --git a/experimental/models/board-tensor-model-dr/variables/variables.data-00000-of-00001 b/experimental/models/board-tensor-model-dr/variables/variables.data-00000-of-00001 deleted file mode 100644 index a824783f..00000000 Binary files a/experimental/models/board-tensor-model-dr/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/board-tensor-model-dr/variables/variables.index b/experimental/models/board-tensor-model-dr/variables/variables.index deleted file mode 100644 index c31b077b..00000000 Binary files a/experimental/models/board-tensor-model-dr/variables/variables.index and /dev/null differ diff --git a/experimental/models/board-tensor-model-n1/saved_model.pb b/experimental/models/board-tensor-model-n1/saved_model.pb deleted file mode 100644 index ddf1f2b2..00000000 Binary files a/experimental/models/board-tensor-model-n1/saved_model.pb and /dev/null differ diff --git a/experimental/models/board-tensor-model-n1/variables/variables.data-00000-of-00001 b/experimental/models/board-tensor-model-n1/variables/variables.data-00000-of-00001 deleted file mode 100644 index 07dbe58f..00000000 Binary files a/experimental/models/board-tensor-model-n1/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/board-tensor-model-n1/variables/variables.index b/experimental/models/board-tensor-model-n1/variables/variables.index deleted file mode 100644 index 87071202..00000000 Binary files a/experimental/models/board-tensor-model-n1/variables/variables.index and /dev/null differ diff --git a/experimental/models/dqn.model/saved_model.pb b/experimental/models/dqn.model/saved_model.pb deleted file mode 100644 index f96d6278..00000000 Binary files a/experimental/models/dqn.model/saved_model.pb and /dev/null differ diff --git a/experimental/models/dqn.model/variables/variables.data-00000-of-00001 b/experimental/models/dqn.model/variables/variables.data-00000-of-00001 deleted file mode 100644 index 246e1c9a..00000000 Binary files a/experimental/models/dqn.model/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/dqn.model/variables/variables.index b/experimental/models/dqn.model/variables/variables.index deleted file mode 100644 index 56cff9c1..00000000 Binary files a/experimental/models/dqn.model/variables/variables.index and /dev/null differ diff --git a/experimental/models/dreturn-rep-a/saved_model.pb b/experimental/models/dreturn-rep-a/saved_model.pb deleted file mode 100644 index ce021cd2..00000000 Binary files a/experimental/models/dreturn-rep-a/saved_model.pb and /dev/null differ diff --git a/experimental/models/dreturn-rep-a/variables/variables.data-00000-of-00001 b/experimental/models/dreturn-rep-a/variables/variables.data-00000-of-00001 deleted file mode 100644 index d004ce18..00000000 Binary files a/experimental/models/dreturn-rep-a/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/dreturn-rep-a/variables/variables.index b/experimental/models/dreturn-rep-a/variables/variables.index deleted file mode 100644 index b5beb074..00000000 Binary files a/experimental/models/dreturn-rep-a/variables/variables.index and /dev/null differ diff --git a/experimental/models/dreturn-rep-b/saved_model.pb b/experimental/models/dreturn-rep-b/saved_model.pb deleted file mode 100644 index b608e39c..00000000 Binary files a/experimental/models/dreturn-rep-b/saved_model.pb and /dev/null differ diff --git a/experimental/models/dreturn-rep-b/variables/variables.data-00000-of-00001 b/experimental/models/dreturn-rep-b/variables/variables.data-00000-of-00001 deleted file mode 100644 index 7f6b0d70..00000000 Binary files a/experimental/models/dreturn-rep-b/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/dreturn-rep-b/variables/variables.index b/experimental/models/dreturn-rep-b/variables/variables.index deleted file mode 100644 index d889e9df..00000000 Binary files a/experimental/models/dreturn-rep-b/variables/variables.index and /dev/null differ diff --git a/experimental/models/good-dvp-rep-b/saved_model.pb b/experimental/models/good-dvp-rep-b/saved_model.pb deleted file mode 100644 index 309e94f0..00000000 Binary files a/experimental/models/good-dvp-rep-b/saved_model.pb and /dev/null differ diff --git a/experimental/models/good-dvp-rep-b/variables/variables.data-00000-of-00001 b/experimental/models/good-dvp-rep-b/variables/variables.data-00000-of-00001 deleted file mode 100644 index 2e13fc72..00000000 Binary files a/experimental/models/good-dvp-rep-b/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/good-dvp-rep-b/variables/variables.index b/experimental/models/good-dvp-rep-b/variables/variables.index deleted file mode 100644 index 2bb04eeb..00000000 Binary files a/experimental/models/good-dvp-rep-b/variables/variables.index and /dev/null differ diff --git a/experimental/models/mcts-rep-a/saved_model.pb b/experimental/models/mcts-rep-a/saved_model.pb deleted file mode 100644 index 6f966e50..00000000 Binary files a/experimental/models/mcts-rep-a/saved_model.pb and /dev/null differ diff --git a/experimental/models/mcts-rep-a/variables/variables.data-00000-of-00001 b/experimental/models/mcts-rep-a/variables/variables.data-00000-of-00001 deleted file mode 100644 index 50908296..00000000 Binary files a/experimental/models/mcts-rep-a/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/mcts-rep-a/variables/variables.index b/experimental/models/mcts-rep-a/variables/variables.index deleted file mode 100644 index 37a48752..00000000 Binary files a/experimental/models/mcts-rep-a/variables/variables.index and /dev/null differ diff --git a/experimental/models/mcts-rep-b/saved_model.pb b/experimental/models/mcts-rep-b/saved_model.pb deleted file mode 100644 index 309e94f0..00000000 Binary files a/experimental/models/mcts-rep-b/saved_model.pb and /dev/null differ diff --git a/experimental/models/mcts-rep-b/variables/variables.data-00000-of-00001 b/experimental/models/mcts-rep-b/variables/variables.data-00000-of-00001 deleted file mode 100644 index 2e13fc72..00000000 Binary files a/experimental/models/mcts-rep-b/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/mcts-rep-b/variables/variables.index b/experimental/models/mcts-rep-b/variables/variables.index deleted file mode 100644 index 2bb04eeb..00000000 Binary files a/experimental/models/mcts-rep-b/variables/variables.index and /dev/null differ diff --git a/experimental/models/online-mcts-dqn-2/saved_model.pb b/experimental/models/online-mcts-dqn-2/saved_model.pb deleted file mode 100644 index 8ffe0ff5..00000000 Binary files a/experimental/models/online-mcts-dqn-2/saved_model.pb and /dev/null differ diff --git a/experimental/models/online-mcts-dqn-2/variables/variables.data-00000-of-00001 b/experimental/models/online-mcts-dqn-2/variables/variables.data-00000-of-00001 deleted file mode 100644 index dca396fa..00000000 Binary files a/experimental/models/online-mcts-dqn-2/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/online-mcts-dqn-2/variables/variables.index b/experimental/models/online-mcts-dqn-2/variables/variables.index deleted file mode 100644 index 46cd533b..00000000 Binary files a/experimental/models/online-mcts-dqn-2/variables/variables.index and /dev/null differ diff --git a/experimental/models/online-mcts-dqn.backup/saved_model.pb b/experimental/models/online-mcts-dqn.backup/saved_model.pb deleted file mode 100644 index 9926f89b..00000000 Binary files a/experimental/models/online-mcts-dqn.backup/saved_model.pb and /dev/null differ diff --git a/experimental/models/online-mcts-dqn.backup/variables/variables.data-00000-of-00001 b/experimental/models/online-mcts-dqn.backup/variables/variables.data-00000-of-00001 deleted file mode 100644 index b5cbfcfc..00000000 Binary files a/experimental/models/online-mcts-dqn.backup/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/online-mcts-dqn.backup/variables/variables.index b/experimental/models/online-mcts-dqn.backup/variables/variables.index deleted file mode 100644 index 53d09ba7..00000000 Binary files a/experimental/models/online-mcts-dqn.backup/variables/variables.index and /dev/null differ diff --git a/experimental/models/online-mcts-dqn.week-trained.1/saved_model.pb b/experimental/models/online-mcts-dqn.week-trained.1/saved_model.pb deleted file mode 100644 index e6be52dd..00000000 Binary files a/experimental/models/online-mcts-dqn.week-trained.1/saved_model.pb and /dev/null differ diff --git a/experimental/models/online-mcts-dqn.week-trained.1/variables/variables.data-00000-of-00001 b/experimental/models/online-mcts-dqn.week-trained.1/variables/variables.data-00000-of-00001 deleted file mode 100644 index ffb99aaf..00000000 Binary files a/experimental/models/online-mcts-dqn.week-trained.1/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/online-mcts-dqn.week-trained.1/variables/variables.index b/experimental/models/online-mcts-dqn.week-trained.1/variables/variables.index deleted file mode 100644 index 1794e784..00000000 Binary files a/experimental/models/online-mcts-dqn.week-trained.1/variables/variables.index and /dev/null differ diff --git a/experimental/models/online-mcts-dqn/saved_model.pb b/experimental/models/online-mcts-dqn/saved_model.pb deleted file mode 100644 index e6be52dd..00000000 Binary files a/experimental/models/online-mcts-dqn/saved_model.pb and /dev/null differ diff --git a/experimental/models/online-mcts-dqn/variables/variables.data-00000-of-00001 b/experimental/models/online-mcts-dqn/variables/variables.data-00000-of-00001 deleted file mode 100644 index ffb99aaf..00000000 Binary files a/experimental/models/online-mcts-dqn/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/online-mcts-dqn/variables/variables.index b/experimental/models/online-mcts-dqn/variables/variables.index deleted file mode 100644 index 1794e784..00000000 Binary files a/experimental/models/online-mcts-dqn/variables/variables.index and /dev/null differ diff --git a/experimental/models/raw-2hours-1620496101/saved_model.pb b/experimental/models/raw-2hours-1620496101/saved_model.pb deleted file mode 100644 index 408072b3..00000000 Binary files a/experimental/models/raw-2hours-1620496101/saved_model.pb and /dev/null differ diff --git a/experimental/models/raw-2hours-1620496101/variables/variables.data-00000-of-00001 b/experimental/models/raw-2hours-1620496101/variables/variables.data-00000-of-00001 deleted file mode 100644 index 9aac6359..00000000 Binary files a/experimental/models/raw-2hours-1620496101/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/raw-2hours-1620496101/variables/variables.index b/experimental/models/raw-2hours-1620496101/variables/variables.index deleted file mode 100644 index ba524924..00000000 Binary files a/experimental/models/raw-2hours-1620496101/variables/variables.index and /dev/null differ diff --git a/experimental/models/simple-scikit-500.model b/experimental/models/simple-scikit-500.model deleted file mode 100644 index 892a4994..00000000 Binary files a/experimental/models/simple-scikit-500.model and /dev/null differ diff --git a/experimental/models/simple-scikit-expansions.model b/experimental/models/simple-scikit-expansions.model deleted file mode 100644 index c20d35a2..00000000 Binary files a/experimental/models/simple-scikit-expansions.model and /dev/null differ diff --git a/experimental/models/simple-scikit-linear.model b/experimental/models/simple-scikit-linear.model deleted file mode 100644 index cc2137ac..00000000 Binary files a/experimental/models/simple-scikit-linear.model and /dev/null differ diff --git a/experimental/models/simple-scikit.model b/experimental/models/simple-scikit.model deleted file mode 100644 index 7ac178e8..00000000 Binary files a/experimental/models/simple-scikit.model and /dev/null differ diff --git a/experimental/models/tensor-model-normalized.png b/experimental/models/tensor-model-normalized.png deleted file mode 100644 index b88d779a..00000000 Binary files a/experimental/models/tensor-model-normalized.png and /dev/null differ diff --git a/experimental/models/tensor-model-normalized/saved_model.pb b/experimental/models/tensor-model-normalized/saved_model.pb deleted file mode 100644 index 62ad2078..00000000 Binary files a/experimental/models/tensor-model-normalized/saved_model.pb and /dev/null differ diff --git a/experimental/models/tensor-model-normalized/variables/variables.data-00000-of-00001 b/experimental/models/tensor-model-normalized/variables/variables.data-00000-of-00001 deleted file mode 100644 index 04b85053..00000000 Binary files a/experimental/models/tensor-model-normalized/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/tensor-model-normalized/variables/variables.index b/experimental/models/tensor-model-normalized/variables/variables.index deleted file mode 100644 index e6eec31b..00000000 Binary files a/experimental/models/tensor-model-normalized/variables/variables.index and /dev/null differ diff --git a/experimental/models/vp-big-256-64/saved_model.pb b/experimental/models/vp-big-256-64/saved_model.pb deleted file mode 100644 index af467fad..00000000 Binary files a/experimental/models/vp-big-256-64/saved_model.pb and /dev/null differ diff --git a/experimental/models/vp-big-256-64/variables/variables.data-00000-of-00001 b/experimental/models/vp-big-256-64/variables/variables.data-00000-of-00001 deleted file mode 100644 index 150a32e0..00000000 Binary files a/experimental/models/vp-big-256-64/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/vp-big-256-64/variables/variables.index b/experimental/models/vp-big-256-64/variables/variables.index deleted file mode 100644 index 6983bdec..00000000 Binary files a/experimental/models/vp-big-256-64/variables/variables.index and /dev/null differ diff --git a/experimental/models/vp-v1-games/saved_model.pb b/experimental/models/vp-v1-games/saved_model.pb deleted file mode 100644 index 7fd2d9d5..00000000 Binary files a/experimental/models/vp-v1-games/saved_model.pb and /dev/null differ diff --git a/experimental/models/vp-v1-games/variables/variables.data-00000-of-00001 b/experimental/models/vp-v1-games/variables/variables.data-00000-of-00001 deleted file mode 100644 index 390918fb..00000000 Binary files a/experimental/models/vp-v1-games/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/vp-v1-games/variables/variables.index b/experimental/models/vp-v1-games/variables/variables.index deleted file mode 100644 index bddd66dd..00000000 Binary files a/experimental/models/vp-v1-games/variables/variables.index and /dev/null differ diff --git a/experimental/models/vptenth-deeper-2e/saved_model.pb b/experimental/models/vptenth-deeper-2e/saved_model.pb deleted file mode 100644 index 91b1299c..00000000 Binary files a/experimental/models/vptenth-deeper-2e/saved_model.pb and /dev/null differ diff --git a/experimental/models/vptenth-deeper-2e/variables/variables.data-00000-of-00001 b/experimental/models/vptenth-deeper-2e/variables/variables.data-00000-of-00001 deleted file mode 100644 index b313324a..00000000 Binary files a/experimental/models/vptenth-deeper-2e/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/experimental/models/vptenth-deeper-2e/variables/variables.index b/experimental/models/vptenth-deeper-2e/variables/variables.index deleted file mode 100644 index a811af1e..00000000 Binary files a/experimental/models/vptenth-deeper-2e/variables/variables.index and /dev/null differ diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 52ba4d12..00000000 --- a/pyproject.toml +++ /dev/null @@ -1,6 +0,0 @@ -[build-system] -requires = ["setuptools", "wheel"] -build-backend = "setuptools.build_meta:__legacy__" - -[tool.ipdb] -context=5 diff --git a/requirements.txt b/requirements.txt index 2e6ff641..3abafdbe 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,17 +1,16 @@ --e ./ -click==7.1.2 +-e catanatron_core +-e catanatron_server +click==8.0.1 decorator==4.4.2 -Flask==1.1.2 +Flask==2.0.1 Flask-Cors==3.0.10 Flask-SQLAlchemy==2.5.1 -greenlet==1.0.0 +greenlet==1.1.0 gunicorn==20.1.0 -itsdangerous==1.1.0 -Jinja2==2.11.3 -MarkupSafe==1.1.1 +itsdangerous==2.0.1 +Jinja2==3.0.1 +MarkupSafe==2.0.1 networkx==2.5.1 -psycopg2-binary==2.8.6 -python-dotenv==0.17.0 -six==1.15.0 -SQLAlchemy==1.4.12 -Werkzeug==1.0.1 +six==1.16.0 +SQLAlchemy==1.4.22 +Werkzeug==2.0.1 diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_machine_learning.py b/tests/test_machine_learning.py index f45420b8..a3a56259 100644 --- a/tests/test_machine_learning.py +++ b/tests/test_machine_learning.py @@ -21,7 +21,7 @@ tile_features, graph_features, ) -from experimental.machine_learning.board_tensor_features import ( +from catanatron_experimental.machine_learning.board_tensor_features import ( create_board_tensor, get_node_and_edge_maps, init_board_tensor_map,