Пример #1
0
    def save(self, name: Optional[str] = None) -> None:
        if not self._save_dir_path.exists():
            Utils.create_directory(self._save_dir_path)

        if name is None:
            name = f'{type(self).__name__}_{Utils.get_now_as_str()}'

        name += '.pt'

        torch.save(self._policy_net.state_dict(),
                   self._save_dir_path.joinpath(name))
Пример #2
0
    def save_model(self, name: Optional[str] = None) -> None:
        if name is None:
            now = Utils.get_now_as_str()
            player_name = self.name.replace(' ', '_').replace('(', '').replace(
                ')', '').strip()
            name = f'{player_name}_{now}'

        self._nn.save(name)
Пример #3
0
    def __init__(self):
        self._alpha = self.ALPHA  # Learning rate
        self._gamma = self.GAMMA  # Future reward discount

        self._state_interpreter = StateInterpreter()
        self._device = 'cuda' if torch.cuda.is_available() else 'cpu'
        self._policy_net = self._create_neural_network()
        self._loss = nn.MSELoss()
        self._optim = optim.Adam(self._policy_net.parameters(), self._alpha)

        if self.LOAD_PATH is not None:
            self.load(self.LOAD_PATH)

        self._save_dir_path = Utils.get_base_dir().joinpath(self.SAVE_DIR)
Пример #4
0
    def _create_unique_log_file(self, log_dir_path: Path) -> None:
        extension = 'txt'
        log_name = Utils.get_now_as_str()
        log_path = log_dir_path.joinpath('.'.join([log_name, extension]))
        cnt = 0

        while log_path.exists():
            log_path = log_dir_path.joinpath('.'.join(
                [log_name, '_', str(cnt), extension]))
            cnt += 1

        with open(str(log_path), 'w') as file:
            file.write('')

        self._log_path = log_path
Пример #5
0
 def test_verify_bid_7(self):
     bid1 = [10, 2]
     bid2 = [10, 1]
     self.assertTrue(Utils.verify_bet(bid1, bid2))
Пример #6
0
 def test_verify_bid_4(self):
     bid1 = [3, 4]
     bid2 = [3, 4]
     self.assertFalse(Utils.verify_bet(bid1, bid2))
Пример #7
0
 def test_verify_bid_6(self):
     bid1 = [3, 1]
     bid2 = [4, 3]
     self.assertTrue(Utils.verify_bet(bid1, bid2))
Пример #8
0
 def test_verify_bid_8(self):
     bid1 = [10, 1]
     bid2 = [1, 3]
     self.assertFalse(Utils.verify_bet(bid1, bid2))
Пример #9
0
 def test_verify_bid_3(self):
     bid1 = [3, 3]
     bid2 = [3, 4]
     self.assertTrue(Utils.verify_bet(bid1, bid2))
Пример #10
0
 def test_AI_bet_up_quantity(self):
     dice_number = 36
     last_bet = [4, 1]
     ai_bet = Utils.AI_bet(last_bet, dice_number)
     self.assertTrue(Utils.verify_bet(last_bet, ai_bet))
Пример #11
0
 def test_AI_bet_call_lie(self):
     dice_number = 36
     last_bet = [7, 1]
     ai_bet = Utils.AI_bet(last_bet, dice_number)
     self.assertTrue(Utils.verify_bet(last_bet, ai_bet))
Пример #12
0
 def test_verify_bid_6(self):
     bid1 = [3, 1]
     bid2 = [4, 3]
     self.assertTrue(Utils.verify_bet(bid1, bid2))
Пример #13
0
 def test_verify_bid_4(self):
     bid1 = [3, 4]
     bid2 = [3, 4]
     self.assertFalse(Utils.verify_bet(bid1, bid2))
Пример #14
0
 def test_AI_bet_call_lie(self):
     dice_number = 36
     last_bet = [7, 1]
     ai_bet = Utils.AI_bet(last_bet, dice_number)
     self.assertTrue(Utils.verify_bet(last_bet, ai_bet))
Пример #15
0
 def test_AI_bet_call_lie_decimal(self):
     dice_number = 32
     last_bet = [5, 1]
     ai_bet = Utils.AI_bet(last_bet, dice_number)
     self.assertTrue(Utils.verify_bet(last_bet, ai_bet))
Пример #16
0
 def test_AI_bet_up_value_perudo(self):
     dice_number = 36
     last_bet = [6, 6]
     ai_bet = Utils.AI_bet(last_bet, dice_number)
     self.assertTrue(Utils.verify_bet(last_bet, ai_bet))
Пример #17
0
 def test_AI_bet_up_quantity(self):
     dice_number = 36
     last_bet = [4, 1]
     ai_bet = Utils.AI_bet(last_bet, dice_number)
     self.assertTrue(Utils.verify_bet(last_bet, ai_bet))
Пример #18
0
 def test_verify_bid_10(self):
     bid1 = [2, 1]
     bid2 = [2, 2]
     self.assertFalse(Utils.verify_bet(bid1, bid2))
Пример #19
0
 def test_verify_bid_8(self):
     bid1 = [10, 1]
     bid2 = [1, 3]
     self.assertFalse(Utils.verify_bet(bid1, bid2))
Пример #20
0
 def _create_default_log(self) -> None:
     log_dir_name = 'log'
     project_path = Utils.get_base_dir()
     log_dir_path = project_path.joinpath(log_dir_name)
     Utils.create_directory(log_dir_path)
     self._create_unique_log_file(log_dir_path)
Пример #21
0
 def test_verify_bid_10(self):
     bid1 = [2, 1]
     bid2 = [2, 2]
     self.assertFalse(Utils.verify_bet(bid1, bid2))
Пример #22
0
 def test_verify_bid_3(self):
     bid1 = [3, 3]
     bid2 = [3, 4]
     self.assertTrue(Utils.verify_bet(bid1, bid2))
Пример #23
0
 def test_AI_bet_up_value_perudo(self):
     dice_number = 36
     last_bet = [6, 6]
     ai_bet = Utils.AI_bet(last_bet, dice_number)
     self.assertTrue(Utils.verify_bet(last_bet, ai_bet))
Пример #24
0
 def test_verify_bid_1(self):
     bid1 = [0, 0]
     bid2 = [2, 3]
     self.assertTrue(Utils.verify_bet(bid1, bid2))
Пример #25
0
 def test_AI_bet_call_lie_decimal(self):
     dice_number = 32
     last_bet = [5, 1]
     ai_bet = Utils.AI_bet(last_bet, dice_number)
     self.assertTrue(Utils.verify_bet(last_bet, ai_bet))
Пример #26
0
 def test_verify_bid_7(self):
     bid1 = [10, 2]
     bid2 = [10, 1]
     self.assertTrue(Utils.verify_bet(bid1, bid2))
Пример #27
0
 def _generate_log_dir_path(self) -> str:
     comment = self._generate_comment()
     return str(Utils.get_base_dir().joinpath('runs').joinpath(
         f'{Utils.get_now_as_str()}: {comment}'))
Пример #28
0
 def test_verify_bid_1(self):
     bid1 = [0, 0]
     bid2 = [2, 3]
     self.assertTrue(Utils.verify_bet(bid1, bid2))