sgoodfriend commited on
Commit
d030d40
1 Parent(s): 464d478

A2C playing CartPole-v1 from https://github.com/sgoodfriend/rl-algo-impls/tree/0760ef7d52b17f30219a27c18ba52c8895025ae3

Browse files
colab_requirements.txt CHANGED
@@ -11,5 +11,4 @@ numexpr >= 2.8.4, < 2.9
11
  gym3 >= 0.3.3, < 0.4
12
  glfw >= 1.12.0, < 1.13
13
  procgen >= 0.10.7, < 0.11
14
- ipython >= 8.10.0, < 8.11
15
- optuna >= 3.1.0, < 3.2
 
11
  gym3 >= 0.3.3, < 0.4
12
  glfw >= 1.12.0, < 1.13
13
  procgen >= 0.10.7, < 0.11
14
+ ipython >= 8.10.0, < 8.11
 
lambda_labs/lambda_requirements.txt CHANGED
@@ -13,5 +13,4 @@ numexpr >= 2.8.4, < 2.9
13
  gym3 >= 0.3.3, < 0.4
14
  glfw >= 1.12.0, < 1.13
15
  procgen >= 0.10.7, < 0.11
16
- ipython >= 8.10.0, < 8.11
17
- optuna >= 3.1.0, < 3.2
 
13
  gym3 >= 0.3.3, < 0.4
14
  glfw >= 1.12.0, < 1.13
15
  procgen >= 0.10.7, < 0.11
16
+ ipython >= 8.10.0, < 8.11
 
poetry.lock CHANGED
@@ -44,25 +44,6 @@ numpy = "*"
44
  [package.extras]
45
  test = ["gym", "pytest"]
46
 
47
- [[package]]
48
- name = "alembic"
49
- version = "1.9.4"
50
- description = "A database migration tool for SQLAlchemy."
51
- category = "main"
52
- optional = false
53
- python-versions = ">=3.7"
54
- files = [
55
- {file = "alembic-1.9.4-py3-none-any.whl", hash = "sha256:6f1c2207369bf4f49f952057a33bb017fbe5c148c2a773b46906b806ea6e825f"},
56
- {file = "alembic-1.9.4.tar.gz", hash = "sha256:4d3bd32ecdbb7bbfb48a9fe9e6d6fd6a831a1b59d03e26e292210237373e7db5"},
57
- ]
58
-
59
- [package.dependencies]
60
- Mako = "*"
61
- SQLAlchemy = ">=1.3.0"
62
-
63
- [package.extras]
64
- tz = ["python-dateutil"]
65
-
66
  [[package]]
67
  name = "anyio"
68
  version = "3.6.2"
@@ -619,24 +600,6 @@ files = [
619
  {file = "cloudpickle-2.2.0.tar.gz", hash = "sha256:3f4219469c55453cfe4737e564b67c2a149109dabf7f242478948b895f61106f"},
620
  ]
621
 
622
- [[package]]
623
- name = "cmaes"
624
- version = "0.9.1"
625
- description = "Lightweight Covariance Matrix Adaptation Evolution Strategy (CMA-ES) implementation for Python 3."
626
- category = "main"
627
- optional = false
628
- python-versions = ">=3.7"
629
- files = [
630
- {file = "cmaes-0.9.1-py3-none-any.whl", hash = "sha256:6e2930b6a99dd94621bf62966c13d29e6a7f90a909b4e4266010d5f3a7fb74b8"},
631
- {file = "cmaes-0.9.1.tar.gz", hash = "sha256:d122f8d46377f643a150c85ffc81c4e33909a34cfdcb522ee7a6fb17ea4f232c"},
632
- ]
633
-
634
- [package.dependencies]
635
- numpy = "*"
636
-
637
- [package.extras]
638
- cmawm = ["scipy"]
639
-
640
  [[package]]
641
  name = "colorama"
642
  version = "0.4.6"
