Exemplo n.º 1
0
def data_augmentation(x_label, y_label):
    """
    Data augmentation.
    :param x_label: x_label Input of the neural network.
    :param y_label: x_label Output of the neural network.
    :return: x_label, y_label.  X_label, y_label after data augmentation.
    """
    all_action_probs, values = y_label

    extend_xlabel = []
    extend_ylabel_action_probs = []
    extend_ylabel_value = []

    for board_input in x_label:
        # The board_input 4-dimensional data is disassembled and expanded separately.
        augmentation_board = np.array([
            get_data_augmentation(one_board_input)
            for one_board_input in board_input
        ])
        board_augmentation = np.array(list(zip(*augmentation_board)))
        extend_xlabel.extend(
            np.array(
                [one_augmentation for one_augmentation in board_augmentation]))

    for action_probs in all_action_probs:
        extend_action_probs = get_data_augmentation(
            action_probs.reshape(BOARD.board_size, BOARD.board_size),
            operation=lambda a: a.flatten())
        extend_ylabel_action_probs.extend(extend_action_probs)

    for value in values:
        extend_value = get_data_augmentation(np.array(value))
        extend_ylabel_value.extend(extend_value)

    return extend_xlabel, (extend_ylabel_action_probs, extend_ylabel_value)
Exemplo n.º 2
0
def data_augmentation(x_label, y_label):
    """

    :param x_label:
    :param y_label:
    :return:
    """
    all_action_probs, values = y_label

    extend_xlabel = []
    extend_ylabel_action_probs = []
    extend_ylabel_value = []

    for board_input in x_label:
        augmentation_board = np.array([get_data_augmentation(one_board_input) for one_board_input in board_input])
        board_augmentation = np.array(list(zip(*augmentation_board)))
        extend_xlabel.extend(np.array([one_augmentation for one_augmentation in board_augmentation]))

    for action_probs in all_action_probs:
        extend_action_probs = get_data_augmentation(action_probs.reshape(BOARD.board_size, BOARD.board_size),
                                                    operation=lambda a: a.flatten())
        extend_ylabel_action_probs.extend(extend_action_probs)

    for value in values:
        extend_value = get_data_augmentation(np.array(value))
        extend_ylabel_value.extend(extend_value)

    return extend_xlabel, (extend_ylabel_action_probs, extend_ylabel_value)