fragile.core.fractalai#

Module Contents#

Functions#

l2_norm(x, y)

Euclidean distance between two batches of points stacked across the first dimension.

relativize(x)

Normalize the data using a custom smoothing technique.

get_alive_indexes(oobs)

Get indexes representing random alive walkers given a vector of death conditions.

calculate_distance(observs[, distance_function, ...])

Calculate a distance metric for each walker with respect to a random companion.

calculate_virtual_reward(observs, rewards[, oobs, ...])

Calculate the virtual rewards given the required data.

calculate_clone(virtual_rewards[, oobs, eps])

Calculate the clone indexes and masks from the virtual rewards.

fai_iteration(observs, rewards[, oobs, dist_coef, ...])

Perform a FAI iteration.

clone_tensor(x, compas_ix, will_clone)

cross_virtual_reward(host_observs, host_rewards, ...)

Calculate the virtual rewards between two cloud of points.

cross_clone(host_virtual_rewards, ext_virtual_rewards)

Perform a clone operation between two different groups of points.

cross_fai_iteration(host_observs, host_rewards, ...[, ...])

Perform a FractalAI cloning process between two clouds of points.

Attributes#

AVAILABLE_FUNCTIONS

fragile.core.fractalai.AVAILABLE_FUNCTIONS#
fragile.core.fractalai.l2_norm(x, y)[source]#

Euclidean distance between two batches of points stacked across the first dimension.

Parameters
  • x (judo.typing.Tensor) –

  • y (judo.typing.Tensor) –

Return type

judo.typing.Tensor

fragile.core.fractalai.relativize(x)[source]#

Normalize the data using a custom smoothing technique.

Parameters

x (judo.typing.Tensor) –

Return type

judo.typing.Tensor

fragile.core.fractalai.get_alive_indexes(oobs)[source]#

Get indexes representing random alive walkers given a vector of death conditions.

Parameters

oobs (judo.typing.Tensor) –

fragile.core.fractalai.calculate_distance(observs, distance_function=l2_norm, return_compas=False, oobs=None, compas=None)[source]#

Calculate a distance metric for each walker with respect to a random companion.

Parameters
  • observs (judo.typing.Tensor) –

  • distance_function (Callable) –

  • return_compas (bool) –

  • oobs (judo.typing.Tensor) –

  • compas (judo.typing.Tensor) –

fragile.core.fractalai.calculate_virtual_reward(observs, rewards, oobs=None, dist_coef=1.0, reward_coef=1.0, other_reward=1.0, return_compas=False, return_distance=False, distance_function=l2_norm)[source]#

Calculate the virtual rewards given the required data.

Parameters
  • observs (judo.typing.Tensor) –

  • rewards (judo.typing.Tensor) –

  • oobs (judo.typing.Tensor) –

  • dist_coef (float) –

  • reward_coef (float) –

  • other_reward (judo.typing.Tensor) –

  • return_compas (bool) –

  • return_distance (bool) –

  • distance_function (Callable) –

fragile.core.fractalai.calculate_clone(virtual_rewards, oobs=None, eps=1e-08)[source]#

Calculate the clone indexes and masks from the virtual rewards.

Parameters
  • virtual_rewards (judo.typing.Tensor) –

  • oobs (judo.typing.Tensor) –

fragile.core.fractalai.fai_iteration(observs, rewards, oobs=None, dist_coef=1.0, reward_coef=1.0, eps=1e-08, other_reward=1.0, return_compas_dist=False, return_distance=False)[source]#

Perform a FAI iteration.

Parameters
  • observs (judo.typing.Tensor) –

  • rewards (judo.typing.Tensor) –

  • oobs (judo.typing.Tensor) –

  • dist_coef (float) –

  • reward_coef (float) –

  • other_reward (judo.typing.Tensor) –

  • return_compas_dist (bool) –

  • return_distance (bool) –

fragile.core.fractalai.clone_tensor(x, compas_ix, will_clone)[source]#
fragile.core.fractalai.cross_virtual_reward(host_observs, host_rewards, ext_observs, ext_rewards, dist_coef=1.0, reward_coef=1.0, return_compas=False, distance_function=l2_norm)[source]#

Calculate the virtual rewards between two cloud of points.

Parameters
  • host_observs (judo.typing.Tensor) –

  • host_rewards (judo.typing.Tensor) –

  • ext_observs (judo.typing.Tensor) –

  • ext_rewards (judo.typing.Tensor) –

  • dist_coef (float) –

  • reward_coef (float) –

  • return_compas (bool) –

  • distance_function (Callable) –

fragile.core.fractalai.cross_clone(host_virtual_rewards, ext_virtual_rewards, host_oobs=None, eps=0.001)[source]#

Perform a clone operation between two different groups of points.

Parameters
  • host_virtual_rewards (judo.typing.Tensor) –

  • ext_virtual_rewards (judo.typing.Tensor) –

  • host_oobs (judo.typing.Tensor) –

fragile.core.fractalai.cross_fai_iteration(host_observs, host_rewards, ext_observs, ext_rewards, host_oobs=None, dist_coef=1.0, reward_coef=1.0, distance_function=l2_norm, eps=1e-08)[source]#

Perform a FractalAI cloning process between two clouds of points.

Parameters
  • host_observs (judo.typing.Tensor) –

  • host_rewards (judo.typing.Tensor) –

  • ext_observs (judo.typing.Tensor) –

  • ext_rewards (judo.typing.Tensor) –

  • host_oobs (judo.typing.Tensor) –

  • dist_coef (float) –

  • reward_coef (float) –

  • distance_function (Callable) –

  • eps (float) –