graph_conductance_states — CONNGRAPH circuit op

• 数据种类:conn_graph × matrix → matrix

• 调用: import fullseye as fs; fs.ledger.graph_conductance_states(W: 'Any', drive: 'Any', dt_s: 'float' = 0.001, tau_s: 'float' = 0.02, e_rest: 'float' = 0.0, e_exc: 'float' = 1.0, e_inh: 'float' = -1.0, release: 'str' = 'relu', v_half: 'float' = 0.5, slope: 'float' = 4.0, gain: 'float' = 1.0, v0: 'Any' = None) -> 'np.ndarray'(要直接调用实现,import conngraph; conngraph.graph_conductance_states(W: 'Any', drive: 'Any', dt_s: 'float' = 0.001, tau_s: 'float' = 0.02, e_rest: 'float' = 0.0, e_exc: 'float' = 1.0, e_inh: 'float' = -1.0, release: 'str' = 'relu', v_half: 'float' = 0.5, slope: 'float' = 4.0, gain: 'float' = 1.0, v0: 'Any' = None) -> 'np.ndarray';从台账取用则 opsconngraph.get("graph_conductance_states"))

用法

把连线 W 直接当作电路运行得到的膜电位时间序列 (T, n)(matrix,无学习)。

果蝇视叶中看起来像“乘法”的非线性,其本质是树突的电导比(Groschner 等 2022:稳态下 Vm = Σgᵢ Eᵢ / Σgᵢ)。同样形式的式子,也是把连接组作为布线固定的全脑模型的标准形式(Lappalainen 等 2024:

τᵢ V̇ᵢ = −Vᵢ + Σ sᵢⱼ + V_rest)。本 op 只用 1 张 conn_graph 和 1 张外部输入来运行它的动态版本:

τ dVᵢ/dt = −(Vᵢ − e_rest) + g⁺ᵢ (e_exc − Vᵢ) + g⁻ᵢ (e_inh − Vᵢ)

g⁺ 是 W 的正权重,g⁻ 是负权重的绝对值,分别以突触前一侧的释放 f(V) 加权后求和(drive 的正负也按同一方向相加)。权重按给定值使用 —— 完全不做学习,也不做拟合。时间常数随输入缩短(有效 τ = τ/(1+g⁺+g⁻)),所以这正是 liquid time-constant 型的动力学,但参数只有布线和常数,没有 1 个数是由梯度决定的。

W:(n, n) 的带权邻接矩阵(W[pre, post],正 = 兴奋性,负 = 抑制性)。

drive:(T, n) 的外部输入。正值作为把该节点拉向 e_exc 的电导、负值作为拉向 e_inh 的

电导进入(不是电流 —— 若用电流,下面的有界性就会被破坏)。

dt_s / tau_s:步长与膜时间常数[秒]。e_rest / e_exc / e_inh:静息电位与 2 个反转电位。

release:突触前释放 f(V)。"relu" 为 gain·max(V, 0),"sigmoid" 为

gain/(1+exp(−slope(V−v_half)))。两者都非负,不会产生负电导

(物理上不存在)—— 这是下面有界性的前提。

v_half / slope:sigmoid 的半值点与斜率。gain:释放的增益(非负)。

v0:初始状态 (n,)。默认所有节点为 e_rest。

每一段都用固定电导下的精确解推进(V ← V∞ + (V − V∞)e^{−dt·g_tot/τ}), 所以即使步长取得粗也不会发散。

可以用闭式检验的性质:

• 有界性:只要释放非负,V∞ 就是 3 个反转电位的凸组合,因此位于 [min(e_rest, e_exc, e_inh), max(...)] 之内。每一段只是把 V 指数式地拉向该 V∞,所以从箱内出发必定留在箱内, 从箱外出发也不会往外走,而是朝箱子靠近。无论什么布线、什么输入都不会发散,这一点由结构保证(v0 的默认值 e_rest = 箱内)。

• 衰减:没有输入也没有耦合时,恰好 V(t) = e_rest + (V₀ − e_rest)e^{−t/τ}。

• 稳态:向 1 个节点施加恒定输入 d > 0 时 V∞ = (e_rest + d·e_exc)/(1 + d), 趋向它的有效时间常数恰好为 τ/(1 + d)(“输入使时间常数缩短”的数值)。

ValueError:非方阵 / 非有限的 W、不是 (T, n) 的 drive、非正的 dt_s / tau_s、负的 gain、未知的 release、长度不符的 v0。

详细使用指南

• conngraph 族使用指南

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

• 算法的正典(作者、年份)与用途见上面的族使用指南。

可运行的示例(实际调用该算子并已验证的样例)

• poc_fly_optomotor_steering — py -3.11 examples/poc_fly_optomotor_steering.py

类型可衔接的下一个算子(可接受 matrix 作为输入)

reservoir_states · reservoir_encode · ridge_readout · ridge_predict · graph_activation_latency · graph_activity_spread · points_activity_video · graph_layer_propagate

同类别(circuit)

—


*Provenance: conngraph.py — CONNGRAPH 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.