from explauto import Experiment
from explauto.experiment import make_settings
random_goal_babbling = make_settings(environment='simple_arm', environment_config = 'mid_dimensional',
babbling_mode='goal',
interest_model='discretized_progress',
sensorimotor_model='nearest_neighbor',
)
expe = Experiment.from_settings(random_goal_babbling)
expe.run(1000)
WARNING:explauto.agent.agent:Sensorimotor model not bootstrapped yet
%pylab inline
ax = axes()
title(('Random goal babbling'))
expe.log.scatter_plot(ax, (('sensori', [0, 1]),))
expe.log.scatter_plot(ax, (('choice', [0, 1]),), marker='+', color='red')
#expe.log.scatter_plot(ax, (('testcases', [0, 1]),), marker='o', color='green')
legend(['reached hand positions', 'chosen goals'])
Populating the interactive namespace from numpy and matplotlib
<matplotlib.legend.Legend at 0x7f58b1d2ded0>
ax = axes()
# Define the line and plot it:
x = 0.8
y_a = 0.5
y_b = -0.5
ax.plot([x, x], [y_a, y_b], color='red')
expe.ag.sensorimotor_model.mode = 'exploit'
# for 10 points equidistantly spaced on the line, perform inverse prediction and plot:
for y in linspace(-0.5, 0.5, 10):
m = expe.ag.sensorimotor_model.inverse_prediction([x, y])
expe.env.plot_arm(ax, m)
expe.log.save('test.pkl', 'pickle')
del expe
from explauto.experiment import ExperimentLog
logs = ExperimentLog.from_file('test.pkl', 'pickle')
from explauto import Experiment
from explauto.experiment import make_settings
random_goal_babbling = make_settings(environment='simple_arm', environment_config = 'mid_dimensional',
babbling_mode='goal',
interest_model='discretized_progress',
sensorimotor_model='nearest_neighbor',
)
expe = Experiment.from_settings(random_goal_babbling)
expe.fast_forward(logs)
They should be the same as before pickeling
ax = axes()
title(('Random goal babbling'))
expe.log.scatter_plot(ax, (('sensori', [0, 1]),))
expe.log.scatter_plot(ax, (('choice', [0, 1]),), marker='+', color='red')
#expe.log.scatter_plot(ax, (('testcases', [0, 1]),), marker='o', color='green')
legend(['reached hand positions', 'chosen goals'])
<matplotlib.legend.Legend at 0x7f58b00d4350>
ax = axes()
# Define the line and plot it:
x = 0.8
y_a = 0.5
y_b = -0.5
ax.plot([x, x], [y_a, y_b], color='red')
expe.ag.sensorimotor_model.mode = 'exploit'
# for 10 points equidistantly spaced on the line, perform inverse prediction and plot:
for y in linspace(-0.5, 0.5, 10):
m = expe.ag.sensorimotor_model.inverse_prediction([x, y])
expe.env.plot_arm(ax, m)