Currently, on devel the RESPONSE_TIME output port of the integrator DDM appears to be bugged, but only in Python mode. The port mistakenly indicates that threshold was reached in a single step of integration. In compiled mode, the correct response time is returned. See example below.
import psyneulink as pnl
from psyneulink.core.globals.utilities import set_global_seed
set_global_seed(0)
my_ddm = pnl.DDM(
function=pnl.DriftDiffusionIntegrator(
starting_value=0,
threshold=.1,
noise=0.1,
time_step_size=.1,
non_decision_time=0
),
reset_stateful_function_when=pnl.AtTrialStart(),
output_ports=[pnl.DECISION_OUTCOME, pnl.RESPONSE_TIME],
execute_until_finished=True,
name="DDM"
)
comp = pnl.Composition()
comp.add_node(my_ddm)
comp.run(inputs=[.2])
# comp.run(inputs=[.2], execution_mode=pnl.ExecutionMode.LLVMRun)
print(comp.results)
Python Mode Output:
Compiled Output:
Currently, on devel the RESPONSE_TIME output port of the integrator DDM appears to be bugged, but only in Python mode. The port mistakenly indicates that threshold was reached in a single step of integration. In compiled mode, the correct response time is returned. See example below.
Python Mode Output:
Compiled Output: