sigmoid与tanh激活函数绘图指南:Matplotlib逐行代码与常见坑
简介这是一份面向深度学习入门者的 PDF 图文教程围绕 Sigmoid 与 Tanh 两种激活函数的可视化展开。资源以“小白系列”为定位从函数定义、数学表达式到 Matplotlib 绘图代码逐行拆解覆盖两种常见画法一是分别用子图绘制 Sigmoid值域 0~1和 Tanh值域 -1~1曲线二是利用 tanh(x)2·sigmoid(2x)-1 将两者合并在同一坐标系中对比直观看出形状差异。整份资源共包含 1 个 PDF 文件压缩包大小仅 119KB内容集中适合快速阅读与反复查阅。目前已有 4114 人学习下载是深度学习初学者理解激活函数特性的实用材料。PDF 内包含完整可运行代码、坐标轴边框位置设置、刻度调整、图例与 savefig 保存等关键注释并附带对梯度消失问题的简要提醒。读者可对照代码亲手复现在动手过程中掌握基础绘图技巧为后续构建神经网络模型打下扎实基础。1. 把 sigmoid 和 tanh 画明白这份逐行代码资源能帮你少走两小时弯路很多刚开始碰深度学习的朋友第一个拦路虎不是反向传播而是“画激活函数图”。网上教程一抓一大把但你照着敲完坐标轴乱飞、负号变方块、sigmoid 和 tanh 挤在一张图上比例全不对的情况我见得太多了。这份资源用两段完整代码把 sigmoid 和 tanh 激活函数的绘制拆成“分开画”和“合起来画”两种姿势每行都有注释和说明直接复制就能跑出论文里那种坐标轴过零点的标准图。适合刚入门神经网络、被 matplotlib 坐标轴绕晕的同学也适合要给备课文档配图、需要快速产出函数曲线图的从业者。我自己拿到手第一反应是如果当初有人这样拆代码我能少熬夜两小时。2. 先把函数定义写对sigmoid 与 tanh 的数学式和 numpy 实现2.1 sigmoid 的代码写法1.0 / (1.0 np.exp(-x)) 每一段都不能省sigmoid 的数学表达式是 f(x) 1 / (1 e^(-x))值域落在 (0, 1)是一条经典的 S 型曲线。代码里实现得非常直接def sigmoid(x): return 1.0 / (1.0 np.exp(-x))这个函数看起来只有一行但三个细节值得说清楚。第一分子分母全部写 1.0 而不是 1是为了强制浮点除法避免在某些 Python 版本或环境下出现整数相除截断的问题虽然 Python 3 里/已经是真除法但写成 1.0 是很多资深开发者保留的习惯不容易翻车。第二np.exp(-x) 对数组逐元素计算指数因为调用方传入的 x 是 np.linspace 生成的 numpy 数组如果这里误写成 math.exp(-x)会直接抛 TypeError因为 math.exp 只接受标量。第三这个朴素写法在 x 取很大负数时有隐患当 x -1000 时-x 1000np.exp(1000) 会溢出结果直接变成 infsigmoid 返回 0 倒是没毛病反过来 x 很大正数时 np.exp(-x) 下溢为 0返回 1.0 也正常。但如果你要把这个函数用到网络前向计算里更稳妥的数值稳定写法是分段处理def sigmoid_stable(x): # 分别处理正负区间避免 exp 溢出 return np.where(x 0, 1.0 / (1.0 np.exp(-x)), np.exp(x) / (1.0 np.exp(x)))绘制曲线时 x 在 [-8, 8] 区间内朴素写法完全够用我一般就直接用第一种但心里清楚它的边界在哪。2.2 tanh 的双曲正切写法原式与 np.tanh 的差异在哪里tanh 的数学定义是 (e^x - e^(-x)) / (e^x e^(-x))值域 (-1, 1)关于原点中心对称。资源里的实现同样是一行def tanh(x): return (np.exp(x) - np.exp(-x)) / (np.exp(x) np.exp(-x))从数学角度这毫无问题但在浮点计算层面当 x 绝对值超过 700 左右float64 的 np.exp(x) 就会溢出成 inf分子分母同时是 inf 时结果是 nan。这就是为什么实际工程里我更习惯直接调 np.tanh(x)它内部会做溢出保护速度也更快。不过作为绘图资源x 范围通常在 -10 到 10 之间原式写法反而能让初学者看清定义本身所以拿来教学完全没有问题。这里要补充一个关键认知tanh 和 sigmoid 不是两个独立的函数它们之间存在恒等关系 tanh(x) 2·sigmoid(2x) - 1。资源里合起来画的代码正是用这个数学推导偷懒的后面第 4 章我会把推导过程一行行展开。绘图前建议在文件顶部统一设置 plt.rcParams[axes.unicode_minus] False这个配置专门解决坐标轴负号显示成方块的问题很多人漏了这一步导出图片后才发现满图都是方块只能返工。3. 分开画两个 subplot 逐行拆解spines 坐标轴设置的四个关键动作3.1 完整代码跑通一个画布两个子图左边 sigmoid 右边 tanh先把资源里分开画的完整代码贴出来我加了必要的注释修复了原稿的缩进问题import matplotlib.pyplot as plt import numpy as np # 让坐标轴上的负号正常显示为短横线而不是方块 plt.rcParams[axes.unicode_minus] False def sigmoid(x): return 1.0 / (1.0 np.exp(-x)) def tanh(x): return (np.exp(x) - np.exp(-x)) / (np.exp(x) np.exp(-x)) # 生成从 -8 到 8 的 50 个等间距点作为绘图的自变量 x np.linspace(-8, 8) # 创建 12 英寸宽、4 英寸高的画布122 表示一行两列 fig plt.figure(figsize(12, 4)) # 第一个子图sigmoid ax1 plt.subplot(121) ax1.spines[top].set_color(none) # 隐藏上边框 ax1.spines[left].set_color(none) # 隐藏左边框 ax1.spines[bottom].set_position((data, 0)) # x 轴放到 y0 的位置 ax1.spines[right].set_position((data, -8)) # y 轴放到 x-8 的位置 ax1.set_xticks(range(-8, 10, 2)) # x 轴刻度-8 到 8 步长 2 ax1.set_yticks(np.linspace(0, 1, 6)) # y 轴刻度0 到 1 共 6 个点 plt.plot(x, sigmoid(x), labelSigmoid, colorblue) plt.legend() # 第二个子图tanh ax2 plt.subplot(122) ax2.spines[top].set_color(none) ax2.spines[left].set_color(none) ax2.spines[bottom].set_position((data, 0)) ax2.spines[right].set_position((data, 0)) # 左右边框在 x0 处重叠 ax2.set_xticks(range(-8, 10, 2)) ax2.set_yticks(np.linspace(-1, 1, 11)) # -1 到 1 共 11 个点步长 0.2 plt.plot(x, tanh(x), labelTanh, colorred) plt.legend() plt.show() plt.savefig(picture.png)这段代码的逻辑是先用 np.linspace(-8, 8) 生成 50 个采样点默认参数 num50绘图时曲线已经足够平滑。然后通过 plt.subplot(121) 和 122 在同一个画布上排列两个子图121 表示 1 行 2 列的第 1 个位置。两个子图共用同一个 x 数据只是 y 值分别来自 sigmoid 和 tanh 函数。这里最值得学的是 spines 的四个设置隐藏上边框和左边框、把下边框移动到 y0、把右边框移动到 x-8第一个图或 x0第二个图。这样画出来的坐标系就是常见的十字坐标轴样式曲线从原点附近向两侧延展而不是被画布默认的四边框框住。3.2 spines 参数对照set_color 与 set_position 的行为边界很多初学者第一次看到 ax.spines[top].set_color(none) 会以为这只是把线变白其实 set_color(none) 是彻底关闭该边框的渲染比设置白色更干净因为白色在导出 PDF 或透明背景时可能残留。set_position((data, 0)) 的第二个参数是数据坐标系中的具体数值不是像素坐标这一点非常容易理解错。我把四个动作整理成对照表代码动作作用对象效果常见误用set_color(none)上/左边框隐藏边框线绘图区域只剩下和右两条边误以为只是改颜色导致导出后残留细线set_position((data, 0))下边框把 x 轴放到数据坐标 y0 处写成 (axes, 0) 变成按画布比例定位结果坐标轴位置随窗口大小漂移set_position((data, -8))右边框第一个子图中把 y 轴放到 x-8 处不设置时 y 轴默认在右侧 x8sigmoid 曲线的起点悬空set_position((data, 0))右边框第二个子图中 y 轴与 x 轴相交于原点与左边框同时隐藏时tanh 负半轴曲线没有纵轴参考两个子图有一个细节差异sigmoid 子图把右边框放到 x-8相当于 y 轴在整个绘图区最左侧tanh 子图把右边框也放到 x0导致左右边框在 x0 处重叠成一条线视觉上可能显得比 x 轴粗一圈。这是原资源的原样写法画出来完全可用如果你想更干净可以把 ax2.spines[left].set_color(none) 改成保留左边框并移到 x0然后隐藏右边框效果一样但不会出现双线叠加。set_xticks(range(-8, 10, 2)) 里的 range 终点写 10 是因为 range 左闭右开想要刻度到 8 就必须让结束值比 8 大 2这个细节我见过不止一个人改成 range(-8, 8, 2)结果最后一个刻度 8 消失了。set_yticks(np.linspace(0, 1, 6)) 生成 0、0.2、0.4、0.6、0.8、1.0 六个刻度正好对应该函数的值域边界tanh 的 y 刻度用 np.linspace(-1, 1, 11) 生成从 -1 到 1 的 11 个点步长 0.2保证了两个子图的 y 轴刻度密度协调。4. 合起来画单坐标系对比与 tanh 2σ(2x) - 1 的真实含义4.1 数学推导先行为什么 tanh 能用 sigmoid 表达资源里合起来画的代码用了 tanh 2 * sigmoid(2 * x) - 1 这个结论注释写此处用了数学推导。这个推导不复杂我先把完整过程写在下面σ(2x) 1 / (1 e^(-2x))那么 2·σ(2x) - 1 2 / (1 e^(-2x)) - 1 (2 - (1 e^(-2x))) / (1 e^(-2x)) (1 - e^(-2x)) / (1 e^(-2x))。把分子分母同时乘以 e^x就得到 (e^x - e^(-x)) / (e^x e^(-x))这就是双曲正切的定义式。所以代码里只需定义一次 sigmoid 函数再用一次四则运算就能构造出 tanh 曲线不需要再单独写 def tanh()。这个思路在绘图资源里很常见能省一行函数定义但如果不理解推导后面调整参数时很容易把横纵坐标搞混。注意这里的变量 x 是 np.linspace(-10, 10) 生成的数组sigmoid(2 * x) 返回的是与 x 等长的数组乘 2 减 1 后得到的是以 x 为自变量的 tanh 函数值数组它的横坐标应该是 x 本身而不是 2x。资源原代码在绘图时写的是 plt.plot(2 * x, tanh)这里埋了一个值得拿出来单独说的坑你先记下第 5 章我会展开讲。4.2 合画完整代码xlim 与 ylim 的裁剪逻辑和坐标轴回正合起来画的完整代码如下我按可运行的标准补齐了缩进和注释import matplotlib.pyplot as plt import numpy as np plt.rcParams[axes.unicode_minus] False def sigmoid(x): return 1.0 / (1.0 np.exp(-x)) x np.linspace(-10, 10) y sigmoid(x) tanh 2 * sigmoid(2 * x) - 1 # 用推导式构造 tanh避免重复定义 fig plt.figure(figsize(6, 4)) ax fig.add_subplot(111) # 等价于 plt.subplot(1, 1, 1) # 隐藏上边框和右边框 ax.spines[top].set_color(none) ax.spines[right].set_color(none) # 把刻度标记移到下边框和左边框避免刻度悬空 ax.xaxis.set_ticks_position(bottom) ax.yaxis.set_ticks_position(left) # 把 x 轴下边框放到 y0把 y 轴左边框放到 x0 ax.spines[bottom].set_position((data, 0)) ax.spines[left].set_position((data, 0)) # 手动限定显示范围x 只看到 -8 到 8y 只看到 -1.1 到 1.1 plt.xlim(-8, 8) plt.ylim(-1.1, 1.1) ax.set_xticks(range(-8, 10, 2)) ax.set_yticks(np.linspace(-1, 1, 11)) plt.plot(x, y, labelSigmoid, colorblue) plt.plot(2 * x, tanh, labelTanh, colorred) plt.legend() plt.savefig(picture.png) plt.show()这段代码和分开画的核心区别在于x 数据范围是 -10 到 10但通过 plt.xlim(-8, 8) 把显示窗口裁剪到 -8 到 8这样两条曲线在两边各留出一小段缓冲不会紧贴画布边缘。plt.ylim(-1.1, 1.1) 的上限取 1.1 而不是 1是为了给左上角的 legend 图例留出空间因为 sigmoid 在 x8 时已经非常接近 1.0如果 ylim 上限正好是 1图例文字会被画布边界切掉。fig.add_subplot(111) 与 plt.subplot(1, 1, 1) 等价只是面向对象的写法在复杂图表中更推荐前者因为它返回的 ax 对象可以继续做精细控制。xaxis.set_ticks_position(bottom) 的作用是把 x 轴刻度数字挪到下边框上否则隐藏了上边框后刻度可能还遗留在顶部位置看起来很分裂。这里还要注意一个执行顺序先 set_position 再 set_xlim、set_ylim因为 spines 的位置绑定的是数据坐标如果在 xlim 之后再设置 spines某些 matplotlib 版本下会出现坐标轴位置与刻度范围不一致的怪象我后面踩坑章会细说。4.3 参数调整对照figsize、采样区间和刻度密度怎么配合合起来画的 figsize 是 (6, 4)比分开画的 (12, 4) 窄很多。原因是单坐标系只有一张图不需要横向拆两个子图。如果你想把图直接放进论文里我一般会用 figsize(8, 5)dpi300 导出如果只是放在 PPT 里示意默认 100 dpi 足够。采样区间 np.linspace(-10, 10) 比分开画的 -8 到 8 更宽配合 xlim 裁剪后曲线在两端更饱满不会出现曲线末端正好落在画布边缘的局促感。刻度密度上x 轴步长 2、y 轴步长 0.2 是比较均衡的组合如果你把 xlim 改成 -12 到 12步长可以放大到 3 或 4否则刻度太密会糊成一团。y 轴刻度用 np.linspace(-1, 1, 11) 分成 11 个点和 tanh 的值域精确对齐sigmoid 的值域是 (0, 1)但在这张合图里没有单独为它设置 y 刻度所以 sigmoid 曲线在 y 轴上的读数需要靠肉眼估算。这一章讲到这里核心逻辑已经全跑通了。5. 常见问题排查负号方块、坐标轴飞出、曲线对不上四个高频坑5.1 负号全部变成方块坐标轴刻度没法看现象绘图代码跑完图片里所有负数刻度的负号都显示成一个小方块比如 -8 显示成□8尤其是导出 PNG 后特别明显。原因matplotlib 默认字体在渲染 Unicode 负号 U2212 时找不到合适字形就会退回占位符。解决在任何绘图代码开头加上 plt.rcParams[axes.unicode_minus] False强制 matplotlib 使用 ASCII 短横线代替 Unicode 负号。这个配置必须放在创建画布之前才生效很多人把它放在 plt.plot 之后结果配置没来得及应用图已经画完了。我自己的习惯是 import 完 pyplot 立刻设置和字体配置放一起这样所有图都能继承。5.2 坐标轴位置跟着窗口跑缩放后就错位现象设置好 ax.spines[bottom].set_position((data, 0)) 后图窗刚弹出来时坐标轴位置正常但手动拉伸窗口或保存成不同尺寸的图片x 轴就不再经过 y0 点了。原因虽然 set_position 接收的参数明确是 (data, 0)但在某些旧版本 matplotlib 中如果同时设置了 axes 定位模式窗口缩放时数据坐标到像素坐标的映射会重新计算旧的位置信息被覆盖。解决把 set_position 放在所有 set_xlim、set_ylim 之后执行并且不要在同一脚本里混用 ax.spines 定位和 fig.subplots_adjust 的边距调整两者会互相干扰。还有一个更隐蔽的坑分开画的第一个子图里 ax1.spines[right].set_position((data, -8))这里 -8 是数据坐标如果之后你改了 xlim 范围比如改成 -5 到 5那么 y 轴会被移到 x-8直接落在可见区域之外看起来就像是坐标轴凭空消失了。遇到这种情况检查一下 set_position 的数值是否还在当前 xlim 范围内十有八九是这里出了问题。5.3 分开画与合起来画tanh 曲线形状对不上现象把分开画得到的 tanh 曲线和合起来画得到的红色曲线叠在一起对比发现两条曲线宽窄、陡峭程度明显不一样甚至合起来画的那条只显示了一小段。原因这个坑非常典型问题出在原代码这一行——plt.plot(2 * x, tanh)。tanh 这个变量里存的已经是以 x 为自变量的 tanh 函数值正确的绘图语句应该是 plt.plot(x, tanh)。资源原作者写 2 * x 作为横坐标本意可能是想强调 tanh 2·sigmoid(2x) - 1 公式里的 2x但这样一来横坐标被放大了两倍原本 x 从 -10 到 10 对应 tanh 从接近 -1 到接近 1现在横坐标变成 -20 到 20加上前面 plt.xlim(-8, 8) 的裁剪实际只显示了 x 从 -4 到 4 的中间段曲线看起来就像被人从两边剪掉了一大截。解决把第 14 行改成 plt.plot(x, tanh, labelTanh, colorred)这样两条曲线在同一横坐标范围下对比才是正确的。我复现这个问题时先是用 np.allclose 对比了两种方式生成的 y 值发现数值完全一致但图不一样才意识到是横坐标出了问题。建议你改完代码后把 x 范围统一成 np.linspace(-8, 8)再分别查看两种画法的 xticks 范围确认两个图横坐标一致。5.4 savefig 保存出空白图或图片尺寸不对现象plt.show() 弹出图像窗口后再执行 plt.savefig(picture.png)生成的 PNG 文件是空白的或者只有标题没有曲线。原因在部分交互式后端比如 QtAgg下show() 会阻塞主线程并接管图形窗口直到窗口被手动关闭此时 figure 对象可能已经被清理savefig 拾取不到绘图内容另一种常见情况是硬盘上有同名 picture.png 被旧的空白文件占用新文件没写进去直接覆盖了旧文件。解决核心习惯是把 savefig 放在 show 之前plt.savefig(picture.png, dpi150, bbox_inchestight) plt.show()这样无论 show 之后发生什么文件都已经写盘了。bbox_inchestight 会裁掉图片周围多余的留白让曲线区域占满画布这是导出插图时最实用的参数。如果你同时生成了多张图比如分开画的两个子图想分别保存成两张图片不要直接对 fig 调用 savefig而是先用 fig.add_subplot 拿到的 ax 对象访问 ax.figure.savefig或者干脆分两次运行脚本否则保存的永远只有最后一帧。我在刚开始画这些曲线时就因为 savefig 位置放错连续导出了三张空白图从那以后强制自己先 save 再 show。6. 进阶从“画出来”到“验得对”三个能直接用的验证技巧6.1 用数值验算确认函数实现没问题画图前先做一次数值断言确认函数实现没有在抄代码时抄错# 关键节点验证sigmoid(0)0.5tanh(0)0tanh(1)≈0.7616 assert abs(sigmoid(0) - 0.5) 1e-12 assert abs(tanh(0)) 1e-12 assert abs(tanh(1) - 0.7615941559557649) 1e-10 # 验证恒等式tanh(x) 与 2*sigmoid(2*x)-1 逐点一致 x np.linspace(-10, 10, 500) assert np.allclose(tanh(x), 2 * sigmoid(2 * x) - 1, atol1e-12) print(验证通过)这组断言如果跑不过说明函数定义或数据类型有问题先解决它再谈绘图。数值验算是所有绘图工作的前提曲线画得再漂亮数值错了也是白搭。6.2 顺手把导数画出来提前感知梯度消失风险激活函数的形状是表象梯度行为才是选型的依据。sigmoid 的导数是 σ(x)(1-σ(x))最大值才 0.25tanh 的导数是 1 - tanh²(x)最大值是 1。从合成图中可以直观看到sigmoid 在 x0 附近斜率最陡但也不超过 0.25两端梯度趋近于零这就是梯度消失的结构性来源tanh 在原点附近梯度为 1比 sigmoid 强很多。把导数曲线叠在函数图下方做双子图是给组里新人讲激活函数最直观的讲法。6.3 我的画图习惯我现在拿到任何激活函数绘图需求都固定走三遍流程先跑数值断言再 savefig 后 show最后用 np.allclose 验证两种画法的曲线一致性。这套流程救了我很多次尤其是从别人那里拷代码时至少有一半的图存在横坐标错位或刻度缺失问题。从那以后我每次画激活函数都强制走一遍数值验证再出图希望帮到你。本文还有配套的精品资源点击获取

