def start(): """ Starts one of the processes based on command line arguments. :return : the worker class that was started """ parser = create_parser() args = parser.parse_args() config_type = args.type if args.cmd == 'uci': disable(999999) # plz don't interfere with uci config = Config(config_type=config_type) setup(config, args) logger.info(f"config type: {config_type}") import chess_zero.lib.tf_util as ttt if args.cmd == 'self': os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" os.environ["CUDA_VISIBLE_DEVICES"] = "0" ttt.set_session_config(allow_growth=True) from .worker import self_play return self_play.start(config) elif args.cmd == 'opt': os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" os.environ["CUDA_VISIBLE_DEVICES"] = "0" ttt.set_session_config(allow_growth=True) from .worker import optimize return optimize.start(config) elif args.cmd == 'eval': os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" os.environ["CUDA_VISIBLE_DEVICES"] = "0" ttt.set_session_config(allow_growth=True) from .worker import evaluate return evaluate.start(config) elif args.cmd == 'sl': from .worker import sl return sl.start(config) elif args.cmd == 'uci': from .play_game import uci return uci.start(config)
def start(config: Config): tf_util.set_session_config(per_process_gpu_memory_fraction=0.5) return SelfPlayWorker(config, env=ChessEnv()).start()
# 轮到人类 print('当前局面如下:') pretty_print_panel(env.board.panel) print() action = input("请输入您要放置的棋子位置:") while action not in env.board.legal_moves: print("输入有误!请重新输入.") action = input("请输入您要放置的棋子位置:") env.step(action) print('本局游戏结束!当前棋面为:') pretty_print_panel(env.board.panel) if env.winner == Winner.draw: man_score = 0.5 elif env.white_won == robot_white: man_score = 0 else: man_score = 1 cur.append(cur_pipes) return man_score if __name__ == '__main__': import chess_zero.lib.tf_util as ttt os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" os.environ["CUDA_VISIBLE_DEVICES"] = "0" ttt.set_session_config(allow_growth=True) start()
def start(config: Config): tf_util.set_session_config(per_process_gpu_memory_fraction=0.2) return EvaluateWorker(config).start()
def start(config: Config): tf_util.set_session_config(config.trainer.vram_frac) return OptimizeWorker(config).start()
def start(config: Config): tf_util.set_session_config(per_process_gpu_memory_fraction=0.59) return OptimizeWorker(config).start()
def start(config: Config): tf_util.set_session_config(per_process_gpu_memory_fraction=0.1) return SupervisedLearningWorker(config, env=ChessEnv()).start()
def start(config: Config): tf_util.set_session_config(config.eval.vram_frac) return EvaluateWorker(config).start()