docstr: Args:
      board (np.array): input board
  
  Return:
      pi (np.array): probability of actions
      v (np.array): estimated value of input
docstr_tok: ["Args",":","board","(","np.array",")",":","input","board","Return",":","pi","(","np.array",")",":","probability","of","actions","v","(","np.array",")",":","estimated","value","of","input"]
code: def predict(self, board):
      """
      Args:
          board (np.array): input board
  
      Return:
          pi (np.array): probability of actions
          v (np.array): estimated value of input
      """
      # preparing input
      board = torch.FloatTensor(board.astype(np.float64))
      if self.cuda:
          board = board.contiguous().cuda()
      board = board.view(1, self.board_x, self.board_y)
  
      self.model.eval()  # eval mode
  
      with torch.no_grad():
          log_pi, v = self.model(board)
  
      pi = torch.exp(log_pi)
  
      return pi.data.cpu().numpy()[0], v.data.cpu().numpy()[0]
  
imports: import os
  import math
  import time
  import numpy
  import numpy
  from collections import namedtuple
  import torch
  import torch.nn
  import torch.nn.functional
  import torch.optim
  import base64
  import io
label_desc: Use image node_id 2 for calling the SimpleAgent obj's underlying member method code with example usage: obj.predict(board) and returns: pi,  v