예제 #1
0
    def get_preds(self, state):
        #predict the leaf
        allowedActions = state.allowedActions

        if state.playerTurn == -1:
            state = GameState(state.flip(), state.playerTurn, state.turn)
        inputToModel = np.array([self.model.convertToModelInput(state)])

        preds = self.model.predict(inputToModel)
        value_array = preds[0]
        logits_array = preds[1]
        value = value_array[0]
        logits = logits_array[0]

        if state.playerTurn == -1:
            logits = logits[::-1]

        mask = np.ones(logits.shape, dtype=bool)
        mask[allowedActions] = False
        logits[mask] = 0

        probs = logits / np.sum(logits)

        return ((value, probs, allowedActions))