@@ -649,24 +612,6 @@ files = [
649
  {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
650
  ]
651
 
652
- [[package]]
653
- name = "colorlog"
654
- version = "6.7.0"
655
- description = "Add colours to the output of Python's logging module."
656
- category = "main"
657
- optional = false
658
- python-versions = ">=3.6"
659
- files = [
660
- {file = "colorlog-6.7.0-py2.py3-none-any.whl", hash = "sha256:0d33ca236784a1ba3ff9c532d4964126d8a2c44f1f0cb1d2b0728196f512f662"},
661
- {file = "colorlog-6.7.0.tar.gz", hash = "sha256:bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5"},
662
- ]
663
-
664
- [package.dependencies]
665
- colorama = {version = "*", markers = "sys_platform == \"win32\""}
666
-
667
- [package.extras]
668
- development = ["black", "flake8", "mypy", "pytest", "types-colorama"]
669
-
670
  [[package]]
671
  name = "comm"
672
  version = "0.1.2"
@@ -1240,80 +1185,6 @@ requests-oauthlib = ">=0.7.0"
1240
  [package.extras]
1241
  tool = ["click (>=6.0.0)"]
1242
 
1243
- [[package]]
1244
- name = "greenlet"
1245
- version = "2.0.2"
1246
- description = "Lightweight in-process concurrent programming"
1247
- category = "main"
1248
- optional = false
1249
- python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
1250
- files = [
1251
- {file = "greenlet-2.0.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:bdfea8c661e80d3c1c99ad7c3ff74e6e87184895bbaca6ee8cc61209f8b9b85d"},
1252
- {file = "greenlet-2.0.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:9d14b83fab60d5e8abe587d51c75b252bcc21683f24699ada8fb275d7712f5a9"},
1253
- {file = "greenlet-2.0.2-cp27-cp27m-win32.whl", hash = "sha256:6c3acb79b0bfd4fe733dff8bc62695283b57949ebcca05ae5c129eb606ff2d74"},
1254
- {file = "greenlet-2.0.2-cp27-cp27m-win_amd64.whl", hash = "sha256:283737e0da3f08bd637b5ad058507e578dd462db259f7f6e4c5c365ba4ee9343"},
1255
- {file = "greenlet-2.0.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d27ec7509b9c18b6d73f2f5ede2622441de812e7b1a80bbd446cb0633bd3d5ae"},
1256
- {file = "greenlet-2.0.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:30bcf80dda7f15ac77ba5af2b961bdd9dbc77fd4ac6105cee85b0d0a5fcf74df"},
1257
- {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26fbfce90728d82bc9e6c38ea4d038cba20b7faf8a0ca53a9c07b67318d46088"},
1258
- {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9190f09060ea4debddd24665d6804b995a9c122ef5917ab26e1566dcc712ceeb"},
1259
- {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470"},
1260
- {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a51c9751078733d88e013587b108f1b7a1fb106d402fb390740f002b6f6551a"},
1261
- {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:76ae285c8104046b3a7f06b42f29c7b73f77683df18c49ab5af7983994c2dd91"},
1262
- {file = "greenlet-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:2d4686f195e32d36b4d7cf2d166857dbd0ee9f3d20ae349b6bf8afc8485b3645"},
1263
- {file = "greenlet-2.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c4302695ad8027363e96311df24ee28978162cdcdd2006476c43970b384a244c"},
1264
- {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c48f54ef8e05f04d6eff74b8233f6063cb1ed960243eacc474ee73a2ea8573ca"},
1265
- {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1846f1b999e78e13837c93c778dcfc3365902cfb8d1bdb7dd73ead37059f0d0"},
1266
- {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a06ad5312349fec0ab944664b01d26f8d1f05009566339ac6f63f56589bc1a2"},
1267
- {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:eff4eb9b7eb3e4d0cae3d28c283dc16d9bed6b193c2e1ace3ed86ce48ea8df19"},
1268
- {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5454276c07d27a740c5892f4907c86327b632127dd9abec42ee62e12427ff7e3"},
1269
- {file = "greenlet-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:7cafd1208fdbe93b67c7086876f061f660cfddc44f404279c1585bbf3cdc64c5"},
1270
- {file = "greenlet-2.0.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:910841381caba4f744a44bf81bfd573c94e10b3045ee00de0cbf436fe50673a6"},
1271
- {file = "greenlet-2.0.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:18a7f18b82b52ee85322d7a7874e676f34ab319b9f8cce5de06067384aa8ff43"},
1272
- {file = "greenlet-2.0.2-cp35-cp35m-win32.whl", hash = "sha256:03a8f4f3430c3b3ff8d10a2a86028c660355ab637cee9333d63d66b56f09d52a"},
1273
- {file = "greenlet-2.0.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4b58adb399c4d61d912c4c331984d60eb66565175cdf4a34792cd9600f21b394"},
1274
- {file = "greenlet-2.0.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:703f18f3fda276b9a916f0934d2fb6d989bf0b4fb5a64825260eb9bfd52d78f0"},
1275
- {file = "greenlet-2.0.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:32e5b64b148966d9cccc2c8d35a671409e45f195864560829f395a54226408d3"},
1276
- {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dd11f291565a81d71dab10b7033395b7a3a5456e637cf997a6f33ebdf06f8db"},
1277
- {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0f72c9ddb8cd28532185f54cc1453f2c16fb417a08b53a855c4e6a418edd099"},
1278
- {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd021c754b162c0fb55ad5d6b9d960db667faad0fa2ff25bb6e1301b0b6e6a75"},
1279
- {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:3c9b12575734155d0c09d6c3e10dbd81665d5c18e1a7c6597df72fd05990c8cf"},
1280
- {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b9ec052b06a0524f0e35bd8790686a1da006bd911dd1ef7d50b77bfbad74e292"},
1281
- {file = "greenlet-2.0.2-cp36-cp36m-win32.whl", hash = "sha256:dbfcfc0218093a19c252ca8eb9aee3d29cfdcb586df21049b9d777fd32c14fd9"},
1282
- {file = "greenlet-2.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:9f35ec95538f50292f6d8f2c9c9f8a3c6540bbfec21c9e5b4b751e0a7c20864f"},
1283
- {file = "greenlet-2.0.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d5508f0b173e6aa47273bdc0a0b5ba055b59662ba7c7ee5119528f466585526b"},
1284
- {file = "greenlet-2.0.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:f82d4d717d8ef19188687aa32b8363e96062911e63ba22a0cff7802a8e58e5f1"},
1285
- {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9c59a2120b55788e800d82dfa99b9e156ff8f2227f07c5e3012a45a399620b7"},
1286
- {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2780572ec463d44c1d3ae850239508dbeb9fed38e294c68d19a24d925d9223ca"},
1287
- {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937e9020b514ceedb9c830c55d5c9872abc90f4b5862f89c0887033ae33c6f73"},
1288
- {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:36abbf031e1c0f79dd5d596bfaf8e921c41df2bdf54ee1eed921ce1f52999a86"},
1289
- {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:18e98fb3de7dba1c0a852731c3070cf022d14f0d68b4c87a19cc1016f3bb8b33"},
1290
- {file = "greenlet-2.0.2-cp37-cp37m-win32.whl", hash = "sha256:3f6ea9bd35eb450837a3d80e77b517ea5bc56b4647f5502cd28de13675ee12f7"},
1291
- {file = "greenlet-2.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:7492e2b7bd7c9b9916388d9df23fa49d9b88ac0640db0a5b4ecc2b653bf451e3"},
1292
- {file = "greenlet-2.0.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:b864ba53912b6c3ab6bcb2beb19f19edd01a6bfcbdfe1f37ddd1778abfe75a30"},
1293
- {file = "greenlet-2.0.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:ba2956617f1c42598a308a84c6cf021a90ff3862eddafd20c3333d50f0edb45b"},
1294
- {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3a569657468b6f3fb60587e48356fe512c1754ca05a564f11366ac9e306526"},
1295
- {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8eab883b3b2a38cc1e050819ef06a7e6344d4a990d24d45bc6f2cf959045a45b"},
1296
- {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acd2162a36d3de67ee896c43effcd5ee3de247eb00354db411feb025aa319857"},
1297
- {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0bf60faf0bc2468089bdc5edd10555bab6e85152191df713e2ab1fcc86382b5a"},
1298
- {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b0ef99cdbe2b682b9ccbb964743a6aca37905fda5e0452e5ee239b1654d37f2a"},
1299
- {file = "greenlet-2.0.2-cp38-cp38-win32.whl", hash = "sha256:b80f600eddddce72320dbbc8e3784d16bd3fb7b517e82476d8da921f27d4b249"},
1300
- {file = "greenlet-2.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:4d2e11331fc0c02b6e84b0d28ece3a36e0548ee1a1ce9ddde03752d9b79bba40"},
1301
- {file = "greenlet-2.0.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:88d9ab96491d38a5ab7c56dd7a3cc37d83336ecc564e4e8816dbed12e5aaefc8"},
1302
- {file = "greenlet-2.0.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:561091a7be172ab497a3527602d467e2b3fbe75f9e783d8b8ce403fa414f71a6"},
1303
- {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:971ce5e14dc5e73715755d0ca2975ac88cfdaefcaab078a284fea6cfabf866df"},
1304
- {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be4ed120b52ae4d974aa40215fcdfde9194d63541c7ded40ee12eb4dda57b76b"},
1305
- {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94c817e84245513926588caf1152e3b559ff794d505555211ca041f032abbb6b"},
1306
- {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1a819eef4b0e0b96bb0d98d797bef17dc1b4a10e8d7446be32d1da33e095dbb8"},
1307
- {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7efde645ca1cc441d6dc4b48c0f7101e8d86b54c8530141b09fd31cef5149ec9"},
1308
- {file = "greenlet-2.0.2-cp39-cp39-win32.whl", hash = "sha256:ea9872c80c132f4663822dd2a08d404073a5a9b5ba6155bea72fb2a79d1093b5"},
1309
- {file = "greenlet-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:db1a39669102a1d8d12b57de2bb7e2ec9066a6f2b3da35ae511ff93b01b5d564"},
1310
- {file = "greenlet-2.0.2.tar.gz", hash = "sha256:e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0"},
1311
- ]
1312
-
1313
- [package.extras]
1314
- docs = ["Sphinx", "docutils (<0.18)"]
1315
- test = ["objgraph", "psutil"]
1316
-
1317
  [[package]]
1318
  name = "grpcio"
1319
  version = "1.51.1"
@@ -2114,26 +1985,6 @@ files = [
2114
  {file = "lockfile-0.12.2.tar.gz", hash = "sha256:6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799"},
2115
  ]
2116
 
2117
- [[package]]
2118
- name = "mako"
2119
- version = "1.2.4"
2120
- description = "A super-fast templating language that borrows the best ideas from the existing templating languages."
2121
- category = "main"
2122
- optional = false
2123
- python-versions = ">=3.7"
2124
- files = [
2125
- {file = "Mako-1.2.4-py3-none-any.whl", hash = "sha256:c97c79c018b9165ac9922ae4f32da095ffd3c4e6872b45eded42926deea46818"},
2126
- {file = "Mako-1.2.4.tar.gz", hash = "sha256:d60a3903dc3bb01a18ad6a89cdbe2e4eadc69c0bc8ef1e3773ba53d44c3f7a34"},
2127
- ]
2128
-
2129
- [package.dependencies]
2130
- MarkupSafe = ">=0.9.2"
2131
-
2132
- [package.extras]
2133
- babel = ["Babel"]
2134
- lingua = ["lingua"]
2135
- testing = ["pytest"]
2136
-
2137
  [[package]]
2138
  name = "markdown"
2139
  version = "3.4.1"
@@ -2798,36 +2649,6 @@ numpy = [
2798
  {version = ">=1.17.3", markers = "python_version >= \"3.8\""},
2799
  ]
2800
 
2801
- [[package]]
2802
- name = "optuna"
2803
- version = "3.1.0"
2804
- description = "A hyperparameter optimization framework"
2805
- category = "main"
2806
- optional = false
2807
- python-versions = ">=3.7"
2808
- files = [
2809
- {file = "optuna-3.1.0-py3-none-any.whl", hash = "sha256:f79e2c2747bbf2779b1ab21de0ff553218159c36695326e8d6f2889db7d5c2a0"},
2810
- {file = "optuna-3.1.0.tar.gz", hash = "sha256:96c7c92860c8692d3aa569d749e72b121422cb4af0ed3ad4bfbc445b61416919"},
2811
- ]
2812
-
2813
- [package.dependencies]
2814
- alembic = ">=1.5.0"
2815
- cmaes = ">=0.9.1"
2816
- colorlog = "*"
2817
- numpy = "*"
2818
- packaging = ">=20.0"
2819
- PyYAML = "*"
2820
- sqlalchemy = ">=1.3.0"
2821
- tqdm = "*"
2822
-
2823
- [package.extras]
2824
- benchmark = ["asv (>=0.5.0)", "botorch", "cma", "scikit-optimize", "virtualenv"]
2825
- checking = ["black", "blackdoc", "hacking", "isort", "mypy", "types-PyYAML", "types-redis", "types-setuptools", "typing-extensions (>=3.10.0.0)"]
2826
- document = ["cma", "distributed", "fvcore", "lightgbm", "matplotlib (!=3.6.0)", "mlflow", "pandas", "pillow", "plotly (>=4.9.0)", "scikit-learn", "scikit-optimize", "sphinx (<6)", "sphinx-copybutton", "sphinx-gallery", "sphinx-plotly-directive", "sphinx-rtd-theme", "torch (==1.11.0)", "torchaudio (==0.11.0)", "torchvision (==0.12.0)"]
2827
- integration = ["allennlp (>=2.2.0)", "botorch (>=0.4.0,<0.8.0)", "cached-path (<=1.1.2)", "catalyst (>=21.3)", "catboost (>=0.26)", "chainer (>=5.0.0)", "cma", "distributed", "fastai", "lightgbm", "mlflow", "mpi4py", "mxnet", "pandas", "pytorch-ignite", "pytorch-lightning (>=1.5.0)", "scikit-learn (>=0.24.2)", "scikit-optimize", "shap", "skorch", "tensorflow", "tensorflow-datasets", "torch (==1.11.0)", "torchaudio (==0.11.0)", "torchvision (==0.12.0)", "wandb", "xgboost"]
2828
- optional = ["matplotlib (!=3.6.0)", "pandas", "plotly (>=4.9.0)", "redis", "scikit-learn (>=0.24.2)"]
2829
- test = ["codecov", "fakeredis[lua]", "kaleido", "pytest", "scipy (>=1.9.2)"]
2830
-
2831
  [[package]]
2832
  name = "packaging"
2833
  version = "23.0"
@@ -4108,84 +3929,6 @@ files = [
4108
  {file = "soupsieve-2.3.2.post1.tar.gz", hash = "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d"},
4109
  ]
4110
 
4111
- [[package]]
4112
- name = "sqlalchemy"
4113
- version = "2.0.4"
4114
- description = "Database Abstraction Library"
4115
- category = "main"
4116
- optional = false
4117
- python-versions = ">=3.7"
4118
- files = [
4119
- {file = "SQLAlchemy-2.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b67d6e626caa571fb53accaac2fba003ef4f7317cb3481e9ab99dad6e89a70d6"},
4120
- {file = "SQLAlchemy-2.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b01dce097cf6f145da131a53d4cce7f42e0bfa9ae161dd171a423f7970d296d0"},
4121
- {file = "SQLAlchemy-2.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:738c80705e11c1268827dbe22c01162a9cdc98fc6f7901b429a1459db2593060"},
4122
- {file = "SQLAlchemy-2.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6363697c938b9a13e07f1bc2cd433502a7aa07efd55b946b31d25b9449890621"},
4123
- {file = "SQLAlchemy-2.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a42e6831e82dfa6d16b45f0c98c69e7b0defc64d76213173456355034450c414"},
4124
- {file = "SQLAlchemy-2.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:011ef3c33f30bae5637c575f30647e0add98686642d237f0c3a1e3d9b35747fa"},
4125
- {file = "SQLAlchemy-2.0.4-cp310-cp310-win32.whl", hash = "sha256:c1e8edc49b32483cd5d2d015f343e16be7dfab89f4aaf66b0fa6827ab356880d"},
4126
- {file = "SQLAlchemy-2.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:77a380bf8721b416782c763e0ff66f80f3b05aee83db33ddfc0eac20bcb6791f"},
4127
- {file = "SQLAlchemy-2.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2a2f9120eb32190bdba31d1022181ef08f257aed4f984f3368aa4e838de72bc0"},
4128
- {file = "SQLAlchemy-2.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:679b9bd10bb32b8d3befed4aad4356799b6ec1bdddc0f930a79e41ba5b084124"},
4129
- {file = "SQLAlchemy-2.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:582053571125895d008d4b8d9687d12d4bd209c076cdbab3504da307e2a0a2bd"},
4130
- {file = "SQLAlchemy-2.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c82395e2925639e6d320592943608070678e7157bd1db2672a63be9c7889434"},
4131
- {file = "SQLAlchemy-2.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:25e4e54575f9d2af1eab82d3a470fca27062191c48ee57b6386fe09a3c0a6a33"},
4132
- {file = "SQLAlchemy-2.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9946ee503962859f1a9e1ad17dff0859269b0cb453686747fe87f00b0e030b34"},
4133
- {file = "SQLAlchemy-2.0.4-cp311-cp311-win32.whl", hash = "sha256:c621f05859caed5c0aab032888a3d3bde2cae3988ca151113cbecf262adad976"},
4134
- {file = "SQLAlchemy-2.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:662a79e80f3e9fe33b7861c19fedf3d8389fab2413c04bba787e3f1139c22188"},
4135
- {file = "SQLAlchemy-2.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3f927340b37fe65ec42e19af7ce15260a73e11c6b456febb59009bfdfec29a35"},
4136
- {file = "SQLAlchemy-2.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67901b91bf5821482fcbe9da988cb16897809624ddf0fde339cd62365cc50032"},
4137
- {file = "SQLAlchemy-2.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1644c603558590f465b3fa16e4557d87d3962bc2c81fd7ea85b582ecf4676b31"},
4138
- {file = "SQLAlchemy-2.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:9a7ecaf90fe9ec8e45c86828f4f183564b33c9514e08667ca59e526fea63893a"},
4139
- {file = "SQLAlchemy-2.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8a88b32ce5b69d18507ffc9f10401833934ebc353c7b30d1e056023c64f0a736"},
4140
- {file = "SQLAlchemy-2.0.4-cp37-cp37m-win32.whl", hash = "sha256:2267c004e78e291bba0dc766a9711c389649cf3e662cd46eec2bc2c238c637bd"},
4141
- {file = "SQLAlchemy-2.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:59cf0cdb29baec4e074c7520d7226646a8a8f856b87d8300f3e4494901d55235"},
4142
- {file = "SQLAlchemy-2.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:dd801375f19a6e1f021dabd8b1714f2fdb91cbc835cd13b5dd0bd7e9860392d7"},
4143
- {file = "SQLAlchemy-2.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d8efdda920988bcade542f53a2890751ff680474d548f32df919a35a21404e3f"},
4144
- {file = "SQLAlchemy-2.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:918c2b553e3c78268b187f70983c9bc6f91e451a4f934827e9c919e03d258bd7"},
4145
- {file = "SQLAlchemy-2.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77d05773d5c79f2d3371d81697d54ee1b2c32085ad434ce9de4482e457ecb018"},
4146
- {file = "SQLAlchemy-2.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:fdb2686eb01f670cdc6c43f092e333ff08c1cf0b646da5256c1237dc4ceef4ae"},
4147
- {file = "SQLAlchemy-2.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8ff0a7c669ec7cdb899eae7e622211c2dd8725b82655db2b41740d39e3cda466"},
4148
- {file = "SQLAlchemy-2.0.4-cp38-cp38-win32.whl", hash = "sha256:57dcd9eed52413f7270b22797aa83c71b698db153d1541c1e83d45ecdf8e95e7"},
4149
- {file = "SQLAlchemy-2.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:54aa9f40d88728dd058e951eeb5ecc55241831ba4011e60c641738c1da0146b7"},
4150
- {file = "SQLAlchemy-2.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:817aab80f7e8fe581696dae7aaeb2ceb0b7ea70ad03c95483c9115970d2a9b00"},
4151
- {file = "SQLAlchemy-2.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dc7b9f55c2f72c13b2328b8a870ff585c993ba1b5c155ece5c9d3216fa4b18f6"},
4152
- {file = "SQLAlchemy-2.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f696828784ab2c07b127bfd2f2d513f47ec58924c29cff5b19806ac37acee31c"},
4153
- {file = "SQLAlchemy-2.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce54965a94673a0ebda25e7c3a05bf1aa74fd78cc452a1a710b704bf73fb8402"},
4154
- {file = "SQLAlchemy-2.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f342057422d6bcfdd4996e34cd5c7f78f7e500112f64b113f334cdfc6a0c593d"},
4155
- {file = "SQLAlchemy-2.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b5deafb4901618b3f98e8df7099cd11edd0d1e6856912647e28968b803de0dae"},
4156
- {file = "SQLAlchemy-2.0.4-cp39-cp39-win32.whl", hash = "sha256:81f1ea264278fcbe113b9a5840f13a356cb0186e55b52168334124f1cd1bc495"},
4157
- {file = "SQLAlchemy-2.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:954f1ad73b78ea5ba5a35c89c4a5dfd0f3a06c17926503de19510eb9b3857bde"},
4158
- {file = "SQLAlchemy-2.0.4-py3-none-any.whl", hash = "sha256:0adca8a3ca77234a142c5afed29322fb501921f13d1d5e9fa4253450d786c160"},
4159
- {file = "SQLAlchemy-2.0.4.tar.gz", hash = "sha256:95a18e1a6af2114dbd9ee4f168ad33070d6317e11bafa28d983cc7b585fe900b"},
4160
- ]
4161
-
4162
- [package.dependencies]
4163
- greenlet = {version = "!=0.4.17", markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\""}
4164
- typing-extensions = ">=4.2.0"
4165
-
4166
- [package.extras]
4167
- aiomysql = ["aiomysql", "greenlet (!=0.4.17)"]
4168
- aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing-extensions (!=3.10.0.1)"]
4169
- asyncio = ["greenlet (!=0.4.17)"]
4170
- asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"]
4171
- mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"]
4172
- mssql = ["pyodbc"]
4173
- mssql-pymssql = ["pymssql"]
4174
- mssql-pyodbc = ["pyodbc"]
4175
- mypy = ["mypy (>=0.910)"]
4176
- mysql = ["mysqlclient (>=1.4.0)"]
4177
- mysql-connector = ["mysql-connector-python"]
4178
- oracle = ["cx-oracle (>=7)"]
4179
- oracle-oracledb = ["oracledb (>=1.0.1)"]
4180
- postgresql = ["psycopg2 (>=2.7)"]
4181
- postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"]
4182
- postgresql-pg8000 = ["pg8000 (>=1.29.1)"]
4183
- postgresql-psycopg = ["psycopg (>=3.0.7)"]
4184
- postgresql-psycopg2binary = ["psycopg2-binary"]
4185
- postgresql-psycopg2cffi = ["psycopg2cffi"]
4186
- pymysql = ["pymysql"]
4187
- sqlcipher = ["sqlcipher3-binary"]
4188
-
4189
  [[package]]
4190
  name = "stable-baselines3"
4191
  version = "1.7.0"
@@ -4720,4 +4463,4 @@ testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools"
4720
  [metadata]
4721
  lock-version = "2.0"
4722
  python-versions = "~3.10"
4723
- content-hash = "fd25a832697733486d6a5b04cc58e393f70164ca2406e9a172e14b6f65c179a9"
 
44
  [package.extras]
45
  test = ["gym", "pytest"]
46
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  [[package]]
48
  name = "anyio"
49
  version = "3.6.2"
 
600
  {file = "cloudpickle-2.2.0.tar.gz", hash = "sha256:3f4219469c55453cfe4737e564b67c2a149109dabf7f242478948b895f61106f"},
601
  ]
602
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
603
  [[package]]
604
  name = "colorama"
605
  version = "0.4.6"
 
612
  {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
613
  ]
614
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
615
  [[package]]
616
  name = "comm"
617
  version = "0.1.2"
 
1185
  [package.extras]
1186
  tool = ["click (>=6.0.0)"]
1187
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1188
  [[package]]
1189
  name = "grpcio"
1190
  version = "1.51.1"
 
1985
  {file = "lockfile-0.12.2.tar.gz", hash = "sha256:6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799"},
1986
  ]
1987
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1988
  [[package]]
1989
  name = "markdown"
1990
  version = "3.4.1"
 
2649
  {version = ">=1.17.3", markers = "python_version >= \"3.8\""},
2650
  ]
2651
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2652
  [[package]]
2653
  name = "packaging"
2654
  version = "23.0"
 
3929
  {file = "soupsieve-2.3.2.post1.tar.gz", hash = "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d"},
3930
  ]
3931
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3932
  [[package]]
3933
  name = "stable-baselines3"
3934
  version = "1.7.0"
 
4463
  [metadata]
4464
  lock-version = "2.0"
4465
  python-versions = "~3.10"
4466
+ content-hash = "ab3cf6f3768a3f2d608f049b0ee69c9224dd1530f0bd392a4116f23597aaf34a"
pyproject.toml CHANGED
@@ -29,7 +29,6 @@ numexpr = "^2.8.4"
29
  gym3 = "^0.3.3"
30
  glfw = "1.12.0"
31
  ipython = "^8.10.0"
32
- optuna = "^3.1.0"
33
 
34
  [build-system]
35
  requires = ["poetry-core"]
 
29
  gym3 = "^0.3.3"
30
  glfw = "1.12.0"
31
  ipython = "^8.10.0"
 
32
 
33
  [build-system]
34
  requires = ["poetry-core"]
replay.meta.json CHANGED
@@ -1 +1 @@
1
- {"content_type": "video/mp4", "encoder_version": {"backend": "ffmpeg", "version": "b'ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developers\\nbuilt with clang version 14.0.6\\nconfiguration: --prefix=/Users/runner/miniforge3/conda-bld/ffmpeg_1671040513231/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl --cc=arm64-apple-darwin20.0.0-clang --cxx=arm64-apple-darwin20.0.0-clang++ --nm=arm64-apple-darwin20.0.0-nm --ar=arm64-apple-darwin20.0.0-ar --disable-doc --disable-openssl --enable-demuxer=dash --enable-hardcoded-tables --enable-libfreetype --enable-libfontconfig --enable-libopenh264 --enable-cross-compile --arch=arm64 --target-os=darwin --cross-prefix=arm64-apple-darwin20.0.0- --host-cc=/Users/runner/miniforge3/conda-bld/ffmpeg_1671040513231/_build_env/bin/x86_64-apple-darwin13.4.0-clang --enable-neon --enable-gnutls --enable-libmp3lame --enable-libvpx --enable-pthreads --enable-gpl --enable-libx264 --enable-libx265 --enable-libaom --enable-libsvtav1 --enable-libxml2 --enable-pic --enable-shared --disable-static --enable-version3 --enable-zlib --pkg-config=/Users/runner/miniforge3/conda-bld/ffmpeg_1671040513231/_build_env/bin/pkg-config\\nlibavutil 57. 28.100 / 57. 28.100\\nlibavcodec 59. 37.100 / 59. 37.100\\nlibavformat 59. 27.100 / 59. 27.100\\nlibavdevice 59. 7.100 / 59. 7.100\\nlibavfilter 8. 44.100 / 8. 44.100\\nlibswscale 6. 7.100 / 6. 7.100\\nlibswresample 4. 7.100 / 4. 7.100\\nlibpostproc 56. 6.100 / 56. 6.100\\n'", "cmdline": ["ffmpeg", "-nostats", "-loglevel", "error", "-y", "-f", "rawvideo", "-s:v", "1200x800", "-pix_fmt", "rgb24", "-framerate", "50", "-i", "-", "-vf", "scale=trunc(iw/2)*2:trunc(ih/2)*2", "-vcodec", "libx264", "-pix_fmt", "yuv420p", "-r", "50", "/var/folders/9g/my5557_91xddp6lx00nkzly80000gn/T/tmp8nyd9a4e/a2c-CartPole-v1/replay.mp4"]}, "episode": {"r": 500.0, "l": 500, "t": 5.747281}}
 
1
+ {"content_type": "video/mp4", "encoder_version": {"backend": "ffmpeg", "version": "b'ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developers\\nbuilt with clang version 14.0.6\\nconfiguration: --prefix=/Users/runner/miniforge3/conda-bld/ffmpeg_1671040513231/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl --cc=arm64-apple-darwin20.0.0-clang --cxx=arm64-apple-darwin20.0.0-clang++ --nm=arm64-apple-darwin20.0.0-nm --ar=arm64-apple-darwin20.0.0-ar --disable-doc --disable-openssl --enable-demuxer=dash --enable-hardcoded-tables --enable-libfreetype --enable-libfontconfig --enable-libopenh264 --enable-cross-compile --arch=arm64 --target-os=darwin --cross-prefix=arm64-apple-darwin20.0.0- --host-cc=/Users/runner/miniforge3/conda-bld/ffmpeg_1671040513231/_build_env/bin/x86_64-apple-darwin13.4.0-clang --enable-neon --enable-gnutls --enable-libmp3lame --enable-libvpx --enable-pthreads --enable-gpl --enable-libx264 --enable-libx265 --enable-libaom --enable-libsvtav1 --enable-libxml2 --enable-pic --enable-shared --disable-static --enable-version3 --enable-zlib --pkg-config=/Users/runner/miniforge3/conda-bld/ffmpeg_1671040513231/_build_env/bin/pkg-config\\nlibavutil 57. 28.100 / 57. 28.100\\nlibavcodec 59. 37.100 / 59. 37.100\\nlibavformat 59. 27.100 / 59. 27.100\\nlibavdevice 59. 7.100 / 59. 7.100\\nlibavfilter 8. 44.100 / 8. 44.100\\nlibswscale 6. 7.100 / 6. 7.100\\nlibswresample 4. 7.100 / 4. 7.100\\nlibpostproc 56. 6.100 / 56. 6.100\\n'", "cmdline": ["ffmpeg", "-nostats", "-loglevel", "error", "-y", "-f", "rawvideo", "-s:v", "1200x800", "-pix_fmt", "rgb24", "-framerate", "50", "-i", "-", "-vf", "scale=trunc(iw/2)*2:trunc(ih/2)*2", "-vcodec", "libx264", "-pix_fmt", "yuv420p", "-r", "50", "/var/folders/9g/my5557_91xddp6lx00nkzly80000gn/T/tmpgtamjs9u/a2c-CartPole-v1/replay.mp4"]}, "episode": {"r": 500.0, "l": 500, "t": 5.530564}}
runner/env.py CHANGED
@@ -26,6 +26,7 @@ from wrappers.initial_step_truncate_wrapper import InitialStepTruncateWrapper
26
  from wrappers.is_vector_env import IsVectorEnv
27
  from wrappers.noop_env_seed import NoopEnvSeed
28
  from wrappers.normalize import NormalizeObservation, NormalizeReward
 
29
  from wrappers.transpose_image_observation import TransposeImageObservation
30
  from wrappers.vectorable_wrapper import VecEnv
31
  from wrappers.video_compat_wrapper import VideoCompatWrapper
@@ -180,6 +181,8 @@ def _make_vec_env(
180
  else:
181
  raise ValueError(f"env_type {env_type} unsupported")
182
  envs = VecEnvClass([make(i) for i in range(n_envs)])
 
 
183
  if training:
184
  assert tb_writer
185
  envs = EpisodeStatsWriter(
 
26
  from wrappers.is_vector_env import IsVectorEnv
27
  from wrappers.noop_env_seed import NoopEnvSeed
28
  from wrappers.normalize import NormalizeObservation, NormalizeReward
29
+ from wrappers.sync_vector_env_render_compat import SyncVectorEnvRenderCompat
30
  from wrappers.transpose_image_observation import TransposeImageObservation
31
  from wrappers.vectorable_wrapper import VecEnv
32
  from wrappers.video_compat_wrapper import VideoCompatWrapper
 
181
  else:
182
  raise ValueError(f"env_type {env_type} unsupported")
183
  envs = VecEnvClass([make(i) for i in range(n_envs)])
184
+ if env_type == "gymvec" and vec_env_class == "sync":
185
+ envs = SyncVectorEnvRenderCompat(envs)
186
  if training:
187
  assert tb_writer
188
  envs = EpisodeStatsWriter(
shared/callbacks/eval_callback.py CHANGED
@@ -75,7 +75,9 @@ def evaluate(
75
  print_returns: bool = True,
76
  ignore_first_episode: bool = False,
77
  ) -> EpisodesStats:
 
78
  policy.eval()
 
79
  episodes = EvaluateAccumulator(
80
  env.num_envs, n_episodes, print_returns, ignore_first_episode
81
  )
@@ -137,7 +139,6 @@ class EvalCallback(Callback):
137
  def on_step(self, timesteps_elapsed: int = 1) -> bool:
138
  super().on_step(timesteps_elapsed)
139
  if self.timesteps_elapsed // self.step_freq >= len(self.stats):
140
- self.policy.sync_normalization(self.env)
141
  self.evaluate()
142
  return True
143
 
@@ -176,7 +177,6 @@ class EvalCallback(Callback):
176
  )
177
  if strictly_better and self.record_best_videos:
178
  assert self.video_env and self.best_video_dir
179
- self.policy.sync_normalization(self.video_env)
180
  self.best_video_base_path = os.path.join(
181
  self.best_video_dir, str(self.timesteps_elapsed)
182
  )
 
75
  print_returns: bool = True,
76
  ignore_first_episode: bool = False,
77
  ) -> EpisodesStats:
78
+ policy.sync_normalization(env)
79
  policy.eval()
80
+
81
  episodes = EvaluateAccumulator(
82
  env.num_envs, n_episodes, print_returns, ignore_first_episode
83
  )
 
139
  def on_step(self, timesteps_elapsed: int = 1) -> bool:
140
  super().on_step(timesteps_elapsed)
141
  if self.timesteps_elapsed // self.step_freq >= len(self.stats):
 
142
  self.evaluate()
143
  return True
144
 
 
177
  )
178
  if strictly_better and self.record_best_videos:
179
  assert self.video_env and self.best_video_dir
 
180
  self.best_video_base_path = os.path.join(
181
  self.best_video_dir, str(self.timesteps_elapsed)
182
  )
wrappers/sync_vector_env_render_compat.py ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+
3
+ from gym.vector.sync_vector_env import SyncVectorEnv
4
+ from stable_baselines3.common.vec_env.base_vec_env import tile_images
5
+ from typing import Optional
6
+
7
+ from wrappers.vectorable_wrapper import (
8
+ VecotarableWrapper,
9
+ )
10
+
11
+
12
+ class SyncVectorEnvRenderCompat(VecotarableWrapper):
13
+ def __init__(self, env) -> None:
14
+ super().__init__(env)
15
+
16
+ def render(self, mode: str = "human") -> Optional[np.ndarray]:
17
+ base_env = self.env.unwrapped
18
+ if isinstance(base_env, SyncVectorEnv):
19
+ imgs = [env.render(mode="rgb_array") for env in base_env.envs]
20
+ bigimg = tile_images(imgs)
21
+ if mode == "human":
22
+ import cv2
23
+
24
+ cv2.imshow("vecenv", bigimg[:, :, ::-1])
25
+ cv2.waitKey(1)
26
+ elif mode == "rgb_array":
27
+ return bigimg
28
+ else:
29
+ raise NotImplemented(f"Render mode {mode} is not supported")
30
+ else:
31
+ return self.env.render(mode=mode)
wrappers/vec_episode_recorder.py CHANGED
@@ -1,9 +1,6 @@
1
  import numpy as np
2
 
3
- from gym.vector.sync_vector_env import SyncVectorEnv
4
  from gym.wrappers.monitoring.video_recorder import VideoRecorder
5
- from stable_baselines3.common.vec_env.base_vec_env import tile_images
6
- from typing import Optional
7
 
8
  from wrappers.vectorable_wrapper import (
9
  VecotarableWrapper,
@@ -45,7 +42,7 @@ class VecEpisodeRecorder(VecotarableWrapper):
45
  self._close_video_recorder()
46
 
47
  self.video_recorder = VideoRecorder(
48
- SyncVectorEnvRenderCompat(self.env),
49
  base_path=self.base_path,
50
  )
51
 
@@ -56,25 +53,3 @@ class VecEpisodeRecorder(VecotarableWrapper):
56
  if self.video_recorder:
57
  self.video_recorder.close()
58
  self.video_recorder = None
59
-
60
-
61
- class SyncVectorEnvRenderCompat(VecotarableWrapper):
62
- def __init__(self, env) -> None:
63
- super().__init__(env)
64
-
65
- def render(self, mode: str = "human") -> Optional[np.ndarray]:
66
- base_env = self.env.unwrapped
67
- if isinstance(base_env, SyncVectorEnv):
68
- imgs = [env.render(mode="rgb_array") for env in base_env.envs]
69
- bigimg = tile_images(imgs)
70
- if mode == "humnan":
71
- import cv2
72
-
73
- cv2.imshow("vecenv", bigimg[:, :, ::-1])
74
- cv2.waitKey(1)
75
- elif mode == "rgb_array":
76
- return bigimg
77
- else:
78
- raise NotImplemented(f"Render mode {mode} is not supported")
79
- else:
80
- return self.env.render(mode=mode)
 
1
  import numpy as np
2
 
 
3
  from gym.wrappers.monitoring.video_recorder import VideoRecorder
 
 
4
 
5
  from wrappers.vectorable_wrapper import (
6
  VecotarableWrapper,
 
42
  self._close_video_recorder()
43
 
44
  self.video_recorder = VideoRecorder(
45
+ self.env,
46
  base_path=self.base_path,
47
  )
48
 
 
53
  if self.video_recorder:
54
  self.video_recorder.close()
55
  self.video_recorder = None