so some stuff is defenetly working ... and crafting too. soo lets merge

This commit is contained in:
2023-01-17 09:31:33 +01:00
parent 30b634a322
commit e15841914d
7 changed files with 386 additions and 28 deletions
+26 -7
View File
@@ -52,7 +52,7 @@ env_config = {
# ===== SCENARIO CLASS ARGUMENTS =====
# (optional) kwargs that are added by the Scenario class (i.e. not defined in BaseEnvironment)
'starting_agent_coin': 10,
'starting_agent_coin': 50,
'fixed_four_skill_and_loc': True,
# ===== STANDARD ARGUMENTS ======
@@ -60,6 +60,7 @@ env_config = {
'agent_composition': {"BasicMobileAgent": 20,"TradingAgent":5}, # Number of non-planner agents (must be > 1)
'world_size': [5, 5], # [Height, Width] of the env world
'episode_length': 256, # Number of timesteps per episode
'isoelastic_eta':0.001,
'allow_observation_scaling': True,
'dense_log_frequency': 100,
'world_dense_log_frequency':1,
@@ -107,7 +108,7 @@ eval_env_config = {
# ===== SCENARIO CLASS ARGUMENTS =====
# (optional) kwargs that are added by the Scenario class (i.e. not defined in BaseEnvironment)
'starting_agent_coin': 10,
'starting_agent_coin': 50,
'fixed_four_skill_and_loc': True,
# ===== STANDARD ARGUMENTS ======
@@ -116,6 +117,7 @@ eval_env_config = {
'world_size': [1, 1], # [Height, Width] of the env world
'episode_length': 256, # Number of timesteps per episode
'allow_observation_scaling': True,
'isoelastic_eta':0.001,
'dense_log_frequency': 1,
'world_dense_log_frequency':1,
'energy_cost':0,
@@ -135,7 +137,7 @@ eval_env_config = {
'flatten_masks': True,
}
num_frames=5
num_frames=1
class TensorboardCallback(BaseCallback):
"""
@@ -161,6 +163,23 @@ class TensorboardCallback(BaseCallback):
return True
min_at_target_basic=0.5
min_lr_basic=5e-6
start_lr_basic=9e-4
min_at_target_trade=0.5
min_lr_trade=5e-6
start_lr_trade=9e-4
def learning_rate_adj_basic(x) -> float:
diff=start_lr_basic-min_lr_basic
lr=min_lr_basic+x*diff
return lr
def learning_rate_adj_trade(x) -> float:
diff=start_lr_trade-min_lr_trade
lr=min_lr_basic+x*diff
return lr
def printMarket(market):
for i in range(len(market)):
@@ -273,8 +292,8 @@ runname="run_{}".format(run_number)
model_db=[None,None] # object for storing model
model = MaskablePPO("MlpPolicy",n_steps=int(env_config['episode_length']*2),ent_coef=0.1, vf_coef=0.5 ,gamma=0.99, learning_rate=1e-5,env=stackenv_basic, seed=300,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.5 ,gamma=0.99, learning_rate=1e-5,env=stackenv_traid, seed=300,verbose=1,device="cuda",tensorboard_log="./log")
model = MaskablePPO("MlpPolicy",n_steps=int(env_config['episode_length']*2),ent_coef=0.1, vf_coef=0.5 ,gamma=0.99, learning_rate=learning_rate_adj_basic,env=stackenv_basic, seed=445,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.5 ,gamma=0.99, learning_rate=learning_rate_adj_trade,env=stackenv_traid, seed=445,verbose=1,device="cuda",tensorboard_log="./log")
n_agents=econ.n_agents
@@ -289,9 +308,9 @@ while True:
#Train
runname="run_{}_{}".format(run_number,"basic")
thread_model=Thread(target=train,args=(model,total_required_for_episode_basic*50,econ,True,runname,model_db,0))
thread_model=Thread(target=train,args=(model,total_required_for_episode_basic*150,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_traid*50,econ,False,runname,model_db,1))
thread_model_traid=Thread(target=train,args=(model_trade,total_required_for_episode_traid*150,econ,False,runname,model_db,1))
thread_model.start()
thread_model_traid.start()