相关新闻

Python pathlib 详解:从 os.path 到跨平台路径对象

Python pathlib 详解:从 os.path 到跨平台路径对象

说实话,我刚开始学 Python 的时候,写路径处理全是 os.path.join(os.path.dirname(os.path.abspath(__file__)), data, config.json) 这种套娃写法。每次看到那串代码都头皮发麻,最离谱的是代码在 Windows 上跑得好好的,换到 Lin…

2026/10/12 15:28:42 阅读更多 →
上下文 vs OpenClaw:AI记忆的两种打开方式,TaoToken统一Key怎么选

上下文 vs OpenClaw:AI记忆的两种打开方式,TaoToken统一Key怎么选

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 15:28:42 阅读更多 →
Persome核心原理解析:Point、Line、Face、Volume、Root如何构建一个关于你的模型

Persome核心原理解析:Point、Line、Face、Volume、Root如何构建一个关于你的模型

【免费下载链接】personal-model Build your HUMAN.md. 项目地址: https://gitcode.com/gh_mirrors/pe/personal-model 点击查看 免费下载 Persome(personal-model) 是一个开源、本地优先的 Personal Model(个人模型)…

2026/10/12 15:27:41 阅读更多 →

最新新闻

open-code-review:从个人经验到流程驱动的代码审查实践

