mirror of
https://github.com/gryf/coach.git
synced 2025-12-17 19:20:19 +01:00
Require Python 3.6 + Changes to CI configuration (#452)
* Change build_*_env jobs to pull base image of current "tag" instead of "master" image * Change nightly flow so build_*_env jobs now gated by build_base (so change in previous bullet works in nightly) * Bugfix in CheckpointDataStore: Call to object.__init__ with parameters * Disabling unstable Doom A3C and ACER golden tests
This commit is contained in:
@@ -75,9 +75,9 @@ jobs:
|
|||||||
command: |
|
command: |
|
||||||
REGISTRY=316971102342.dkr.ecr.us-west-2.amazonaws.com
|
REGISTRY=316971102342.dkr.ecr.us-west-2.amazonaws.com
|
||||||
TAG=$(git describe --tags --always --dirty)
|
TAG=$(git describe --tags --always --dirty)
|
||||||
docker pull ${REGISTRY}/coach-base:${MASTER_BRANCH}
|
docker pull ${REGISTRY}/coach-base:${TAG}
|
||||||
docker tag ${REGISTRY}/coach-base:${MASTER_BRANCH} coach-base:master
|
docker tag ${REGISTRY}/coach-base:${TAG} coach-base:master
|
||||||
docker build --cache-from ${REGISTRY}/coach-base:${MASTER_BRANCH} -t ${REGISTRY}/coach-gym_environment:${TAG} -f docker/Dockerfile.gym_environment .
|
docker build --cache-from ${REGISTRY}/coach-base:${TAG} -t ${REGISTRY}/coach-gym_environment:${TAG} -f docker/Dockerfile.gym_environment .
|
||||||
docker push ${REGISTRY}/coach-gym_environment:${TAG}
|
docker push ${REGISTRY}/coach-gym_environment:${TAG}
|
||||||
no_output_timeout: 10m
|
no_output_timeout: 10m
|
||||||
|
|
||||||
@@ -93,9 +93,9 @@ jobs:
|
|||||||
command: |
|
command: |
|
||||||
REGISTRY=316971102342.dkr.ecr.us-west-2.amazonaws.com
|
REGISTRY=316971102342.dkr.ecr.us-west-2.amazonaws.com
|
||||||
TAG=$(git describe --tags --always --dirty)
|
TAG=$(git describe --tags --always --dirty)
|
||||||
docker pull ${REGISTRY}/coach-base:${MASTER_BRANCH}
|
docker pull ${REGISTRY}/coach-base:${TAG}
|
||||||
docker tag ${REGISTRY}/coach-base:${MASTER_BRANCH} coach-base:master
|
docker tag ${REGISTRY}/coach-base:${TAG} coach-base:master
|
||||||
docker build --cache-from ${REGISTRY}/coach-base:${MASTER_BRANCH} -t ${REGISTRY}/coach-doom_environment:${TAG} -f docker/Dockerfile.doom_environment .
|
docker build --cache-from ${REGISTRY}/coach-base:${TAG} -t ${REGISTRY}/coach-doom_environment:${TAG} -f docker/Dockerfile.doom_environment .
|
||||||
docker push ${REGISTRY}/coach-doom_environment:${TAG}
|
docker push ${REGISTRY}/coach-doom_environment:${TAG}
|
||||||
no_output_timeout: 10m
|
no_output_timeout: 10m
|
||||||
|
|
||||||
@@ -111,9 +111,9 @@ jobs:
|
|||||||
command: |
|
command: |
|
||||||
REGISTRY=316971102342.dkr.ecr.us-west-2.amazonaws.com
|
REGISTRY=316971102342.dkr.ecr.us-west-2.amazonaws.com
|
||||||
TAG=$(git describe --tags --always --dirty)
|
TAG=$(git describe --tags --always --dirty)
|
||||||
docker pull ${REGISTRY}/coach-base:${MASTER_BRANCH}
|
docker pull ${REGISTRY}/coach-base:${TAG}
|
||||||
docker tag ${REGISTRY}/coach-base:${MASTER_BRANCH} coach-base:master
|
docker tag ${REGISTRY}/coach-base:${TAG} coach-base:master
|
||||||
docker build --cache-from ${REGISTRY}/coach-base:${MASTER_BRANCH} --build-arg MUJOCO_KEY=${MUJOCO_KEY} -t ${REGISTRY}/coach-mujoco_environment:${TAG} -f docker/Dockerfile.mujoco_environment .
|
docker build --cache-from ${REGISTRY}/coach-base:${TAG} --build-arg MUJOCO_KEY=${MUJOCO_KEY} -t ${REGISTRY}/coach-mujoco_environment:${TAG} -f docker/Dockerfile.mujoco_environment .
|
||||||
docker push ${REGISTRY}/coach-mujoco_environment:${TAG}
|
docker push ${REGISTRY}/coach-mujoco_environment:${TAG}
|
||||||
no_output_timeout: 10m
|
no_output_timeout: 10m
|
||||||
|
|
||||||
@@ -130,9 +130,9 @@ jobs:
|
|||||||
# command: |
|
# command: |
|
||||||
# REGISTRY=316971102342.dkr.ecr.us-west-2.amazonaws.com
|
# REGISTRY=316971102342.dkr.ecr.us-west-2.amazonaws.com
|
||||||
# TAG=$(git describe --tags --always --dirty)
|
# TAG=$(git describe --tags --always --dirty)
|
||||||
# docker pull ${REGISTRY}/coach-base:${MASTER_BRANCH}
|
# docker pull ${REGISTRY}/coach-base:${TAG}
|
||||||
# docker tag ${REGISTRY}/coach-base:${MASTER_BRANCH} coach-base:master
|
# docker tag ${REGISTRY}/coach-base:${TAG} coach-base:master
|
||||||
# docker build --cache-from ${REGISTRY}/coach-base:${MASTER_BRANCH} -t ${REGISTRY}/coach-starcraft_environment:${TAG} -f docker/Dockerfile.starcraft_environment .
|
# docker build --cache-from ${REGISTRY}/coach-base:${TAG} -t ${REGISTRY}/coach-starcraft_environment:${TAG} -f docker/Dockerfile.starcraft_environment .
|
||||||
# docker push ${REGISTRY}/coach-starcraft_environment:${TAG}
|
# docker push ${REGISTRY}/coach-starcraft_environment:${TAG}
|
||||||
# no_output_timeout: 10m
|
# no_output_timeout: 10m
|
||||||
|
|
||||||
@@ -614,6 +614,9 @@ workflows:
|
|||||||
- multinode_test:
|
- multinode_test:
|
||||||
requires:
|
requires:
|
||||||
- multinode_approval
|
- multinode_approval
|
||||||
|
# NOTE: build_gym/doom/mujoco_env MUST occur after successful build_base stage
|
||||||
|
# In this workflow this is satisfied by having this flow:
|
||||||
|
# build_base --> e2e_approval --> build_*_env
|
||||||
- e2e_approval:
|
- e2e_approval:
|
||||||
type: approval
|
type: approval
|
||||||
requires:
|
requires:
|
||||||
@@ -718,10 +721,17 @@ workflows:
|
|||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
jobs:
|
jobs:
|
||||||
- build_gym_env
|
|
||||||
- build_doom_env
|
|
||||||
- build_mujoco_env
|
|
||||||
- build_base
|
- build_base
|
||||||
|
# NOTE: build_gym/doom/mujoco_env MUST occur after successful build_base stage
|
||||||
|
- build_gym_env:
|
||||||
|
requires:
|
||||||
|
- build_base
|
||||||
|
- build_doom_env:
|
||||||
|
requires:
|
||||||
|
- build_base
|
||||||
|
- build_mujoco_env:
|
||||||
|
requires:
|
||||||
|
- build_base
|
||||||
- unit_tests:
|
- unit_tests:
|
||||||
requires:
|
requires:
|
||||||
- build_base
|
- build_base
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ FROM coach-base:master as builder
|
|||||||
|
|
||||||
# prep some of the more common environments
|
# prep some of the more common environments
|
||||||
# Gym (installed with coach)
|
# Gym (installed with coach)
|
||||||
Run pip3 install gym[atari]==0.12.5 box2d
|
RUN pip3 install gym[atari]==0.12.5 box2d
|
||||||
# Mujoco
|
# Mujoco
|
||||||
RUN mkdir -p ~/.mujoco \
|
RUN mkdir -p ~/.mujoco \
|
||||||
&& wget https://www.roboti.us/download/mjpro150_linux.zip -O mujoco.zip \
|
&& wget https://www.roboti.us/download/mjpro150_linux.zip -O mujoco.zip \
|
||||||
|
|||||||
@@ -29,6 +29,16 @@ RUN apt-get update && \
|
|||||||
apt-get clean autoclean && \
|
apt-get clean autoclean && \
|
||||||
apt-get autoremove -y
|
apt-get autoremove -y
|
||||||
|
|
||||||
|
################################
|
||||||
|
# Install Python 3.6 #
|
||||||
|
################################
|
||||||
|
|
||||||
|
RUN DEBIAN_FRONTEND=noninteractive add-apt-repository --yes ppa:deadsnakes/ppa && apt-get update
|
||||||
|
RUN DEBIAN_FRONTEND=noninteractive apt-get install --yes python3.6-dev python3.6 python3-pip
|
||||||
|
|
||||||
|
RUN rm /usr/bin/python3
|
||||||
|
RUN ln -s /usr/bin/python3.6 /usr/bin/python3
|
||||||
|
|
||||||
############################
|
############################
|
||||||
# Install Pip Requirements #
|
# Install Pip Requirements #
|
||||||
############################
|
############################
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ class CheckpointDataStore(object):
|
|||||||
A DataStore which relies on the GraphManager check pointing methods to communicate policies.
|
A DataStore which relies on the GraphManager check pointing methods to communicate policies.
|
||||||
"""
|
"""
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
|
||||||
self.checkpoint_num = 0
|
self.checkpoint_num = 0
|
||||||
|
|
||||||
def end_of_policies(self) -> bool:
|
def end_of_policies(self) -> bool:
|
||||||
|
|||||||
@@ -42,10 +42,10 @@ env_params = DoomEnvironmentParameters(level='basic')
|
|||||||
# Test #
|
# Test #
|
||||||
########
|
########
|
||||||
preset_validation_params = PresetValidationParameters()
|
preset_validation_params = PresetValidationParameters()
|
||||||
preset_validation_params.test = True
|
# preset_validation_params.test = True
|
||||||
preset_validation_params.min_reward_threshold = 20
|
# preset_validation_params.min_reward_threshold = 20
|
||||||
preset_validation_params.max_episodes_to_achieve_reward = 400
|
# preset_validation_params.max_episodes_to_achieve_reward = 400
|
||||||
preset_validation_params.num_workers = 8
|
# preset_validation_params.num_workers = 8
|
||||||
|
|
||||||
|
|
||||||
graph_manager = BasicRLGraphManager(agent_params=agent_params, env_params=env_params,
|
graph_manager = BasicRLGraphManager(agent_params=agent_params, env_params=env_params,
|
||||||
|
|||||||
@@ -44,10 +44,10 @@ env_params = DoomEnvironmentParameters(level='basic')
|
|||||||
# Test #
|
# Test #
|
||||||
########
|
########
|
||||||
preset_validation_params = PresetValidationParameters()
|
preset_validation_params = PresetValidationParameters()
|
||||||
preset_validation_params.test = True
|
# preset_validation_params.test = True
|
||||||
preset_validation_params.min_reward_threshold = 20
|
# preset_validation_params.min_reward_threshold = 20
|
||||||
preset_validation_params.max_episodes_to_achieve_reward = 400
|
# preset_validation_params.max_episodes_to_achieve_reward = 400
|
||||||
preset_validation_params.num_workers = 8
|
# preset_validation_params.num_workers = 8
|
||||||
|
|
||||||
|
|
||||||
graph_manager = BasicRLGraphManager(agent_params=agent_params, env_params=env_params,
|
graph_manager = BasicRLGraphManager(agent_params=agent_params, env_params=env_params,
|
||||||
|
|||||||
11
setup.py
11
setup.py
@@ -66,14 +66,7 @@ using_GPU = out != ''
|
|||||||
|
|
||||||
if not using_GPU:
|
if not using_GPU:
|
||||||
if not slim_package:
|
if not slim_package:
|
||||||
# For linux wth no GPU, we install the Intel optimized version of TensorFlow
|
install_requires.append('tensorflow>=1.9.0,<=1.14.0')
|
||||||
if sys.platform == "linux" or sys.platform == "linux2":
|
|
||||||
# CI: limiting version to 1.13.1 due to
|
|
||||||
# https://github.com/tensorflow/tensorflow/issues/29617
|
|
||||||
# (reproduced with intel-tensorflow 1.14.0 but not with 1.13.1)
|
|
||||||
install_requires.append('intel-tensorflow==1.13.1')
|
|
||||||
else:
|
|
||||||
install_requires.append('tensorflow>=1.9.0,<=1.14.0')
|
|
||||||
extras['mxnet'] = ['mxnet-mkl>=1.3.0']
|
extras['mxnet'] = ['mxnet-mkl>=1.3.0']
|
||||||
else:
|
else:
|
||||||
if not slim_package:
|
if not slim_package:
|
||||||
@@ -94,7 +87,7 @@ setup(
|
|||||||
author='Intel AI Lab',
|
author='Intel AI Lab',
|
||||||
author_email='coach@intel.com',
|
author_email='coach@intel.com',
|
||||||
packages=find_packages(),
|
packages=find_packages(),
|
||||||
python_requires=">=3.5.*",
|
python_requires=">=3.6.*",
|
||||||
install_requires=install_requires,
|
install_requires=install_requires,
|
||||||
extras_require=extras,
|
extras_require=extras,
|
||||||
package_data={'rl_coach': ['dashboard_components/*.css',
|
package_data={'rl_coach': ['dashboard_components/*.css',
|
||||||
|
|||||||
Reference in New Issue
Block a user