# Transform a board(matrix) to a tensor def board2tensor(board, color, last_move, reshape_flag=True): # Current-Stone Layer cur = np.array(np.array(board) == color, dtype=np.int) # Enemy-Stone Layer e = np.array(np.array(board) == -color, dtype=np.int) # Last Step Layer l = np.zeros((board.shape[0], board.shape[1])) if last_move is not None: l[last_move[0]][last_move[1]] = 1 # Color Layer # flag = (1 if color == BLACK else 0) # c = flag * np.ones((board.shape[0], board.shape[1])) # Stack cur,e,c into tensor tensor = np.array([cur, e, l]) if reshape_flag: tensor = tensor.reshape(1, tensor.shape[0], tensor.shape[1], tensor.shape[2]) return tensor
时间: 2023-06-18 11:04:39 浏览: 124
tensor_toolbox.zip_TensorToolbox_tensor_tensor toolbox _tensor_t
5星 · 资源好评率100%
这段代码是一个将棋盘(matrix)转换成张量(tensor)的函数。其中,参数board表示棋盘,color表示当前棋子的颜色,last_move表示上一次落子的位置。函数首先将棋盘中当前棋子的位置和对手棋子的位置分别转换成二值矩阵,然后将上一次落子的位置转换成只有一个位置值为1的矩阵。最后将这三个矩阵堆叠成一个张量,如果reshape_flag为True,则将其reshape成一个4维张量。
阅读全文