86 lines
20 KiB
JSON
86 lines
20 KiB
JSON
{
|
|
"admission_bound_changed_explicitly": true,
|
|
"ast": {
|
|
"added_runtime_callbacks": [
|
|
"_runtime.install(weights, graph, apl_out_mask, upload, out_dir, source_provenance, device)",
|
|
"_runtime.finish(ring, apl_ring, apl, steps, out_dir)",
|
|
"_runtime.timing(steps, pending)",
|
|
"_runtime.after_tick(tick, v, g, ref, drive, apl_state, h, applied_h)",
|
|
"_runtime.arrivals(expanded, destination, ref)"
|
|
],
|
|
"admission_edit": "0 < steps <= 1000 -> 0 < steps <= spec.max_steps",
|
|
"aj_source_sha256": "af1975ba5e5e700208c0a598d3cbe648a3cf10885c6231239b6e4b28f76d173b",
|
|
"derived_math_ast_sha256": "e46b7d037862b54c0000381ea50df3ba416c7c2c134e3cea78fa90ddf549f710",
|
|
"derived_module_ast_sha256": "4572043a15a53b3874766b40b4521422567761dbc75db57535ab44b817210429",
|
|
"derived_namespace_file": "/data/digital-drosophila/models/male-cns-lif/olfactory-conditioning-lab-v1/runtime_light.py",
|
|
"math_ast_sha256": "e46b7d037862b54c0000381ea50df3ba416c7c2c134e3cea78fa90ddf549f710",
|
|
"mathematical_ast_identical": true,
|
|
"mode": "light",
|
|
"old_globals_patched": false,
|
|
"original_module_file": "/data/digital-drosophila/models/male-cns-lif/apl-timing-lab-v1/gpu_timing.py",
|
|
"output_metadata_binding": "new write_json only labels recording/within-trial scope; no old global mutated",
|
|
"post_loop_terminal_recording": "_runtime.finish(ring, apl_ring, apl, steps, out_dir)",
|
|
"pre_loop_installation": "_runtime.install(weights, graph, apl_out_mask, upload, out_dir, source_provenance, device)",
|
|
"reference_entire_tick_loop_identical": false,
|
|
"removed_diagnostic_statements": [
|
|
"Assign(targets=[Subscript(value=Name(id='maps', ctx=Load()), slice=Constant(value='apl_applied'), ctx=Store())], value=Call(func=Name(id='new_array', ctx=Load()), args=[BinOp(left=Name(id='out_dir', ctx=Load()), op=Div(), right=Constant(value='apl-applied.float32.npy')), Attribute(value=Name(id='np', ctx=Load()), attr='float32', ctx=Load()), Tuple(elts=[Name(id='steps', ctx=Load()), Constant(value=4064)], ctx=Load())], keywords=[]))",
|
|
"For(target=Tuple(elts=[Name(id='name', ctx=Store()), Name(id='width', ctx=Store())], ctx=Store()), iter=Tuple(elts=[Tuple(elts=[Constant(value='drive'), Constant(value=2)], ctx=Load()), Tuple(elts=[Constant(value='state'), Constant(value=2)], ctx=Load()), Tuple(elts=[Constant(value='inhibition'), Constant(value=4064)], ctx=Load())], ctx=Load()), body=[Assign(targets=[Subscript(value=Name(id='maps', ctx=Load()), slice=BinOp(left=Constant(value='apl_'), op=Add(), right=Name(id='name', ctx=Load())), ctx=Store())], value=Call(func=Name(id='new_array', ctx=Load()), args=[BinOp(left=Name(id='out_dir', ctx=Load()), op=Div(), right=BinOp(left=BinOp(left=Constant(value='apl-'), op=Add(), right=Name(id='name', ctx=Load())), op=Add(), right=Constant(value='.float32.npy'))), Attribute(value=Name(id='np', ctx=Load()), attr='float32', ctx=Load()), Tuple(elts=[Name(id='steps', ctx=Load()), Name(id='width', ctx=Load())], ctx=Load())], keywords=[]))], orelse=[])",
|
|
"If(test=Subscript(value=Name(id='spec', ctx=Load()), slice=Constant(value='record_history'), ctx=Load()), body=[For(target=Tuple(elts=[Name(id='name', ctx=Store()), Name(id='dtype', ctx=Store())], ctx=Store()), iter=Tuple(elts=[Tuple(elts=[Constant(value='v'), Attribute(value=Name(id='np', ctx=Load()), attr='float64', ctx=Load())], ctx=Load()), Tuple(elts=[Constant(value='g'), Attribute(value=Name(id='np', ctx=Load()), attr='float64', ctx=Load())], ctx=Load()), Tuple(elts=[Constant(value='ref'), Attribute(value=Name(id='np', ctx=Load()), attr='int32', ctx=Load())], ctx=Load())], ctx=Load()), body=[Assign(targets=[Subscript(value=Name(id='maps', ctx=Load()), slice=Name(id='name', ctx=Load()), ctx=Store())], value=Call(func=Name(id='new_array', ctx=Load()), args=[BinOp(left=Name(id='out_dir', ctx=Load()), op=Div(), right=BinOp(left=BinOp(left=BinOp(left=Name(id='name', ctx=Load()), op=Add(), right=Constant(value='-history.')), op=Add(), right=Attribute(value=Call(func=Attribute(value=Name(id='np', ctx=Load()), attr='dtype', ctx=Load()), args=[Name(id='dtype', ctx=Load())], keywords=[]), attr='name', ctx=Load())), op=Add(), right=Constant(value='.npy'))), Name(id='dtype', ctx=Load()), Tuple(elts=[Name(id='steps', ctx=Load()), Name(id='n', ctx=Load())], ctx=Load())], keywords=[])), Assign(targets=[Subscript(value=Name(id='maps', ctx=Load()), slice=BinOp(left=Constant(value='pre_'), op=Add(), right=Name(id='name', ctx=Load())), ctx=Store())], value=Call(func=Name(id='new_array', ctx=Load()), args=[BinOp(left=Name(id='out_dir', ctx=Load()), op=Div(), right=BinOp(left=BinOp(left=BinOp(left=BinOp(left=Constant(value='preAPL-'), op=Add(), right=Name(id='name', ctx=Load())), op=Add(), right=Constant(value='.')), op=Add(), right=Attribute(value=Call(func=Attribute(value=Name(id='np', ctx=Load()), attr='dtype', ctx=Load()), args=[Name(id='dtype', ctx=Load())], keywords=[]), attr='name', ctx=Load())), op=Add(), right=Constant(value='.npy'))), Name(id='dtype', ctx=Load()), Tuple(elts=[Name(id='steps', ctx=Load()), Name(id='n', ctx=Load())], ctx=Load())], keywords=[]))], orelse=[])], orelse=[])",
|
|
"Assign(targets=[Name(id='expanded_global', ctx=Store())], value=Call(func=Attribute(value=Name(id='np', ctx=Load()), attr='empty', ctx=Load()), args=[Constant(value=0)], keywords=[keyword(arg='dtype', value=Attribute(value=Name(id='np', ctx=Load()), attr='int64', ctx=Load()))]))",
|
|
"Assign(targets=[Name(id='accepted_cpu', ctx=Store())], value=Call(func=Attribute(value=Name(id='np', ctx=Load()), attr='empty', ctx=Load()), args=[Constant(value=0)], keywords=[keyword(arg='dtype', value=Attribute(value=Name(id='np', ctx=Load()), attr='uint8', ctx=Load()))]))",
|
|
"Assign(targets=[Name(id='expanded_global', ctx=Store())], value=Call(func=Attribute(value=Subscript(value=Subscript(value=Name(id='graph', ctx=Load()), slice=Constant(value='edge_id'), ctx=Load()), slice=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='expanded', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), ctx=Load()), attr='copy', ctx=Load()), args=[], keywords=[]))",
|
|
"Assign(targets=[Name(id='accepted_cpu', ctx=Store())], value=Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Compare(left=Subscript(value=Name(id='ref', ctx=Load()), slice=Call(func=Attribute(value=Name(id='destination', ctx=Load()), attr='long', ctx=Load()), args=[], keywords=[]), ctx=Load()), ops=[Eq()], comparators=[Constant(value=0)]), attr='to', ctx=Load()), args=[Attribute(value=Name(id='torch', ctx=Load()), attr='uint8', ctx=Load())], keywords=[]), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), attr='copy', ctx=Load()), args=[], keywords=[]))",
|
|
"Assign(targets=[Name(id='queue', ctx=Store())], value=Call(func=Name(id='queue_summary', ctx=Load()), args=[Name(id='tick', ctx=Load()), Name(id='expanded_global', ctx=Load()), Name(id='accepted_cpu', ctx=Load())], keywords=[]))",
|
|
"Expr(value=Call(func=Attribute(value=Name(id='queue_output', ctx=Load()), attr='write', ctx=Load()), args=[BinOp(left=Call(func=Attribute(value=Name(id='json', ctx=Load()), attr='dumps', ctx=Load()), args=[Name(id='queue', ctx=Load())], keywords=[keyword(arg='allow_nan', value=Constant(value=False))]), op=Add(), right=Constant(value='\\n'))], keywords=[]))",
|
|
"AugAssign(target=Name(id='due_total', ctx=Store()), op=Add(), value=Subscript(value=Name(id='queue', ctx=Load()), slice=Constant(value='count'), ctx=Load()))",
|
|
"AugAssign(target=Name(id='accepted_due_total', ctx=Store()), op=Add(), value=Subscript(value=Name(id='queue', ctx=Load()), slice=Constant(value='accepted_count'), ctx=Load()))",
|
|
"If(test=Subscript(value=Name(id='spec', ctx=Load()), slice=Constant(value='record_history'), ctx=Load()), body=[For(target=Tuple(elts=[Name(id='name', ctx=Store()), Name(id='value', ctx=Store())], ctx=Store()), iter=Tuple(elts=[Tuple(elts=[Constant(value='v'), Name(id='v', ctx=Load())], ctx=Load()), Tuple(elts=[Constant(value='g'), Name(id='g', ctx=Load())], ctx=Load()), Tuple(elts=[Constant(value='ref'), Name(id='ref', ctx=Load())], ctx=Load())], ctx=Load()), body=[Assign(targets=[Subscript(value=Subscript(value=Name(id='maps', ctx=Load()), slice=BinOp(left=Constant(value='pre_'), op=Add(), right=Name(id='name', ctx=Load())), ctx=Load()), slice=Name(id='tick', ctx=Load()), ctx=Store())], value=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='value', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]))], orelse=[])], orelse=[])",
|
|
"Assign(targets=[Name(id='apl_cpu', ctx=Store())], value=Dict(keys=[Constant(value='drive'), Constant(value='state'), Constant(value='inhibition'), Constant(value='applied')], values=[Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='drive', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), attr='copy', ctx=Load()), args=[], keywords=[]), Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='apl_state', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), attr='copy', ctx=Load()), args=[], keywords=[]), Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='h', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), attr='copy', ctx=Load()), args=[], keywords=[]), Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='applied_h', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), attr='copy', ctx=Load()), args=[], keywords=[])]))",
|
|
"For(target=Tuple(elts=[Name(id='name', ctx=Store()), Name(id='value', ctx=Store())], ctx=Store()), iter=Call(func=Attribute(value=Name(id='apl_cpu', ctx=Load()), attr='items', ctx=Load()), args=[], keywords=[]), body=[Assign(targets=[Subscript(value=Subscript(value=Name(id='maps', ctx=Load()), slice=BinOp(left=Constant(value='apl_'), op=Add(), right=Name(id='name', ctx=Load())), ctx=Load()), slice=Name(id='tick', ctx=Load()), ctx=Store())], value=Name(id='value', ctx=Load()))], orelse=[])",
|
|
"Assign(targets=[Name(id='actual', ctx=Store())], value=Dict(keys=[Constant(value='v'), Constant(value='g'), Constant(value='ref')], values=[Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='v', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), attr='copy', ctx=Load()), args=[], keywords=[]), Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='g', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), attr='copy', ctx=Load()), args=[], keywords=[]), Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='ref', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), attr='copy', ctx=Load()), args=[], keywords=[])]))",
|
|
"Assign(targets=[Name(id='finite', ctx=Store())], value=Call(func=Name(id='all', ctx=Load()), args=[GeneratorExp(elt=Call(func=Name(id='bool', ctx=Load()), args=[Call(func=Attribute(value=Call(func=Attribute(value=Name(id='np', ctx=Load()), attr='isfinite', ctx=Load()), args=[Name(id='value', ctx=Load())], keywords=[]), attr='all', ctx=Load()), args=[], keywords=[])], keywords=[]), generators=[comprehension(target=Name(id='value', ctx=Store()), iter=BinOp(left=Call(func=Name(id='list', ctx=Load()), args=[Call(func=Attribute(value=Name(id='actual', ctx=Load()), attr='values', ctx=Load()), args=[], keywords=[])], keywords=[]), op=Add(), right=Call(func=Name(id='list', ctx=Load()), args=[Call(func=Attribute(value=Name(id='apl_cpu', ctx=Load()), attr='values', ctx=Load()), args=[], keywords=[])], keywords=[])), ifs=[], is_async=0)])], keywords=[]))",
|
|
"Assign(targets=[Name(id='row', ctx=Store())], value=Dict(keys=[Constant(value='tick'), None], values=[Name(id='tick', ctx=Load()), DictComp(key=BinOp(left=Name(id='name', ctx=Load()), op=Add(), right=Constant(value='_sha256')), value=Call(func=Name(id='raw_hash', ctx=Load()), args=[Name(id='value', ctx=Load()), IfExp(test=Compare(left=Name(id='name', ctx=Load()), ops=[Eq()], comparators=[Constant(value='ref')]), body=Constant(value='<i4'), orelse=Constant(value='<f8'))], keywords=[]), generators=[comprehension(target=Tuple(elts=[Name(id='name', ctx=Store()), Name(id='value', ctx=Store())], ctx=Store()), iter=Call(func=Attribute(value=Name(id='actual', ctx=Load()), attr='items', ctx=Load()), args=[], keywords=[]), ifs=[], is_async=0)])]))",
|
|
"Expr(value=Call(func=Attribute(value=Name(id='hash_output', ctx=Load()), attr='write', ctx=Load()), args=[BinOp(left=Call(func=Attribute(value=Name(id='json', ctx=Load()), attr='dumps', ctx=Load()), args=[Name(id='row', ctx=Load())], keywords=[keyword(arg='allow_nan', value=Constant(value=False))]), op=Add(), right=Constant(value='\\n'))], keywords=[]))",
|
|
"If(test=Subscript(value=Name(id='spec', ctx=Load()), slice=Constant(value='record_history'), ctx=Load()), body=[For(target=Tuple(elts=[Name(id='name', ctx=Store()), Name(id='value', ctx=Store())], ctx=Store()), iter=Call(func=Attribute(value=Name(id='actual', ctx=Load()), attr='items', ctx=Load()), args=[], keywords=[]), body=[Assign(targets=[Subscript(value=Subscript(value=Name(id='maps', ctx=Load()), slice=Name(id='name', ctx=Load()), ctx=Load()), slice=Name(id='tick', ctx=Load()), ctx=Store())], value=Name(id='value', ctx=Load()))], orelse=[])], orelse=[])",
|
|
"If(test=UnaryOp(op=Not(), operand=Name(id='finite', ctx=Load())), body=[With(items=[withitem(context_expr=Call(func=Attribute(value=BinOp(left=Name(id='out_dir', ctx=Load()), op=Div(), right=Constant(value='first-failure-state.npz')), attr='open', ctx=Load()), args=[Constant(value='xb')], keywords=[]), optional_vars=Name(id='target', ctx=Store()))], body=[Expr(value=Call(func=Attribute(value=Name(id='np', ctx=Load()), attr='savez_compressed', ctx=Load()), args=[Name(id='target', ctx=Load())], keywords=[keyword(arg='tick', value=Call(func=Attribute(value=Name(id='np', ctx=Load()), attr='array', ctx=Load()), args=[Name(id='tick', ctx=Load())], keywords=[keyword(arg='dtype', value=Attribute(value=Name(id='np', ctx=Load()), attr='int32', ctx=Load()))])), keyword(value=Name(id='actual', ctx=Load())), keyword(value=DictComp(key=BinOp(left=Constant(value='apl_'), op=Add(), right=Name(id='name', ctx=Load())), value=Name(id='value', ctx=Load()), generators=[comprehension(target=Tuple(elts=[Name(id='name', ctx=Store()), Name(id='value', ctx=Store())], ctx=Store()), iter=Call(func=Attribute(value=Name(id='apl_cpu', ctx=Load()), attr='items', ctx=Load()), args=[], keywords=[]), ifs=[], is_async=0)]))]))]), Expr(value=Call(func=Name(id='require', ctx=Load()), args=[Constant(value=False), Constant(value='Nonfinite state; first failure saved')], keywords=[]))], orelse=[])"
|
|
],
|
|
"replaced_diagnostic_nodes": [
|
|
"withitem(context_expr=Call(func=Attribute(value=BinOp(left=Name(id='out_dir', ctx=Load()), op=Div(), right=Constant(value='queue.jsonl')), attr='open', ctx=Load()), args=[Constant(value='x')], keywords=[keyword(arg='encoding', value=Constant(value='utf-8')), keyword(arg='buffering', value=Constant(value=1))]), optional_vars=Name(id='queue_output', ctx=Store()))",
|
|
"withitem(context_expr=Call(func=Attribute(value=BinOp(left=Name(id='out_dir', ctx=Load()), op=Div(), right=Constant(value='tick-state-hashes.jsonl')), attr='open', ctx=Load()), args=[Constant(value='x')], keywords=[keyword(arg='encoding', value=Constant(value='utf-8')), keyword(arg='buffering', value=Constant(value=1))]), optional_vars=Name(id='hash_output', ctx=Store()))",
|
|
"Assign(targets=[Name(id='timing', ctx=Store())], value=Call(func=Name(id='audit_sequence', ctx=Load()), args=[Subscript(value=Name(id='maps', ctx=Load()), slice=Constant(value='apl_inhibition'), ctx=Load()), Subscript(value=Name(id='maps', ctx=Load()), slice=Constant(value='apl_applied'), ctx=Load()), Name(id='pending', ctx=Load()), Name(id='apl_delay', ctx=Load())], keywords=[]))"
|
|
]
|
|
},
|
|
"complete": true,
|
|
"finite_audit_sha256": "5f0182167c4c628ec8fd6354a2fecde3dc99282894397aba155e7cb7e1fbce40",
|
|
"input_sha256": {
|
|
"/data/digital-drosophila/experiments/phase4ag-author-apl-r2/graphs/full/weights.npy": "462839ffc3feb8f6c278044488082b1c8e410e7f23229d6b5e29d1b7042416a1",
|
|
"/data/digital-drosophila/experiments/phase4am-wholebrain-plastic-interface/protocol/base-candidate.float32-mV.npy": "1218d1b328f29a7afefb0ca0b7b6421247f14ad598aa1957a6a7aacbc8cebcae",
|
|
"/data/digital-drosophila/experiments/phase4ap-conditioning-interface-v2/cases/D1--light--epoch-001/requests.npz": "571d09c32cabd45af79f71f0f27f7adcc38b9c65daf5ca124366ea439e088143",
|
|
"/data/digital-drosophila/experiments/phase4ap-conditioning-interface-v2/cases/D1--light--epoch-001/spec.json": "7718d21453fdee9f040007a8c2f8fc39f5adf7a3ec15699fceb0901f38f2ab9a",
|
|
"/data/digital-drosophila/experiments/phase4ap-conditioning-interface-v2/updates/D1--light--epoch-000/delta-after.npz": "b89e407a5d93b5f1901f901b00428dc19bd20cee2d81e57b117a2fa68d200a48",
|
|
"/data/digital-drosophila/experiments/phase4ap-conditioning-interface-v2/updates/D1--light--epoch-000/overlay-manifest.json": "38dabc55ea0569843ee70f13cf570832ecaa8f1ee7f26a7420e7ebc3ea86f6bd",
|
|
"/data/digital-drosophila/experiments/phase4h-dopamine-plasticity/plastic-mask/plastic-edge-ids.int64.npy": "8b0fb6eb2e6c31da4d17dc20d890aa3f367e514f05642de5bad6b42a1611c05b",
|
|
"/data/digital-drosophila/models/male-cns-lif/apl-timing-lab-v1/gpu_timing.py": "af1975ba5e5e700208c0a598d3cbe648a3cf10885c6231239b6e4b28f76d173b",
|
|
"/data/digital-drosophila/models/male-cns-lif/apl-timing-lab-v1/timing_queue.py": "54df6d4818e2a0c26e96fb0aaf5d9b71cd964981706da937562d48af79aca14e",
|
|
"/data/digital-drosophila/models/male-cns-lif/author-apl-lab-v2/gpu_apl.py": "69f5d893f47dafff4ef7c3186c3df0b9014666b32c8f4e943b57016bec92b18a",
|
|
"/data/digital-drosophila/models/male-cns-lif/author-apl-lab-v2/legacy_apl_worker.py": "21ceec65fe42581dc55872010e0025d660e80358905f1cf4df1dadf341a3b291",
|
|
"/data/digital-drosophila/models/male-cns-lif/author-fullgraph-lab-v1/oracle_full.py": "d72003d98f0f1624b12126eff50bd361c43d888f4a64d90ba9247a58976f1961",
|
|
"/data/digital-drosophila/models/male-cns-lif/author-runtime-lab-v1/author_ext.cpp": "208a937d17bbb041b9bf6b25b89264ee566830b60609e58491b44583d8541f15",
|
|
"/data/digital-drosophila/models/male-cns-lif/author-runtime-lab-v1/author_ext.cu": "669f166e18ce9a3f63fc723db8b0a8b74f7fa4757194b1bd65b4cf6008a7787e",
|
|
"/data/digital-drosophila/models/male-cns-lif/author-runtime-lab-v1/gpu_backend.py": "03758d07572f4b44d272059d9308fac534268ad201b57bdd77d69fee95e67278",
|
|
"/data/digital-drosophila/models/male-cns-lif/wholebrain-plastic-interface-v1/overlay.py": "7f891d0ba79b393c96e75fd2dee2eddc51e57d8213eaac2779703bc2c18712b4"
|
|
},
|
|
"learning_pass_claimed": false,
|
|
"math_changed": false,
|
|
"mode": "light",
|
|
"old_globals_patched": false,
|
|
"overlay_audit_sha256": "cfa98093495747b091d9863c5de8b30571ae4d9579771ed4a42b9fda72d2f912",
|
|
"parent_chain_verification_owned_by_coordinator": true,
|
|
"schema": "phase4an-reporting-adapter-v1",
|
|
"source_file": "/data/digital-drosophila/models/male-cns-lif/olfactory-conditioning-lab-v1/runtime_light.py",
|
|
"source_sha256": "522b8c31ea938890fe15364fccd25ccc5bded54101754909f255532e7ad01aae",
|
|
"summary_sha256": "e373b001d2b3e724b0723ddcb7fa0df85cef071a014c1c8d3f8f6ba7025d7642",
|
|
"terminal_queues_sha256": "42dbeaa6f50c6d5e7492774393a2fcc8af775b682dd517a53535f6d7cd162c2c",
|
|
"weights_updated_during_run": false
|
|
}
|