def copy(self): """need to reimplement this because the __init__ signature of IntDict is not identical to that of defaultdict""" result = IntDict(self.parent) defaultdict.update(result, self) # see http://www.logilab.org/ticket/23986 return result
def __init__(self, item_coder_data=None, properties=None, boundary_types=None, boundary_format=BoundaryFormat.mass): ''' Initialize a dataset. ''' defaultdict.__init__(self, dict) self.properties = dict() self.boundary_format = boundary_format # Masses if item_coder_data is not None and item_coder_data is not dict: defaultdict.update(self, item_coder_data) # Properties if properties is not None: self.properties.update(properties) # Boundary types if boundary_types is not None: self.boundary_types = set(boundary_types) else: self.boundary_types = set([1]) # Coders self.coders = set() # Populate coders for coder_masses in defaultdict.values(self): for coder in coder_masses.keys(): self.coders.add(coder)
def runTrails(self, alphas=[0.001, 0.005, 0.00592], betas=[0.0003, 0.0005, 0.00798], lambdas=[0, 0.2, 0.4, 0.6], degree=[3], path="Result/"): print("actor_critic(lambda)\n") log = "alpha beta lambda2 degree mean_return max_return last_return\n" dict = {} for alpha in alphas: for beta in betas: for lambda2 in lambdas: trails = [] for i in range(self.trail_n): if self.state_type == "continue": result = self.run(alpha=alpha, beta=beta, lambda2=lambda2) else: result = self.run_Tabular(alpha=alpha, beta=beta) trails.append(result) path_temp = path + self.env_name + "/" + self.agent_name + "/" name = path_temp + str(alpha) + "_" + str( beta) + "_" + str(lambda2)+"_"+\ str(self.degree) name = name.replace(".", "") pickle.dump(trails, open(name, "wb")) plot_trails(trails, name) trails = np.array(trails) trails = trails[:, 90:] dict.update({ str(alpha) + "_" + str(beta) + "_" + str(lambda2) + "_" + str(self.degree): np.mean(trails) }) print("done one trails", np.mean(trails)) sorted_J = sorted(dict.items(), key=operator.itemgetter(1), reverse=True) print(str(sorted_J[0])) f = open(path_temp + 'log.txt', 'a') f.write(str(sorted_J)) f.write("\n") f.close()
def runTrails(self, alphas=[0.001, 0.002, 0.003, 0.008], epsilons=[0.008, 0.01, 0.05], lambda2s=[0, 0.3, 0.5, 0.8], path="Result/"): log = "alpha epsilon lambuda degree mean_return max_return last_return\n" dict = {} for alpha in alphas: for epsilon in epsilons: for lambda2 in lambda2s: trails = [] for i in range(self.trail_n): if self.state_type == "continue": result = self.run(alpha=alpha, epsilon=epsilon, lambda2=lambda2) else: result = self.run_tabular(alpha=alpha, epsilon=epsilon, lambda2=lambda2) print("done one", i) trails.append(result) path_t = path + self.env_name + "/" + self.agent_name + "/" name = path_t + str(alpha) + "_" + str( epsilon) + "_" + str(lambda2) + "_" + str(self.degree) name = name.replace(".", "") pickle.dump(trails, open(name, "wb")) plot_trails(trails, name) trails = np.array(trails) trails = trails[:, 90:] dict.update({ str(alpha) + "_" + str(epsilon) + "_" + str(lambda2) + "_" + str(self.degree): np.mean(trails) }) print("done one trails", np.mean(trails)) sorted_J = sorted(dict.items(), key=operator.itemgetter(1), reverse=True) print(sorted_J[0]) f = open(path_t + 'log.txt', 'a') f.write(str(sorted_J)) f.write("\n") f.close()