Skip to content

Commit

Permalink
Merge pull request #201 from DeNA/develop
Browse files Browse the repository at this point in the history
Merge develop branch into master (2021/05)
  • Loading branch information
ikki407 committed Jun 2, 2021
2 parents f2290e3 + a33cfa6 commit 82bc07a
Show file tree
Hide file tree
Showing 8 changed files with 592 additions and 21 deletions.
42 changes: 35 additions & 7 deletions .github/workflows/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,53 @@ on:
push:

jobs:
pytest:
name: Run pytest
test:
name: Test
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: [3.7, 3.8, 3.9]
poetry-version: [1.1.5]
with-up-to-date-dependencies: [false, true]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
- uses: abatilo/actions-poetry@v2.0.0
with:
poetry-version: ${{ matrix.poetry-version }}
- name: Remove the lockfile to install latest packages
if: matrix.with-up-to-date-dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -r handyrl/envs/kaggle/requirements.txt
rm poetry.lock
- run: |
poetry install
- name: pytest
run: |
python -m pytest tests
poetry run python -m pytest
validate-requirements:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.9]
poetry-version: [1.1.5]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- uses: abatilo/actions-poetry@v2.0.0
with:
poetry-version: ${{ matrix.poetry-version }}
- run: |
# If failed, do
# $ poetry export --without-hashes -f requirements.txt --output requirements.txt
# $ poetry export --without-hashes -f requirements.txt --output requirements-dev.txt --dev
diff <(poetry export --without-hashes -f requirements.txt | grep -v '^Warning:') requirements.txt
diff <(poetry export --without-hashes -f requirements.txt --dev | grep -v '^Warning:') requirements-dev.txt
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,13 @@ pip3 install -r requirements.txt

To use games of kaggle environments (e.g. Hungry Geese) you can install also additional dependencies.
```
pip3 install -r handyrl/envs/kaggle/requirements.txt
pip3 install -r requirements-dev.txt
```

Or equivalently, you can use [poetry](https://python-poetry.org/).

```
poetry install
```


Expand Down
2 changes: 0 additions & 2 deletions handyrl/envs/kaggle/requirements.txt

This file was deleted.

12 changes: 6 additions & 6 deletions handyrl/train.py
Original file line number Diff line number Diff line change
Expand Up @@ -489,16 +489,16 @@ def feed_episodes(self, episodes):
self.generation_results[model_id] = n + 1, r + outcome, r2 + outcome ** 2

# store generated episodes
mem = psutil.virtual_memory()
mem_used_ratio = mem.used / mem.total
mem_ok = mem_used_ratio <= 0.95
maximum_episodes = self.args['maximum_episodes'] if mem_ok else len(self.trainer.episodes)
self.trainer.episodes.extend([e for e in episodes if e is not None])

mem_percent = psutil.virtual_memory().percent
mem_ok = mem_percent <= 95
maximum_episodes = self.args['maximum_episodes'] if mem_ok else int(len(self.trainer.episodes) * 95 / mem_percent)

if not mem_ok and 'memory_over' not in self.flags:
warnings.warn("memory usage %.1f%% with buffer size %d" % (mem_used_ratio * 100, len(self.trainer.episodes)))
warnings.warn("memory usage %.1f%% with buffer size %d" % (mem_percent, len(self.trainer.episodes)))
self.flags.add('memory_over')

self.trainer.episodes.extend([e for e in episodes if e is not None])
while len(self.trainer.episodes) > maximum_episodes:
self.trainer.episodes.popleft()

Expand Down
Loading

0 comments on commit 82bc07a

Please sign in to comment.