Spaces:
Sleeping
Sleeping
import numpy as np | |
import torch | |
from transformers import GPT2LMHeadModel | |
def load_model(model_name: str = "snoop2head/Gomoku-GPT2") -> GPT2LMHeadModel: | |
gpt2 = GPT2LMHeadModel.from_pretrained(model_name) | |
return gpt2 | |
BOS_TOKEN_ID = 401 | |
PAD_TOKEN_ID = 402 | |
EOS_TOKEN_ID = 403 | |
def generate_gpt2(model: GPT2LMHeadModel, input_ids: torch.LongTensor) -> list: | |
""" | |
input_ids: [batch_size, seq_len] torch.LongTensor | |
output_ids: [seq_len] list | |
""" | |
output_ids = model.generate( | |
input_ids, | |
max_length=128, | |
num_beams=5, | |
temperature=0.7, | |
pad_token_id=PAD_TOKEN_ID, | |
eos_token_id=EOS_TOKEN_ID, | |
) | |
return output_ids.squeeze().tolist() | |
def change_to_1d_coordinate(board: np.ndarray, x: int, y: int) -> int: | |
"""change 2d coordinate to 1d coordinate""" | |
return x * board.shape[1] + y | |
def change_to_2d_coordinate(board: np.ndarray, coordinate: int) -> tuple: | |
"""change 1d coordinate to 2d coordinate""" | |
return (coordinate // board.shape[1], coordinate % board.shape[1]) | |