its not braking anymore
This commit is contained in:
@@ -23,6 +23,7 @@ from envs.econ_wrapper import EconVecEnv
|
||||
from stable_baselines3.common.callbacks import BaseCallback
|
||||
import yaml
|
||||
import time
|
||||
from threading import Thread
|
||||
|
||||
env_config = {
|
||||
# ===== SCENARIO CLASS =====
|
||||
@@ -61,7 +62,7 @@ env_config = {
|
||||
'allow_observation_scaling': True,
|
||||
'dense_log_frequency': 100,
|
||||
'world_dense_log_frequency':1,
|
||||
'energy_cost':0.21,
|
||||
'energy_cost':0,
|
||||
'energy_warmup_method': "auto",
|
||||
'energy_warmup_constant': 4000,
|
||||
|
||||
@@ -116,7 +117,7 @@ eval_env_config = {
|
||||
'allow_observation_scaling': True,
|
||||
'dense_log_frequency': 10,
|
||||
'world_dense_log_frequency':1,
|
||||
'energy_cost':0.21,
|
||||
'energy_cost':0,
|
||||
'energy_warmup_method': "auto",
|
||||
'energy_warmup_constant': 4000,
|
||||
|
||||
@@ -223,23 +224,33 @@ baseEconWrapper=BaseEconWrapper(econ)
|
||||
baseEconWrapper.run()
|
||||
mobileRecieverEconWrapper=RecieverEconWrapper(base_econ=baseEconWrapper,agent_classname="BasicMobileAgent")
|
||||
tradeRecieverEconWrapper=RecieverEconWrapper(base_econ=baseEconWrapper,agent_classname="TradingAgent")
|
||||
sb3_traderConverter=SB3EconConverter(tradeRecieverEconWrapper,econ,"TradingAgent")
|
||||
sb3Converter=SB3EconConverter(mobileRecieverEconWrapper,econ,"BasicMobileAgent")
|
||||
#obs=sb3Converter.reset()
|
||||
#vecenv=EconVecEnv(env_config=env_config)
|
||||
|
||||
monenv=VecMonitor(venv=sb3Converter,info_keywords=["social/productivity","trend/productivity"])
|
||||
|
||||
montraidingenv=VecMonitor(venv=sb3_traderConverter)
|
||||
#normenv=VecNormalize(sb3Converter,norm_reward=False,clip_obs=1)
|
||||
#stackenv=vec_frame_stack.VecFrameStack(venv=monenv,n_stack=10)
|
||||
obs=monenv.reset()
|
||||
|
||||
|
||||
# define training functions
|
||||
def train(model,timesteps, econ_call,process_bar,name,db,index):
|
||||
db[index]=model.learn(total_timesteps=timesteps,progress_bar=process_bar,reset_num_timesteps=False,tb_log_name=name,callback=TensorboardCallback(econ_call))
|
||||
|
||||
|
||||
|
||||
runname="run_{}".format(int(np.random.rand()*100))
|
||||
# prepare training
|
||||
run_number=int(np.random.rand()*100)
|
||||
runname="run_{}".format(run_number)
|
||||
model_db=[] # object for storing model
|
||||
|
||||
|
||||
model = MaskablePPO("MlpPolicy",n_steps=int(env_config['episode_length']*2),ent_coef=0.1, vf_coef=0.8 ,gamma=0.95, learning_rate=5e-3,env=monenv, seed=225,verbose=1,device="cuda",tensorboard_log="./log")
|
||||
model_trade=MaskablePPO("MlpPolicy",n_steps=int(env_config['episode_length']*2),ent_coef=0.1, vf_coef=0.8 ,gamma=0.95, learning_rate=5e-3,env=montraidingenv, seed=225,verbose=1,device="cuda",tensorboard_log="./log")
|
||||
|
||||
n_agents=econ.n_agents
|
||||
total_required_for_episode=n_agents*env_config['episode_length']
|
||||
print("this is run {}".format(runname))
|
||||
@@ -249,11 +260,21 @@ eval_base_econ.run()
|
||||
eval_mobileRecieverEconWrapper=RecieverEconWrapper(eval_base_econ,"BasicMobileAgent")
|
||||
time.sleep(0.5)
|
||||
eval_sb3_converter=SB3EconConverter(eval_mobileRecieverEconWrapper,eval_econ,"BasicMobileAgent")
|
||||
|
||||
while True:
|
||||
# Create Eval ENV
|
||||
vec_mon_eval=VecMonitor(venv=eval_sb3_converter)
|
||||
#Train
|
||||
model=model.learn(total_timesteps=total_required_for_episode*10,progress_bar=True,reset_num_timesteps=False,tb_log_name=runname,callback=TensorboardCallback(econ=econ))
|
||||
runname="run_{}_{}".format(run_number,"basic")
|
||||
|
||||
thread_model=Thread(target=train,args=(model,total_required_for_episode*10,econ,True,runname,model_db,0))
|
||||
runname="run_{}_{}".format(run_number,"trader")
|
||||
thread_model_traid=Thread(target=train,args=(model_trade,total_required_for_episode*10,econ,False,runname,model_db,1))
|
||||
|
||||
thread_model.start()
|
||||
thread_model_traid.start()
|
||||
thread_model.join()
|
||||
thread_model_traid.join()
|
||||
#normenv.save("temp-normalizer.ai")
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user