mirror of
https://github.com/gryf/coach.git
synced 2025-12-17 11:10:20 +01:00
Adding mxnet components to rl_coach architectures. - Supports PPO and DQN - Tested with CartPole_PPO and CarPole_DQN - Normalizing filters don't work right now (see #49) and are disabled in CartPole_PPO preset - Checkpointing is disabled for MXNet
107 lines
3.7 KiB
Python
107 lines
3.7 KiB
Python
#
|
|
# Copyright (c) 2017 Intel Corporation
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
import sys
|
|
|
|
from codecs import open
|
|
from os import path
|
|
|
|
from setuptools import setup, find_packages
|
|
import subprocess
|
|
|
|
# Creating the pip package involves the following steps:
|
|
# - Define the pip package related files - setup.py (this file) and MANIFEST.in by:
|
|
# 1. Make sure all the requirements in install_requires are defined correctly and that their version is the correct one
|
|
# 2. Add all the non .py files to the package_data and to the MANIFEST.in file
|
|
# 3. Make sure that all the python directories have an __init__.py file
|
|
|
|
# - Check that everything works fine by:
|
|
# 1. Create a new virtual environment using `virtualenv coach_env -p python3`
|
|
# 2. Run `pip install -e .`
|
|
# 3. Run `coach -p CartPole_DQN` and make sure it works
|
|
# 4. Run `dashboard` and make sure it works
|
|
|
|
# - If everything works fine, build and upload the package to PyPi:
|
|
# 1. Update the version of Coach in the call to setup()
|
|
# 2. Remove the directories build, dist and rl_coach.egg-info if they exist
|
|
# 3. Run `python setup.py sdist`
|
|
# 4. Run `twine upload dist/*`
|
|
|
|
|
|
here = path.abspath(path.dirname(__file__))
|
|
|
|
# Get the long description from the README file
|
|
with open(path.join(here, 'README.md'), encoding='utf-8') as f:
|
|
long_description = f.read()
|
|
|
|
install_requires = list()
|
|
|
|
with open(path.join(here, 'requirements.txt'), 'r') as f:
|
|
for line in f:
|
|
install_requires.append(line.strip())
|
|
|
|
# check if system has CUDA enabled GPU
|
|
p = subprocess.Popen(['command -v nvidia-smi'], stdout=subprocess.PIPE, shell=True)
|
|
out = p.communicate()[0].decode('UTF-8')
|
|
using_GPU = out != ''
|
|
|
|
if not using_GPU:
|
|
# For linux wth no GPU, we install the Intel optimized version of TensorFlow
|
|
if sys.platform == "linux" or sys.platform == "linux2":
|
|
subprocess.check_call(['pip install '
|
|
'https://anaconda.org/intel/tensorflow/1.6.0/download/tensorflow-1.6.0-cp35-cp35m-linux_x86_64.whl'],
|
|
shell=True)
|
|
install_requires.append('tensorflow==1.6.0')
|
|
else:
|
|
install_requires.append('tensorflow-gpu==1.9.0')
|
|
|
|
# Framework-specific dependencies.
|
|
extras = {
|
|
'mxnet': ['mxnet-cu90mkl>=1.3.0']
|
|
}
|
|
|
|
all_deps = []
|
|
for group_name in extras:
|
|
all_deps += extras[group_name]
|
|
extras['all'] = all_deps
|
|
|
|
|
|
setup(
|
|
name='rl-coach',
|
|
version='0.10.0',
|
|
description='Reinforcement Learning Coach enables easy experimentation with state of the art Reinforcement Learning algorithms.',
|
|
url='https://github.com/NervanaSystems/coach',
|
|
author='Intel AI Lab',
|
|
author_email='coach@intel.com',
|
|
packages=find_packages(),
|
|
python_requires=">=3.5.*",
|
|
install_requires=install_requires,
|
|
extras_require=extras,
|
|
package_data={'rl_coach': ['dashboard_components/*.css',
|
|
'environments/doom/*.cfg',
|
|
'environments/doom/*.wad',
|
|
'environments/mujoco/common/*.xml',
|
|
'environments/mujoco/*.xml',
|
|
'environments/*.ini',
|
|
'tests/*.ini']},
|
|
entry_points={
|
|
'console_scripts': [
|
|
'coach=rl_coach.coach:main',
|
|
'dashboard=rl_coach.dashboard:main'
|
|
],
|
|
}
|
|
)
|