Description
Thanks for all of your help so far! I am running into an issue applying the garage repo to the gym environments that are released with the opensim package. I've modified the models so that the spec variables are as required by garage.
The issue I am hitting now seems to be that the pickling process can't work effectively for the environments provided. Namely, there is a SwigPy object in the init which cant be serialized. Is there any way to get around this other than excising this object from the environment?
Relevant error message below:
Thanks!
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/site-packages/garage/sampler/off_policy_vectorized_sampler.py", line 61, in for _ in range(n_envs)
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/site-packages/cloudpickle/cloudpickle.py", line 1125, in dumps cp.dump(obj)
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/site-packages/cloudpickle/cloudpickle.py", line 482, in dump return Pickler.dump(self, obj)
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 409, in dump self.save(obj)
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 521, in save self.save_reduce(obj=obj, *rv)
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 634, in save_reduce save(state)
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 476, in save f(self, obj) # Call unbound method with explicit self
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 821, in save_dict self._batch_setitems(obj.items())
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 847, in _batch_setitems save(v)
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 521, in save self.save_reduce(obj=obj, *rv)
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 634, in save_reduce save(state)
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 476, in save f(self, obj) # Call unbound method with explicit self
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 821, in save_dict self._batch_setitems(obj.items())
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 847, in _batch_setitems save(v)
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 521, in save self.save_reduce(obj=obj, *rv)
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 634, in save_reduce save(state)
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 476, in save f(self, obj) # Call unbound method with explicit self
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 821, in save_dict self._batch_setitems(obj.items())
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 852, in _batch_setitems save(v)
File "/home/chris/anaconda3/envs/osimRL/lib/python3.6/pickle.py", line 496, in save rv = reduce(self.proto)
TypeError: can't pickle SwigPyObject objects