2019-08-10 00:19:52 +02:00
from gym import RewardWrapper
2021-07-28 22:21:47 -04:00
import warnings
2019-08-10 00:19:52 +02:00
class TransformReward ( RewardWrapper ) :
r """ Transform the reward via an arbitrary function.
Example : :
>> > import gym
>> > env = gym . make ( ' CartPole-v1 ' )
>> > env = TransformReward ( env , lambda r : 0.01 * r )
>> > env . reset ( )
>> > observation , reward , done , info = env . step ( env . action_space . sample ( ) )
>> > reward
0.01
Args :
env ( Env ) : environment
f ( callable ) : a function that transforms the reward
"""
2021-07-29 02:26:34 +02:00
2019-08-10 00:19:52 +02:00
def __init__ ( self , env , f ) :
super ( TransformReward , self ) . __init__ ( env )
assert callable ( f )
2021-07-28 22:21:47 -04:00
warnings . warn ( " Gym \' s internal preprocessing wrappers are now deprecated. While they will continue to work for the foreseeable future, we strongly recommend using SuperSuit instead: https://github.com/PettingZoo-Team/SuperSuit " )
2019-08-10 00:19:52 +02:00
self . f = f
def reward ( self , reward ) :
return self . f ( reward )