amidos2006 / gym-pcgrl

A package for "Procedural Content Generation via Reinforcement Learning" OpenAI Gym interface.
MIT License
113 stars 27 forks source link

Can't seem to run train.py on OS X catalina #8

Closed KAltieri closed 4 years ago

KAltieri commented 4 years ago

Hello,

I tried to run the train.py file when playing around with the project, and can't seem to run it. When I try to run it through terminal with everything installed i get the error: File "train.py", line 81 **kwargs, ^ SyntaxError: invalid syntax

I double checked and all my pythons, pips, tensorflow and stable-baseline are up to date.

So I tried it through docker. However, when I try to run it through docker I get this: docker: Error response from daemon: Unknown runtime specified nvidia.

I've tried searching for other ways to run it and I can't seem to find anything. Any help would be appreciated.

amidos2006 commented 4 years ago

What is your python version?

KAltieri commented 4 years ago

Python version is: Python 2.7.16 Python3 version is: Python 3.8.1

amidos2006 commented 4 years ago

First of all, make sure you are always using new python (3.5 or newer) don't try 2.7 ever and make sure that when you try to run train.py that this is the case.

The error you are getting is because you are trying to run the code using python 2.7. Here is an experiment showing that **varName is not supported in 2.7 (copied from my console): Error with Python 2.7

Here is the same experiment with newer python (3.5.2): Running Successful

To make sure this is not happening always use anaconda to manage your virtual environment so there is not two python version installed at the same place.

KAltieri commented 4 years ago

Okay so I tried the anaconda way of doing it based on the ReadMe and got this error when trying to run the train.py after installing the necessary dependencies:

Traceback (most recent call last): File "train.py", line 5, in from model import FullyConvPolicyBigMap, FullyConvPolicySmallMap, CustomPolicyBigMap, CustomPolicySmallMap ImportError: cannot import name 'FullyConvPolicyBigMap' from 'model' (/Users/Kevin/Desktop/gym-pcgrl/model.py)

Is there a step that I misread from the readme? Thanks!

amidos2006 commented 4 years ago

Are you sure the model.py is there beside train.py because that error means it can't see model.py

KAltieri commented 4 years ago

the model.py is there, I have made no changes to the original repo

amidos2006 commented 4 years ago

mmm... I don't get why it can't see that python file. Just try in the python console to import any class from model.py if It can't maybe OSX Catalina has some security issues.

KAltieri commented 4 years ago

alright thanks

smearle commented 4 years ago

There are a few different "Policy" classes defined in model.py, maybe train.py is trying to import a Policy that is not defined in model.py. You might get away with commenting out the offending import.

KAltieri commented 4 years ago

So that tip was helpful, I got rid of the FullyConvPolicyBigMap issue, but now my new issue is that its looking for a file called policy. Is there one that should be there that I'm missing, or is it something else entirely?

Traceback (most recent call last): File "train.py", line 8, in from policy import PPO2 ModuleNotFoundError: No module named 'policy'

smearle commented 4 years ago

You must be on the experimental FractalNet branch. Try git checkout master then open train.py: there should be no such import line (instead, on line 8, we'll be importing policies from stable_baselines).

amidos2006 commented 4 years ago

Yup, I was trying to understand what is happening because that code looks old with some new one.

KAltieri commented 4 years ago

Okay thanks! Maybe thats where all my issues are stemming from

smearle commented 4 years ago

I just tried cloning a fresh repository, and can confirm that was on the master branch, and code was able to run (after making a 'runs' directory to log training progress). You must have accidentally switched branches somehow. You can run git branch -a to view all available branches (I should probably delete most of them...), and check which branch you are on.