open-code-review:从个人经验到流程驱动的代码审查实践

1. 项目缘起与核心定位第一次看到“open-code-review”这个标题,我脑子里蹦出来的不是某个具体工具,而是一整套协作流程。代码审查这件事,但凡在团队里写过几年代码的人都懂——它既是保证质量的最后一道闸门,也是最容易变成走过场…

2026/10/12 19:49:04 阅读更多 →
Confluence多空间检索指南:CQL语法与实操技巧

Confluence多空间检索指南:CQL语法与实操技巧

最近有个同事跑过来问我:"我想在Confluence里一次性搜好几个项目空间的内容,CQL应该怎么写?"他手里管着四五个业务空间,每次找资料要么一个空间一个空间地切,要么用全局搜索出来一大堆无关结果,烦…

2026/10/12 19:49:04 阅读更多 →
员工信息管理系统课设文档:从需求分析到数据库设计的完整工程实践

员工信息管理系统课设文档:从需求分析到数据库设计的完整工程实践

简介:本资源是一份面向计算机专业本科生与初学者的软件工程课程设计完整文档,聚焦企业员工信息管理系统的分析、设计与实现,解决传统手工管理效率低、易出错等现实问题。文档采用模块化设计思想,基于Windows XP平台,以…

2026/10/12 19:49:04 阅读更多 →
Cucumber测试报告实战:从Gherkin到CI/CD的完整避坑指南

Cucumber测试报告实战:从Gherkin到CI/CD的完整避坑指南

做自动化测试这么多年,我经手最多的就是Cucumber测试报告。很多人跑完一条用例,看到控制台飘出一屏幕绿色就觉得万事大吉,可真走到CI流水线、走回归、走验收评审的时候,报告要么差字段,要么打不开,要么失败…

2026/10/12 19:49:04 阅读更多 →
大模型工具调用实战:WorkMate内置工具包从设计到落地复盘

大模型工具调用实战:WorkMate内置工具包从设计到落地复盘

做 AI 应用这一年多,我最大的感受是:模型本身的能力早就不是瓶颈,真正拉开差距的,是它“够得着”什么。WorkMate 这个内部助手项目刚起步时,我们只给它接了两三个 API,结果它就像一个刚入职但双手被绑住的新…

2026/10/12 19:49:04 阅读更多 →
2026年亲测AI论文平台榜单(合规高效版):把Base URL改到TaoToken的实测记录

2026年亲测AI论文平台榜单(合规高效版):把Base URL改到TaoToken的实测记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 19:48:04 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →