[][src]Struct pyconnect6::pybind::PyEval

pub struct PyEval { /* fields omitted */ }

AlphaZero value, policy approximator with python callable object

it implement trait Evaluator for evaluating given boards with PyObject

Examples

let pyeval = py_policy!();
let board = [[Player::None; BOARD_SIZE]; BOARD_SIZE];
assert!(pyeval.eval(Player::Black, &vec![board]).is_some());

Methods

impl PyEval[src]

pub fn new(pyobj: PyObject) -> PyEval[src]

Create new PyEval with given PyObject.

Trait Implementations

impl Evaluator for PyEval[src]

fn eval(
    &self,
    turn: Player,
    board: &Vec<Board>
) -> Option<(Vec<f32>, Vec<[[f32; 15]; 15]>)>
[src]

Get value and prob from PyObject

Panics

  • If self.pyobj is not callable object, or method __call__ is not a type of __call__(self, turn, board): (value, prob)
  • if return value of self.pyobj.call() is not a tuple type object.

Errors

  • if value is not a sequence type object consists of floats.
  • if policy is not a 2D sequence type object consists of floats.
  • if policy is not shaped [boards.len(), BOARD_SIZE ** 2]

Auto Trait Implementations

impl Send for PyEval

impl Sync for PyEval

Blanket Implementations

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Erased for T