[Neuronal Dynamics 笔记] I Foundations of Neuronal Dynamics - 1 Introduction
Introduction
- 1. 神经元
- 1.1 神经元的组成
- 1.2 动作电位(action potential)/脉冲(spike)
- 1.3 膜电位
- 1.4 脉冲编码*
- (1) 频率编码
- (2) 时间编码
- (3) 群体编码
- (4) 稀疏编码
- 2. 突触
- 3. Integrate-and-fire model
- 3.1 模型的物理解释
- 3.2 Integrate-and-fire model
- (1) 膜电位等于静息电位,有短暂的恒定电流注入神经元。
- (2) 膜电位不等于静息电位,停止注入电流。
- (3) 细胞受到电流刺激达到阈值,发放脉冲。
- (4) 定时输入电流,产生连续的脉冲。
- 3.3 模型的优缺点
- (1) 优点
- (2) 缺点
1. 神经元
1.1 神经元的组成
神经元由三部分组成,包括树突、胞体、轴突。
- 树突(dendrites): 神经元的输入,接收其他神经元传递过来的信号。
- 胞体(soma): 中心处理单元,进行非线性的计算。如果接收到的输入大于某一阈值,则发放脉冲。
- 轴突(axon): 神经元的输出。向其他神经元传递信号,可向外延伸几厘米,到达下一个神经元结束。
是时候放出我的独眼巨鹿了!
1.2 动作电位(action potential)/脉冲(spike)
当神经元收到的刺激达到某一阈值时,在胞体或轴突附近放置电极可以检测到短暂的脉冲信号。这一信号的持续时间为1-2毫秒,振幅为100毫伏。脉冲是传递信息的基本单元。
Maria Toledo-Rodriguez 和 Henry Markram 实验发现,对齐每个脉冲的最大电压,所有脉冲基本都重叠在同个曲线上,也就是说,每个脉冲的形状是一样的。这意味着,脉冲的形状不包含信息,但脉冲发放的频率、发放的时间包含信息,这就涉及到脉冲编码的问题,将在1.4节展开介绍。
神经元发放脉冲后,将会经历一个短暂的不应期。不应期分为绝对不应期和相对不应期。顾名思义,绝对不应期指的是神经元在这个期间内绝对不能响应刺激而发放脉冲。相对不应期指在这个期间内很难响应刺激而发放脉冲,但也不是不可能响应。相对不应期出现在绝对不应期之后。因为有不应期的存在,保证了脉冲都是一个接一个的发放,不可能出现重叠的现象,即每个脉冲都是可分的。
1.3 膜电位
膜电位(membrane potential): 细胞膜的电位,细胞内电位和细胞外电位之差。
没有脉冲输入时,膜电位为静息电位( = - 65mV)。有脉冲输入时,膜电位会发生改变,但最终会回到静息电位。
静息电位是一个非常负的电压,在静息电位时,细胞膜处于负极化的状态。若输入兴奋型的脉冲信号,将会升高膜电位,减少细胞膜的负极化——去极化。若输入抑制型的脉冲信号,将会降低膜电位,增加细胞膜的负极化——超极化。
神经元接收其他神经元传递过来的脉冲信号(这里假设刺激是兴奋型的),膜电位升高,到达某一阈值时发放脉冲。发放完脉冲后,膜电位迅速下降至低于静息电位的值(超极化),这个时候神经元进入了短暂的不应期,不能或很难响应刺激。随着时间的流逝,膜电位慢慢恢复至静息电位。
1.4 脉冲编码*
实验室是做视频编码起家的,一直以来我对编码的理解就是压缩,但脉冲编码和压缩有很大的不同。
神经元受到一定的刺激后会作出反应,比如膝跳反应,把刺激到反应映射起来,就是编码,即将刺激编码成反应。
相反的,每个神经元的反应都对应一定的刺激,给定反应,求神经元受到的刺激,这个过程就是解码,即将反应解码成刺激。
(这里描述解码是为了帮助理解编码,本节不会介绍解码的内容。)
目前常见的编码类型有四种:频率编码(rate coding)、时间编码(temporal coding)、群体编码(population coding)、稀疏编码(sparse coding)。
(1) 频率编码
频率编码认为,脉冲发放的频率是神经元之间传递信息的基础。随着刺激强度的增加,脉冲发放的频率也会相应增加。举个?,不同重量的物体悬挂于一块肌肉,当重量加重,即刺激增强时,记录到肌肉中的感觉神经元的发放频率也增加了。
脉冲编码的优缺点:
✔️脉冲发放频率易测量,只需要计算一定时间间隔内发放的脉冲数量即可,脉冲发放频率 = 脉冲发放的数量➗时间。
✔️频率编码模型简单,将刺激简单地编码为脉冲发放频率。
✔️由于模型简单,抗干扰能力强。
✖️忽略了脉冲发放的时间,只要在一定时间间隔内发放的脉冲数量一致,就认为它们的刺激相同。但显然,上图的两种情况刺激强度不同。
✖️过于简化了脑活动
✖️编码效率低
(2) 时间编码
时间编码认为,脉冲发放的时间和发放率的高频波动携带信息(而频率编码认为发放率的高频波动是噪声)。时间编码模型更复杂,但对于大脑的模拟更精确。
(3) 群体编码
群体编码使用多个神经元的联合活动来表示刺激。在群体编码中,每个神经元在一组输入上具有响应分布,并且可以组合许多神经元的响应以确定关于输入的一些值。群体中的个体神经元通常具有不同但重叠的选择性,因此许多神经元(但不一定全部)响应特定的刺激。如在视觉区域内侧时间(MT)中,神经元响应光的移动方向。
群体编码的优点:
✔️降低由于神经元变异性导致的不确定性
✔️同时表示许多不同刺激属性
✔️比频率编码快得多,几乎可以立即反映刺激条件的变化
(4) 稀疏编码
稀疏编码由相对较小的一组神经元的强激活编码。
2. 突触
介绍完了单个神经元,我们来了解一下位于两个神经元之间连接处的结构——突触。突触“连接”两个神经元,为这两个神经元传递信号。发送信号的神经元称为前突触细胞(presynaptic cell),接收信号的神经元称为后突触细胞(postsynaptic cell)。一个前突触细胞能与超过104个后突触细胞相“连接”。
高中生物课本讲过,有两种类型的突触,化学突触(chemical synapse)、电突触(electrical synapse)。
化学突触: 化学突触不是直接相连的,而是通过神经递质传递信息。前突触细胞的spika到达突触时,突触小泡包裹着神经递质,释放到突触间隙中,到达后突触细胞,后突触细胞打开特定的离子通道,细胞外液的特定离子流入后突触细胞,后突触细胞的膜电位发生改变。
电突触: 通过膜蛋白直接相连,直接进行电信号的传递。
前突触细胞传递而来的脉冲刺激会改变后突触细胞的膜电位。若这一刺激是正向的,会升高后突触电位。后突触电位和静息电位之差是正的,称为兴奋型的后突触电位(EPSP)。若这一刺激是负向的,会降低后突触电位。后突触电位和静息电位之差是负的,称为抑制型的后突触电位(IPSP)。
前突触细胞发放的脉冲到达后突触细胞,会对后突触细胞的膜电位造成影响,这种影响可以累加。当后突触的膜电位超过某一阈值时,后突触细胞发放脉冲。在短时间内有足够多前突触细胞的脉冲刺激,才能够激发后突触细胞的脉冲发放。后突触细胞发放完脉冲后,进入短暂的不应期(负极化),后慢慢恢复至静息电位。
3. Integrate-and-fire model
3.1 模型的物理解释
Integrate-and-Fire model,简称为IF model,是一个细胞简化的物理模型。将细胞看成由:1. 电压为-65mV的电池;2. 电阻;3. 电容 所组成的电路。前突触细胞的脉冲到达时,会有电流注入细胞,即给细胞充电。但细胞并不是完美的电容器,电流注入结束后,电荷将缓慢的通过细胞膜渗漏,漏电的过程可以看成充好电的电容通过电阻放电。
接下来详细分析,当有电流刺激到达细胞时,细胞的膜电位会发生怎样的变化。注入的电流I(t)分流成两部分,一部分通过电阻IR,另一部分用来给电容器充电IC。
I(t)=IR+IC(1)I(t) = I_R + I_C \tag{1}I(t)=IR+IC(1)
由欧姆定律可知:
IR=uR/R(2)I_R = u_R / R \tag{2}IR=uR/R(2)
其中,uR = u - urest。由电容的定义可知:
C=q/u(3)C = q / u \tag{3}C=q/u(3)
其中,q为电荷量,u为电容的电压。电容器的电流为:
IC=dq/dt=Cdu/dt(4)I_C = dq/dt = C du/dt \tag{4}IC=dq/dt=Cdu/dt(4)
因此,电流I(t):
I(t)=u(t)−urestR+Cdudt(5)I(t)=\frac{u(t)-u_{rest}}{R}+C \frac{du}{dt} \tag{5}I(t)=Ru(t)−urest+Cdtdu(5)
等式(5)左右两边同乘R,令时间常数τm=RC\tau_m=RCτm=RC,得:
τmdudt=−[u(t)−urest]+RI(t)(6)\tau_m \frac{du}{dt}=-[u(t)-u_{rest}]+RI(t) \tag{6}τmdtdu=−[u(t)−urest]+RI(t)(6)
由(6)式可以知道注入电流和细胞膜电位变化之间的关系,但需求解一阶微分方程才能得到最后的结果。(对解一阶微分方程感兴趣的可以继续往下看,不感兴趣的直接跳到以下几种不同注入电流情况。)
解一阶微分方程: dydx+P(x)⋅y=Q(x)(①)\frac{dy}{dx}+P(x)·y=Q(x) \tag ①dxdy+P(x)⋅y=Q(x)(①)
令dR(x)dx=R(x)⋅P(x)(②)\frac{dR(x)}{dx}=R(x)·P(x) \tag ②dxdR(x)=R(x)⋅P(x)(②)
①式两边同乘R(x),有
R(x)⋅dydx+R(x)⋅P(x)⋅y=R(x)⋅Q(x)R(x)·\frac{dy}{dx}+R(x)·P(x)·y=R(x)·Q(x)R(x)⋅dxdy+R(x)⋅P(x)⋅y=R(x)⋅Q(x)
ddx(y⋅R(x))=R(x)⋅Q(x)\frac{d}{dx}(y·R(x))=R(x)·Q(x)dxd(y⋅R(x))=R(x)⋅Q(x)
y⋅R(x)=∫R(x)⋅Q(x)dx+Cy·R(x)=\int R(x)·Q(x) dx+Cy⋅R(x)=∫R(x)⋅Q(x)dx+C
y=R−1(x)[∫R(x)⋅Q(x)dx+C](③)y=R^{-1}(x)[\int R(x)·Q(x) dx+C] \tag ③y=R−1(x)[∫R(x)⋅Q(x)dx+C](③)
而dR(x)dx=R(x)P(x)\frac{dR(x)}{dx}=R(x)P(x)dxdR(x)=R(x)P(x),有
dR(x)R(x)=P(x)dx\frac{dR(x)}{R(x)}=P(x)dxR(x)dR(x)=P(x)dx
dlnR(x)=P(x)dxd\ln R(x)=P(x)dx dlnR(x)=P(x)dx
lnR(x)=∫P(x)dx+C\ln R(x)=\int P(x)dx+ClnR(x)=∫P(x)dx+C
R(x)=C⋅e∫P(x)dxR(x)=C·e^{\int P(x)dx}R(x)=C⋅e∫P(x)dx
代入③,最终解得
y=e−∫P(x)dx[∫R(x)⋅Q(x)dx+C](④)y=e^{-\int P(x)dx}[\int R(x)·Q(x) dx+C] \tag ④y=e−∫P(x)dx[∫R(x)⋅Q(x)dx+C](④)
知道怎么求解一阶微分后,开始求解(6)式。
将(6)式改写成
dudt+u(t)τ=urest+RI(t)τ\frac{du}{dt}+\frac{u(t)}{\tau}=\frac{u_{rest}+RI(t)}{\tau}dtdu+τu(t)=τurest+RI(t)
对照①式(此时自变量是t)
P(t)=1τ,Q(t)=urest+RI(t)τmP(t)=\frac{1}{\tau}, Q(t)=\frac{u_{rest}+RI(t)}{\tau_m}P(t)=τ1,Q(t)=τmurest+RI(t)
由②得
R(t)=C⋅e∫1τdtR(t)=C·e^{\int \frac{1}{\tau}dt}R(t)=C⋅e∫τ1dt
代入④得
u(t)=e−∫1τdt[∫C⋅e∫1τdt⋅urest+RI(t)τdt+C]u(t)=e^{-\int \frac{1}{\tau}dt}[\int C·e^{\int \frac{1}{\tau}dt}·\frac{u_{rest}+RI(t)}{\tau}dt+C]u(t)=e−∫τ1dt[∫C⋅e∫τ1dt⋅τurest+RI(t)dt+C]
u(t)=e−∫1τdt[urestτ⋅∫C⋅e∫1τdt+1τ⋅∫C⋅e∫1τdt⋅RI(t)dt+C]u(t)=e^{-\int \frac{1}{\tau}dt}[\frac{u_{rest}}{\tau}·\int C·e^{\int \frac{1}{\tau}dt}+\frac{1}{\tau}·\int C·e^{\int \frac{1}{\tau}dt}·RI(t)dt+C]u(t)=e−∫τ1dt[τurest⋅∫C⋅e∫τ1dt+τ1⋅∫C⋅e∫τ1dt⋅RI(t)dt+C]
u(t)=e−tτ[urestτetτ⋅τ+Rτ∫etτI(t)dt+C]u(t)=e^{-\frac{t}{\tau}}[\frac{u_{rest}}{\tau}e^{\frac{t}{\tau}}·\tau+\frac{R}{\tau}\int e^{\frac{t}{\tau}}I(t)dt+C]u(t)=e−τt[τuresteτt⋅τ+τR∫eτtI(t)dt+C]
最终得到(6)式的解
u(t)=urest+e−tτ⋅Rτ∫etτI(t)dt+C⋅e−tτ(⑤)u(t)=u_{rest}+e^{-\frac{t}{\tau}}·\frac{R}{\tau}\int e^{\frac{t}{\tau}}I(t)dt+C·e^{-\frac{t}{\tau}} \tag ⑤u(t)=urest+e−τt⋅τR∫eτtI(t)dt+C⋅e−τt(⑤)
3.2 Integrate-and-fire model
接下来分情况讨论在几种电流注入的情况下,细胞膜电位会发生什么改变。
(1) 膜电位等于静息电位,有短暂的恒定电流注入神经元。
已知在t=0时刻,细胞膜电位是静息电位,即u(0)=urest 。在这一时刻,注入电流I(t)=I0,直到t=△时,停止电流注入。在0<t<△期间,细胞膜电位的变化为:
u(t)=urest+RI0[1−exp(−tτm)](7)u(t)=u_{rest}+RI_0[1-exp(-\frac{t}{\tau_m})] \tag{7}u(t)=urest+RI0[1−exp(−τmt)](7)
当0<t<△,电流恒定为I0,⑤式化简为
u(t)=urest+e−tτ⋅Rτ∫etτI0dt+C⋅e−tτu(t)=u_{rest}+e^{-\frac{t}{\tau}}·\frac{R}{\tau}\int e^{\frac{t}{\tau}}I_0dt+C·e^{-\frac{t}{\tau}}u(t)=urest+e−τt⋅τR∫eτtI0dt+C⋅e−τt
u(t)=urest+RI0+C⋅e−tτ(⑥)u(t)=u_{rest}+RI_0+C·e^{-\frac{t}{\tau}} \tag ⑥u(t)=urest+RI0+C⋅e−τt(⑥)
现在⑥式的未知数只有C了,当t=0时,u(0)=urest,代入⑥式解出C
u(0)=urest+R⋅I0+C⋅e−0τ=urestu(0)=u_{rest}+R·I_0+C·e^{-\frac{0}{\tau}}=u_{rest}u(0)=urest+R⋅I0+C⋅e−τ0=urest
C=−RI0C=-RI_0C=−RI0
代入⑥式得
u(t)=urest+RI0[1−exp(−tτm)](7)u(t)=u_{rest}+RI_0[1-exp(-\frac{t}{\tau_m})] \tag{7}u(t)=urest+RI0[1−exp(−τmt)](7)
用matlab模拟静息电位下注入恒定电流:
% t=0, U(0)=Urest. 输入电流恒定为I0dt = 0.00001;
Urest = -65e-3;
tau = 0.01;
I0 = 4e-9;
R = 5e6;tvec = 0:dt:0.1;
Vvec = zeros(size(tvec));
Vvec(1) = Urest;for i = 2 : length(tvec)Vvec(i) = Urest + R * I0 * (1 - exp(-tvec(i-1)/tau));
endfigure
plot(tvec, Vvec);
(喂!动手算一算,不要直接拖下来看图呀)
结果如图所示
(干巴巴的看书好无聊哦,动手实现一下数学模型就好玩多啦。感觉这些数学家们好厉害,能想出这样的物理模型,然后用严谨的数学去验证自己的模型,其实和真实神经元的电位变化是非常接近的。)
(2) 膜电位不等于静息电位,停止注入电流。
膜电位受电流刺激的影响,不等于静息电位,u(t)=urest+△u。当t=t_0时,停止注入电流,即I(t)=0,膜电位会慢慢恢复至静息电位。当t>t0时,电位变化为:
u(t)=urest+△u⋅e−t−t0τ(8)u(t)=u_{rest}+△u·e^{-\frac{t-t_0}{\tau}} \tag 8u(t)=urest+△u⋅e−τt−t0(8)
因为I(t)=0,⑤式可化简为
u(t)=urest+C⋅e−tτ(⑦)u(t)=u_{rest}+C·e^{-\frac {t}{\tau}} \tag ⑦u(t)=urest+C⋅e−τt(⑦)
同样的,需要求解C。当t=t0时,u(t)=urest+△u
u(t)=urest+C⋅e−t0τ=urest+△uu(t)=u_{rest}+C·e^{-\frac {t_0}{\tau}}=u_{rest}+△uu(t)=urest+C⋅e−τt0=urest+△u
解得
C=△u⋅et0τC=△u·e^{\frac {t_0}{\tau}} C=△u⋅eτt0
代入⑦得
u(t)=urest+△u⋅e−t−t0τ,t>t0(8)u(t)=u_{rest}+△u·e^{-\frac {t-t_0}{\tau}}, t>t_0\tag 8u(t)=urest+△u⋅e−τt−t0,t>t0(8)
用matlab模拟停止电流注入后,膜电位的变化情况:
% 在t=0时刻,电压值为Urest+△U。t>0后,注入电流结束,I=0。电位会慢慢恢复至静息电位。dt = 0.00001;
Urest = -65e-3;
Uthre = -50e-3;dU = 1e-3;
tau = 0.01;tvec = 0:dt:0.1;
Vvec = zeros(size(tvec));
Vvec(1) = Urest + dU;for i = 2 : length(tvec)Vvec(i) = Urest + dU * exp(-tvec(i-1)/tau);
endfigure
plot(tvec, Vvec);
结果如图所示:
留作业啦:两种电流结合起来怎么做呢?(暂时不用考虑膜电位达到阈值会发放脉冲。)
参考结果:
(3) 细胞受到电流刺激达到阈值,发放脉冲。
当输入的电流刺激达到一定的阈值后,会使神经元产生动作电位,在电压图上看起来就像是发放脉冲。
IF模型将脉冲发放的时间看成无穷小,即发放脉冲的持续时间接近0。模型简化为:脉冲的发放是一个瞬时的过程,在电压图上看起来就是一条垂直向上的线;脉冲发放完毕后,电压瞬间重置为低于静息电位的值。最后缓慢回到静息电位。
代码如下:
% 膜电位超过阈值时,发放spike,后膜电位立刻设为小于Ur的值,最后缓慢恢复至静息电位。dt = 0.00001;
Urest = -65e-3;
Uthre = -50e-3;
Ur = -75e-3;
Uf = -20e-3;
tau = 0.01;
I0 = 4e-9;
R = 5e6;t1 = 0:dt:0.02;
V1 = zeros(size(t1));
V1(1) = Urest;dU = 0;
x = 0;for i = 2 : length(t1)V1(i) = Urest + R * I0 * (1 - exp(-t1(i-1)/tau));if V1(i) >= UthreV1(i) = Uf;V1(i+1) = Ur;dU = Ur - Urest;x = i;break;end
endt2 = t1(x):dt:0.1;
V2 = zeros(size(t2));
V2(1) = Urest + dU;for i = 2 : length(t2)V2(i) = Urest + dU * exp(-(t2(i-1)-t1(x))/tau);
endT = t1(1, 1:x);
V = V1(1, 1:x);figure
plot([T t2], [V V2]);
(4) 定时输入电流,产生连续的脉冲。
% 考虑阈值,定时电流刺激dt = 0.00001;
Urest = -65e-3;
Uthre = -50e-3;
Ur = -75e-3;
Uf = -20e-3;
tau = 0.01;
I0 = 4e-9;
R = 5e6;t = 0:dt:0.5;
U = zeros(size(t));
U(1) = Urest;dU = Ur - Urest;
x = 0;
i = 2;
j = 1;while i < length(t)U(i) = Urest + R * I0 * (1 - exp(-t(j)/tau)); %刺激升高膜电位j = j + 1;if U(i) >= UthreU(i) = Uf;i = i + 1;U(i) = Ur;x = i;flag = 0;while t(i) ~= 0.1 && t(i) ~= 0.25 && t(i) ~= 0.32 && t(i) ~= 0.4 && t(i) ~= 0.5U(i) = Urest + dU * exp(-(t(i-1)-t(x))/tau);i = i + 1;flag = 1;endif flag == 1i = i - 1;j = 1;endendi = i + 1;
endfigure
plot(t, U);
3.3 模型的优缺点
(1) 优点
IF模型,通过动态的设计神经元模型的发放阈值,考虑了适应性和不应期,能准确的预测脉冲发放的时间。
(2) 缺点
IF模型的缺点,在于模型过于简化了细胞,模型简单。
- 膜电位仅由前突触神经元或注入电流决定,与后突触神经元无关。
- 线性的累积前突触刺激。
- 每次发放脉冲后,会重置膜电位,以至于前一个脉冲没有保存起来。
(我。。。终于写完了)
[Neuronal Dynamics 笔记] I Foundations of Neuronal Dynamics - 1 Introduction相关推荐
- [Neuronal Dynamics 笔记] I Foundations of Neuronal Dynamics - 2 The Hodgkin-Huxley Model
The Hodgkin-Huxley Model 1. HH模型的电路结构 (1)电容 (2)电阻 (3)电池 2. 电流注入对模型产生的影响 (1)ICI_CIC (2)ILI_LIL (3)I ...
- Dynamics 365 App for Outlook 与 Dynamics 365 for Outlook(已被弃用)
在最新的版本中Dynamics 365 for Outlook(Outlook 客户端)已被弃用 随 Dynamics CRM 2016(版本 8.0)引入的 Dynamics 365 App for ...
- Coursera公开课笔记: 斯坦福大学机器学习第一课“引言(Introduction)”
Coursera公开课笔记: 斯坦福大学机器学习第一课"引言(Introduction)" 注:这是我在"我爱公开课"上做的学习笔记,会在52opencours ...
- ntu课程笔记:MDA(Mechanics, Dynamics and Aesthetic)
1 作为状态机的游戏 2 作为软件的游戏 Mechanics 将一个游戏形式化成系统的规则和概念 eg,玩家可以执行的动作.玩家需要遵守的规则.玩家不能操控的东西 rule 又分为play mech ...
- 【读书笔记】Foundations of Cryptography: A Prime
Foundations of Cryptography (A Primer) 密码学基础(入门书) 作者:Oded Goldreich 链接:http://www.wisdom.weizmann.ac ...
- Dynamics CRM Trace Reader for Microsoft Dynamics CRM
CRM中抓取日志的视窗工作叫做Diagnastics Tools For Dyanmics CRM,这个工具我们只是作为一个开关来用就不做多介绍了,日志生成后是个文本文档可读性是很差的,那就需要个视窗 ...
- 李菲菲课程笔记:Deep Learning for Computer Vision – Introduction to Convolution Neural Networks
转载自:http://www.analyticsvidhya.com/blog/2016/04/deep-learning-computer-vision-introduction-convoluti ...
- Microsoft Dynamics CRM 2013 试用之系统篇 正式安装 Microsoft Dynamics CRM Server 2013
想学习Microsoft Dynamics CRM, 建议从本人博客CRM中从早到晚日期,完整看一遍,然后再安装. 安装需要的文件直接到微软官方下载 1. 下载 Microsoft Dynamics ...
- Microsoft Dynamics CRM 2013 and 2011 Update Rollups and Service Packs
Microsoft Dynamics CRM 2013 BTW: RC stands for Release for Candidate, and RTM stands for Release to ...
最新文章
- 百度链接提交-主动推送Python版
- 如何查看dll被那个service占用_不小心执行 rm -f,该如何恢复?
- 运算符的优先级和实际操作
- 三、在应用中升级----网络编程部分
- 【SimpleITK】坐标次序问题
- Gdiplus的使用 gdi+
- 大型电子病历系统【整套源代码分享】
- 串标是什么意思?用同一台电脑制作或上传投标书,会被认定为串标吗?
- python判断一个数是否为质数(素数)
- 深度学习-感知机模型---思路图解+python代码
- ThinkAdmin列目录/任意文件读取(CVE-2020-25540 )漏洞复现及环境搭建
- 2022-08-15 第一组 顾元皓 学习笔记
- 老牛不知所以然-html中超长文字单行省略对弹性盒子约束的破坏现象
- 关于马化腾的故事(转自知乎)
- 浅谈Java8之lambda表达式
- linux报错Loading mirror speeds from cached hostfile解决方法 【yum错误记录】
- 做人得厚道,不是么?
- vue和react选择_如何在角度React和Vue之间选择,并且每次都正确
- 如何实现飞书自建应用PC端指定浏览器打开
- 看到一个伙计遇到的服务端编程遇到的问题 赶紧复制过来