From 83530560b54e9f41108b175bf9934f4cdff9d754 Mon Sep 17 00:00:00 2001 From: "Steven H. Wang" Date: Tue, 21 Jul 2020 01:12:39 -0700 Subject: [PATCH] Fix CloudpickleWrapper load (#118) * CloudpickleWrapper: Load using cloudpickle * Update changelog --- docs/misc/changelog.rst | 3 ++- stable_baselines3/common/vec_env/base_vec_env.py | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/misc/changelog.rst b/docs/misc/changelog.rst index 722e9e7..9d4a1c2 100644 --- a/docs/misc/changelog.rst +++ b/docs/misc/changelog.rst @@ -30,6 +30,7 @@ Bug Fixes: ^^^^^^^^^^ - Fixed a bug in the ``close()`` method of ``SubprocVecEnv``, causing wrappers further down in the wrapper stack to not be closed. (@NeoExtended) - Fix target for updating q values in SAC: the entropy term was not conditioned by terminals states +- Use ``cloudpickle.load`` instead of ``pickle.load`` in ``CloudpickleWrapper``. (@shwang) Deprecations: ^^^^^^^^^^^^^ @@ -355,4 +356,4 @@ And all the contributors: @Miffyli @dwiel @miguelrass @qxcv @jaberkow @eavelardev @ruifeng96150 @pedrohbtp @srivatsankrishnan @evilsocket @MarvineGothic @jdossgollin @SyllogismRXS @rusu24edward @jbulow @Antymon @seheevic @justinkterry @edbeeching @flodorner @KuKuXia @NeoExtended @PartiallyTyped @mmcenta @richardwu @kinalmehta @rolandgvc @tkelestemur @mloo3 -@tirafesi @blurLake @koulakis @joeljosephjin +@tirafesi @blurLake @koulakis @joeljosephjin @shwang diff --git a/stable_baselines3/common/vec_env/base_vec_env.py b/stable_baselines3/common/vec_env/base_vec_env.py index 6b5a421..6338a30 100644 --- a/stable_baselines3/common/vec_env/base_vec_env.py +++ b/stable_baselines3/common/vec_env/base_vec_env.py @@ -1,5 +1,4 @@ import inspect -import pickle from abc import ABC, abstractmethod from typing import List, Optional, Sequence, Union @@ -349,7 +348,7 @@ class VecEnvWrapper(VecEnv): return shadowed_wrapper_class -class CloudpickleWrapper(object): +class CloudpickleWrapper: def __init__(self, var): """ Uses cloudpickle to serialize contents (otherwise multiprocessing tries to use pickle) @@ -362,4 +361,4 @@ class CloudpickleWrapper(object): return cloudpickle.dumps(self.var) def __setstate__(self, obs): - self.var = pickle.loads(obs) + self.var = cloudpickle.loads(obs)