From e75883a5fb397e2bb5ae86c340f41cade8b49304 Mon Sep 17 00:00:00 2001 From: rtz19970824 <1289226405@qq.com> Date: Fri, 22 Dec 2017 13:04:02 +0800 Subject: [PATCH] debug the training process, initialize a nameserver if no nameserver exists --- AlphaGo/model.py | 15 ++++++++++++--- AlphaGo/play.py | 10 ++++++++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/AlphaGo/model.py b/AlphaGo/model.py index 41f3a47..541de81 100644 --- a/AlphaGo/model.py +++ b/AlphaGo/model.py @@ -203,7 +203,8 @@ class ResNet(object): iters = 0 while True: new_file_list = list(set(os.listdir(data_path)).difference(all_file_list)) - all_file_list = os.listdir(data_path) + if new_file_list: + all_file_list = os.listdir(data_path) new_file_list.sort( key=lambda file: os.path.getmtime(data_path + file) if not os.path.isdir(data_path + file) else 0) if new_file_list: @@ -241,8 +242,16 @@ class ResNet(object): self.saver.save(self.sess, self.checkpoint_path + save_path) def _file_to_training_data(self, file_name): - with open(file_name, 'r') as file: - data = cPickle.load(file) + read = False + with open(file_name, 'rb') as file: + while not read: + try: + file.seek(0) + data = cPickle.load(file) + read = True + except Exception as e: + print(e) + time.sleep(1) history = deque(maxlen=self.history_length) states = [] probs = [] diff --git a/AlphaGo/play.py b/AlphaGo/play.py index a8267a7..3681430 100644 --- a/AlphaGo/play.py +++ b/AlphaGo/play.py @@ -50,6 +50,12 @@ if __name__ == '__main__': # print "Start Name Sever : " + str(start_new_server.pid) # + str(start_new_server.wait()) # time.sleep(1) + # start a name server if no name server exists + if len(os.popen('ps aux | grep pyro4-ns | grep -v grep').readlines()) == 0: + start_new_server = subprocess.Popen(['pyro4-ns', '&']) + print "Start Name Sever : " + str(start_new_server.pid) # + str(start_new_server.wait()) + time.sleep(1) + # start two different player with different network weights. black_role_name = 'black' + str(args.id) white_role_name = 'white' + str(args.id) @@ -137,13 +143,13 @@ if __name__ == '__main__': file_list.sort(key=lambda file: os.path.getmtime(args.result_path + file) if not os.path.isdir( args.result_path + file) else 0) data_num = eval(file_list[-1][:-4]) + 1 - with open("./data/" + str(data_num) + ".pkl", "w") as file: + with open("./data/" + str(data_num) + ".pkl", "wb") as file: picklestring = cPickle.dump(data, file) data.reset() game_num += 1 except Exception as e: - print(e) + print(e) subprocess.call(["kill", "-9", str(agent_v0.pid)]) subprocess.call(["kill", "-9", str(agent_v1.pid)]) print "Kill all player, finish all game."