新闻详情

新闻详情

首页 / 资讯中心 / 详情

脑网络图论指标与BCT工具包详解:从聚类系数到小世界属性

发布时间:2026/9/16 23:02:57来源:尧图网络
脑网络图论指标与BCT工具包详解:从聚类系数到小世界属性
1. 脑网络分析先搞清楚一件事图论指标到底在算什么做脑网络研究的人不管是拿 fMRI、EEG 还是 DTI 数据最后几乎都会落到同一个问题上怎么用数字描述大脑的连接受损或优化聚类系数、特征路径长度、小世界属性……这些词看着像数学课本里翻出来的其实落到实际研究里它们就是一把尺子量的是大脑这个复杂网络的组织方式。在我接触过的很多初学者里有个很常见的误区一上来就套 BCT 工具包跑出一堆指标但完全不清楚每个指标背后的生物学含义。结果写论文的时候被审稿人一问“为什么选这个指标”就卡住了。所以这篇文章我想换个讲法——先讲清楚指标本身是在回答什么问题再给实操代码最后把 BCT 工具包从头到尾过一遍。这样你拿到数据后能真正自己跑通而不是复制粘贴完就发朋友圈。那什么是图论里的“图”很简单就是一堆节点node和一堆边edge。放到脑网络里节点就是大脑区域边就是区域之间的连接。这个连接可以是结构性的比如白质纤维束的走向也可以是功能性的比如两个脑区在扫描过程中活动的相关性。有了这个抽象大脑就从一堆复杂的信号变成了一个可以计算的网络对象聚类系数、路径长度这些图论指标才能派上用场。BCT 工具包也就是 Brain Connectivity Toolbox是脑网络分析领域最常用的开源 MATLAB 工具包之一。由 Olaf Sporns 团队维护涵盖了几乎所有主流图论指标的计算函数而且支持二值网络和加权网络。它解决的最大问题就是你不需要从零写图论算法而是可以把精力集中在数据清理和结果解释上。我后面会用大量 BCT 函数来做示例先提个醒BCT 的函数命名是有规律的搞清楚命名规则能让你少翻无数次文档。2. 5个必知图论指标逐个拆解每个指标回答什么问题2.1 聚类系数局部网络有多抱团先说说聚类系数Clustering Coefficient。这个指标考察的是网络的局部信息处理能力更直白一点你的邻居们是不是也互相认识。想象一个社交场景——你的微信好友里如果很多人都互相是好友那你的朋友圈就很紧密如果大家互相都不认识那你就是桥接各方的一座孤岛。对大脑来说如果某个脑区的邻居互相也有连接说明这个区域参与的是局部的、相对独立的信息整合反过来如果邻居之间没什么连接信息就得绕更远的路才能传到其他脑区。从计算角度来理解对于一个二值网络节点 i 的聚类系数被定义为它的邻居之间实际存在的边数除以这些邻居之间可能存在的最大边数。如果有 k 个邻居理论最大连接数是 k(k−1)/2。公式写出来就是C_i 2e_i / (k_i(k_i−1))其中 e_i 就是邻居间实际存在的连接数。整个网络的聚类系数就是所有节点聚类系数的平均值。这个指标的取值范围在 0 到 1 之间越接近 1 说明局部网络越紧密。在 BCT 中二值网络的聚类系数可以用 clustering_coef_bu 计算加权网络对应函数是 clustering_coef_wu。要注意的是“wu”代表的是“weighted undirected”后面代码部分我会详细展示。还有一种是“wd”代表加权有向网络EEG 的定向连接分析会用到但初学者先把无向网络搞明白就行。2.2 特征路径长度信息跨脑区传递要走多少步聚类系数刻画了局部那特征路径长度Characteristic Path Length刻画的就是全局。定义很简单网络中所有节点对之间最短路径长度的平均值。路径长度在二值网络里是经过的边的条数在加权网络里是边的权重之和通常权重越大代表连接越强、距离越短但有时候要取倒数来转换。回到社交网络的类比你想认识一个陌生人通过朋友的朋友辗转介绍中间要经过几个人那个“几个人”就是路径长度。路径长度短意味着信息传递快路径长度长意味着跨区域沟通效率低。大脑是一个靠长程连接支撑高效信息传递的器官所以特征路径长度不能太长。但也别太短——如果所有脑区都直接相连网络会变得异常昂贵需要海量的物理连接支持。大脑需要在“省线”和“效率”之间找到平衡这就是小世界属性存在的意义后面第五节会详细展开。在 BCT 中charpath 函数可以一次性返回特征路径长度、网络直径等多项指标。它接受一个距离矩阵注意这里不是连接矩阵而是连接矩阵经过转换后的“距离”表示连接强 距离短。很多新手在这里栽过跟头代码部分我再强调一遍。2.3 全局效率与局部效率路径长度的鲁棒性版本特征路径长度有一个痛点如果某个关键节点断连路径可能瞬间拉长甚至不存在比如部分脑区之间没有通路。为了解决这个问题研究者们引入了效率指标。全局效率Global Efficiency定义是所有节点对之间最短路径长度倒数的平均值。因为用了倒数所以就算某条路径不存在它的倒数也是 0不会直接把整个指标搞崩。语义上全局效率衡量的是一个网络并行传递信息的整体能力取值在 0 到 1 之间加权网络的效率指标是权重归一化后的结果。局部效率Local Efficiency衡量的是移除某个节点后它的邻居之间还能保持多少通信效率和聚类系数有一定的相关性但更偏向“信息传递的鲁棒性”而不是“连接的密集程度”。全局效率和局部效率放在一起就构成了一对“全局 vs 局部”的双视角评估在研究疾病状态下脑网络重构时特别有用。比如阿尔茨海默病的研究中经常观察到全局效率下降但局部效率相对保留的现象说明大脑在长程通信受损时反而依靠局部模块代偿。BCT 中对应函数是 efficiency_bin二值和 efficiency_wei加权返回一个包含全局与局部效率的结构体或者两个字段的向量。使用时注意网络必须有足够大的连通分量不然很多最短路径不存在效率结果会偏低。2.4 模块度大脑也是分部门协作的如果只看聚类系数和路径长度你会把大脑理解成一张均匀交织的网络但这显然不符合事实。大脑有明显的功能分区视觉区管视觉运动区管运动默认模式网络管休息发愣它们内部紧密连接而不同系统之间又有一定跨区域连接。这就是模块化结构Modular Structure。模块度Modularity就是衡量这种“分部门协作”程度的指标。它通过把网络划分成若干个社区模块计算落在模块内的边数相对于随机连接期望下的边数是多还是少。如果模块内边数远超随机预期说明网络模块化程度高。数学上模块度 Q 的计算公式常见形式是Q (1/2m) * Σ_ij [A_ij − (k_i k_j / 2m)] * δ(c_i, c_j)其中 m 是总边数A_ij 是连接矩阵元素k_i 是节点 i 的度c_i 是节点 i 所属的模块编号δ 表示两个节点是否在同一模块。Q 通常的取值范围在 0 到 1 之间越高说明模块划分越明确。一般做模块度分析时会用 Louvain 算法来优化模块划分BCT 里对应 modularity_louvain_und 和 modularity_und 两个核心函数。模块度指标在脑网络研究里用得特别多因为很多神经精神疾病比如精神分裂症、抑郁症在模块化组织结构上都会出现改变。一个区域从原本的模块里“掉出去”模块间连接加强模块内连接减弱这些都是可以在图论指标上“抓住”的变化。额外提醒一句Louvain 算法带有一定随机性所以同一网络跑多次可能得到略微不同的模块划分后面我会介绍怎么用一致性分区来稳定结果。2.5 小世界特性大脑网络的最低成本高效率方案最后是今天的主角之一小世界特性Small-Worldness。这个概念最早由 Watts 和 Strogatz 在 1998 年提出核心理念是一个网络既要有高的聚类系数局部紧密又要有短的特征路径长度全局高效。这种“高局部 低全局距离”的组合被称为小世界网络它同时具备了两个看似矛盾的优势而且是布线成本很低的组织方式。怎么判断网络是不是小世界常见做法是把网络指标与随机网络比较计算σ (C/C_random) / (L/L_random)如果 σ 1通常认为网络具有小世界属性。C 是聚类系数L 是特征路径长度C_random 和 L_random 是保留节点度分布的前提下生成一批随机网络后计算的平均值。也就是说小世界网络的特征是聚类系数显著高于随机网络但路径长度和随机网络差不多。大脑网络在几乎所有模态fMRI、EEG、MEG、DTI里都表现出了小世界特性这是它作为高效信息处理系统的一个核心组织原则。很多研究里会把小世界特性当作衡量“大脑健康状态”的一个宏观标尺认知能力下降、睡眠剥夺、麻醉状态都会导致小世界特性的改变。在 BCT 中专门有 sigma_wei 和 omega_wei 这样的函数来计算小世界相关指标其中 omega 是一个结合了规则网络和随机网络比较的简洁指标取值范围在 -1 到 1 之间接近 0 代表小世界。代码操作部分我会给出完整示例。3. BCT工具包实操指南从安装到输出指标全流程3.1 安装和基础环境准备BCT 本质上就是一堆 .m 函数文件安装没有任何花哨的步骤。你要做的是从官网或者 GitHub 上下载 BCT 工具包压缩包解压后把整个目录添加到 MATLAB 的搜索路径中。我建议你永远把 BCT 单独放在一个文件夹里不要和项目脚本混在一起。原因有两个第一BCT 更新比较频繁单独放方便整包替换第二你项目里的脚本可能也会定义一些自定义函数如果和 BCT 同名MATLAB 会因为路径顺序问题调用到错误版本排查起来很痛苦。添加到路径的命令非常简单如果你把 BCT 解压到了 E:\tools\bct 下那就在 MATLAB 命令行执行addpath(genpath(E:\tools\bct)); savepath;savepath 的作用是把路径保存下来下次启动 MATLAB 不需要重新添加。注意如果 MATLAB 提示路径无法保存可能是权限问题可以换到用户目录下的 startup.m 脚本里写 addpath 命令效果一样。有一个很容易踩的坑BCT 某些函数依赖 MATLAB 的统计工具箱比如生成随机网络时的 randmio_und 可能会用到随机数函数虽然没有额外的 toolbox 依赖但 older versions 在某些版本 MATLAB 上会有兼容性警告。建议使用 R2019b 以上的 MATLAB 版本BCT 更新维护非常活跃新版工具包对现代 MATLAB 的兼容性更好。3.2 数据格式连接矩阵是一切的前提BCT 的函数几乎都要求输入连接矩阵connectivity matrix绝大多数函数要求输入的是方阵——行数和列数等于节点数。这里有个很关键的点BT C 的函数都是基于矩阵而不是基于表格设计的。你必须先把数据组织成二维矩阵矩阵元素代表两个区域之间的连接强度对角线必须为 0。如果用 DTI 的纤维数量作为连接强度那矩阵元素就是纤维数如果用 fMRI 的相关性作为连接强度那矩阵元素就是相关系数。在构建矩阵时要注意对称性问题。BCT 中函数命名里带 u 的表示 undirected无向带 d 的表示 directed有向。如果你做的是无向网络分析比如聚类系数要用 clustering_coef_wu那么连接矩阵必须是对称的。fMRI 的相关性矩阵天然对称但 DTI 的一些重建算法可能产生不对称的流线计数矩阵这时候如果不对矩阵做对称化处理直接扔给聚类系数函数就会出错或者结果异常。对称化的常见做法是取上三角和下三角的平均值A_sym (A A) / 2;还要检查对角线是否为 0如果对角线有值比如自相关为 1需要强制置零A_sym(1:size(A_sym,1)1:end) 0;另一个需要注意的问题连接矩阵是否要经过阈值化处理。很多研究者会用稀疏度sparsity或者绝对阈值对相关性矩阵做二值化或加权保留以去除弱连接和噪声连接。阈值化这一步会显著影响最终结果我看到很多论文里用的稀疏度范围一般是 5% 到 40%。稀疏度太低会把网络拆成一堆碎片大量指标算不出来太高又会让网络接近完全图所有指标趋于饱和。具体怎么选择我放在第七章常见问题里详细说。3.3 核心函数调用示例聚类系数、路径长度、效率和模块度假设你已经构建好了一个加权无向连接矩阵 W尺寸是 90×90比如用了 AAL 模板。下面我贴一段可以直接跑的示例代码包含今天讲的所有核心指标。% W: 加权无向连接矩阵90x90对角线为0 % 1. 聚类系数 (加权无向) C clustering_coef_wu(W); % 2. 特征路径长度 % 先将连接矩阵转换为距离矩阵 D distance_wei(1 ./ W); % 连接越强距离越短 [lambda, efficiency, diameter] charpath(D, 0, 0); % lambda 是特征路径长度efficiency 是全局效率 % 3. 全局效率和局部效率 E efficiency_wei(W, 1); % 第二个参数1表示返回局部效率 % 4. 模块度 (Louvain算法) [Ci, Q] modularity_louvain_und(W); % Ci是每个节点的模块归属向量Q是模块度值 % 5. 小世界指标 (基于随机网络比较) % 生成一个保持度分布的随机网络 [W_rand, ~] randmio_und_signed(W, 10); C_rand clustering_coef_wu(W_rand); [D_rand, ~] distance_wei(1 ./ W_rand); [lambda_rand, ~, ~] charpath(D_rand, 0, 0); sigma (mean(C) / mean(C_rand)) / (lambda / lambda_rand);上面这段代码有几个细节我要解释清楚。第一distance_wei 的输入参数是 1./W——为什么取倒数因为 BCT 的函数希望你把连接强度解释成距离强的连接应该带来更短的距离。权重越大距离越小取倒数是最直觉的做法。如果你有自己定义的距离矩阵那直接传距离矩阵就可以了。第二charpath 函数的第二个和第三个参数是控制是否显示警告和控制台输出的设为 0 可以保持干净。函数返回值有三个lambda特征路径长度、efficiency全局效率、diameter网络直径。第三randmio_und_signed 是生成随机网络的函数第二个参数 10 代表重连次数乘以边数。更严谨的做法是生成 100 个随机网络分别计算指标后取平均值而不是只跑一个随机网络。我上面只放了一个随机网络做演示实际写论文时别这么省事儿。下面这段是更严谨的小世界指标计算用循环生成多个随机网络num_rand 100; C_rand_all zeros(num_rand, 1); lambda_rand_all zeros(num_rand, 1); for i 1:num_rand [W_rand, ~] randmio_und_signed(W, 10); C_rand_all(i) mean(clustering_coef_wu(W_rand)); D_rand distance_wei(1 ./ W_rand); lambda_rand_all(i) charpath(D_rand, 0, 0); end C_rand_mean mean(C_rand_all); lambda_rand_mean mean(lambda_rand_all); sigma (mean(C) / C_rand_mean) / (lambda / lambda_rand_mean);这个 sigma 值如果大于 1说明你研究的网络具有小世界属性。实际论文里还需要做统计检验通常做法是计算每组被试的 sigma然后在组间做 t 检验或者非参数检验。如果做的是单个被试的分析临床个案研究可以用置换检验来判断 sigma 是否显著大于 1。3.4 加权网络和符号连接的处理处理 fMRI 相关性矩阵时你会遇到一个尴尬情况相关值有正有负。负相关到底算不算连接业界有两种主流处理方式。第一种是只保留正连接把所有负值截断为 0然后对矩阵做归一化。第二种是用 BCT 里的 weighted 符号函数来同时处理正负连接例如 efficiency_wei 就可以接受有符号的权重矩阵但你需要确保权重已经归一化到 -1 到 1 之间。我个人建议如果你的研究问题关注的是功能整合与分离的大框架优先只保留正连接。原因很简单负相关的生理意义比正相关更模糊而且很多图论指标比如距离转换对负值处理起来非常别扭。如果你关注的是抑制性回路或者反相关网络比如默认模式网络与任务正网络之间的负相关那就采用符号网络分析方法BCT 里带 signed 的函数可以处理这些场景。但要注意负连接进入网络后聚类系数等指标的解释方式会产生变化。目前多数主流文献还是以正连接分析为主符号网络分析属于比较前沿的方向新手先不要贸然使用。3.5 使用零模型做统计检验让你的结果不是偶然很多初学者会问“我算出这组被试的平均 sigma 是 1.3我能说这就是小世界网络吗”答案是不够严谨。因为 1.3 可能来自网络的度分布特征、节点数量等非特异性因素。和随机网络做比较是一种方法但更关键的还是组间比较。做组间比较时一个常见的策略是对每个被试构建连接矩阵计算你要的指标比如聚类系数、特征路径长度把组别作为自变量指标作为因变量做统计检验两组的 t 检验、多组的 ANOVA 等如果有多重比较多个稀疏度阈值、多个脑区指标要校正 p 值BCT 里还提供了一些针对连接矩阵本身的置换检验函数比如 randmio_und_signed 可以打乱连接保留度分布用于生成零分布。你可以用零分布来判断一个具体的观测值是否显著偏离随机。操作思路是打乱网络 N 次得到 N 个指标值然后看真实值落在分布中的哪个位置。这里必须提醒不要用一个随机网络来检验小世界性至少用 100 个。我见过太多人为了省时间直接跑一个随机网络然后报告 sigma 1这种做法会在审稿环节被问得很惨。4. 常见问题与排查技巧实录4.1 连接矩阵不连通算不出路径长度这是一个特别常见的问题。如果你用很高的阈值二值化网络可能会导致一些节点变成孤立点这样很多节点对之间根本不存在最短路径。在 MATLAB 里表现就是 charpath 返回 Inf效率值变成 0整个结果没法看。处理思路有三种降低阈值让网络保持连通设置最小度约束保证每个节点至少有一条边用最大连通子图giant component来重新计算指标在 BCT 中可以先用get_components函数检查网络的最大连通子图有多大[comp_sizes, comp_index] get_components(W);如果最大连通子图的节点数明显小于总节点数说明网络被拆得太碎了。此时应该检查你的阈值设置是否过高或者连接矩阵的质量是否有问题。经验值做静息态 fMRI 的脑网络分析时稀疏度设置在 10%~30% 通常能够保证网络连通性良好。低于 5% 时网络很容易碎裂接近 40% 时网络又太稠密指标区分度下降。4.2 加权网络和二值网络结果差异巨大很多人会有疑问到底用二值网络还是加权网络我的个人建议是优先使用加权网络。二值化过程会损失大量信息特别是对那些连接强度处于阈值边缘的连接一个微小的噪声就能改变它们的存在性导致结果不稳定。加权网络保留了连接的强度变化对真实生物学差异更加敏感。但如果你的数据来源是 DTI 纤维束追踪纤维计数本身就是离散的而且动态范围很大此时可以取 log 转换后再作为权重输入。或者直接把纤维计数二值化有纤维则记 1因为纤维重建对参数设置很敏感有些研究者认为二值化反而比加权更稳健。最关键的一点是不管你选择哪种方式都要在论文里写清楚并且做敏感性分析——至少用两三种不同的阈值或加权方式跑一遍确认主要结论没有显著变化。这是脑网络领域审稿人很看重的一环。4.3 Louvain 算法结果有随机性怎么稳定模块划分前面提到过Louvain 算法每次运行会产生略有差异的结果。BCT 的 modularity_louvain_und 内部有随机初始化同一个网络跑两次Q 值可能差不多但模块归属向量 Ci 可能会有差异。稳定模块划分的主流做法是重复运行 Louvain 算法多次比如 100 次然后基于共同分类信息构建一个共识矩阵再用共识矩阵做最终聚类。这样得到的模块归属更加稳定。虽然 BCT 没有直接提供共识聚类的函数但你可以自己写或者用图论社区检测领域的 consensus clustering 方法。一个简单的实现思路num_runs 100; n size(W, 1); agreement zeros(n, n); for i 1:num_runs Ci modularity_louvain_und(W); % 生成共现矩阵 for j 1:n for k j1:n if Ci(j) Ci(k) agreement(j,k) agreement(j,k) 1; agreement(k,j) agreement(k,j) 1; end end end end agreement agreement / num_runs;然后基于这个 agreement 矩阵再做一次聚类就能得到稳定的模块划分。如果不用共识聚类至少也得在论文里说明模块归属是通过多次运行得到的“最典型”结果而不是单次偶然结果。4.4 指标到底该在个体层面算还是组平均层面算脑网络分析有两种路径个体水平分析和组水平分析。组水平路径是把所有被试的数据平均成一个连接矩阵再算指标优点是网络质量好、信噪比高缺点是丢失了个体差异不能做后续的统计关联分析比如和临床量表做相关。个体水平分析则相反——每个被试单独构建矩阵、单独算指标然后拿来做组间比较。这是目前主流做法特别适合研究疾病状态和认知差异。但个体水平连接矩阵噪声更大常需要选择合理的阈值来去噪。一个折中的方案在个体水平计算指标然后对指标做组间统计。用这种方法时各被试的稀疏度可能不同所以很多研究会固定稀疏度比如所有人都在 15% 的稀疏度下计算指标以保证组间可比。4.5 BCT 函数名称经常弄混的小细节BCT 的函数命名虽然是规律的但细节上有很多坑。我来整理一个速查表这就是你以后写代码时的“防呆手册”分析目标二值无向加权无向二值有向加权有向聚类系数clustering_coef_buclustering_coef_wuclustering_coef_bdclustering_coef_wd特征路径长度charpath(distance_bin(A))charpath(distance_wei(1./W))distance_bin(A)distance_wei(1./W)全局效率efficiency_bin(A, 0)efficiency_wei(W, 0)efficiency_bin(A, 0)efficiency_wei(W, 0)模块度modularity_lund(A)modularity_louvain_und(W)modularity_louvain_dir(W)modularity_louvain_dir(W)小世界sigma_binomega_wei / sigma_wei--有没有发现规律“b”代表 binary“w”代表 weighted“u”代表 undirected“d”代表 directed。把这两个字母组合起来你就基本能猜出每个函数是干什么用的了。还有一个容易混淆的点charpath 要求的是距离矩阵而不是连接矩阵虽然它也能直接接二值连接矩阵distance_bin 会先自动转换但加权网络下一定要先转距离矩阵。5. 关于阈值、稀疏度和归一化的补充经验图论指标对预处理特别敏感这点我吃过不少亏多说几句。连接矩阵构建完之后最常做的事是归一化。对于相关性矩阵来说元素范围天然在 [-1, 1]所以一般不需要额外归一化。但如果你用的是纤维束计数、PLV相位锁定值或者其他非标准度量建议做一个最大最小归一化把权重压到 [0, 1] 之间。这样做的好处是BCT 的函数不会因为权重尺度过大导致距离转换后出现极端值。关于阈值的选择我推荐做一个“扫描式分析”设置从 5% 到 40% 的多个稀疏度步长 1%~5%在每个稀疏度下分别计算指标然后看组间差异是否在多个阈值下一致。如果结论只在某一个阈值成立那么很可能是个假阳性结论。这也是近些年来脑网络论文里越来越常见的做法。最后说一句关于“网络密度”的题外话。很多人在报告结果时只写聚类系数和路径长度却忘了报告平均度、网络密度等基础信息这样读者很难判断你的网络是稀疏还是稠密也就无法复现你的结果。尽量把基线网络属性都报告出来哪怕不放进正文也要放在补充材料里。6. 写在最后回归指标本身的生物学解释我自己在实际操作中的体会是图论指标的最大价值不在于它本身是个多精巧的数学量而在于它能为“大脑如何组织”这个问题提供可量化的视角。聚类系数高你就要思考是不是某个脑区的局部整合加强了路径长度变长你就要思考是不是长程连接的效率下降了模块度改变你就要思考是不是功能边界重划了。最后再分享一个小技巧每次算完指标不要急着做统计先画几个代表性被试的网络图看看。用 BrainNet Viewer 或者 Circos 图把连接矩阵可视化一下你常常能直观发现异常这些异常可能来自头动伪影、配准误差也可能是真实的生物学信号。等你在可视化层面确信数据没问题再上统计检验也不迟。希望这篇从指标到实操再到排坑的文章能帮你少走一些我走过的弯路。有问题欢迎在评论区交流尤其是 BCT 函数使用上的奇奇怪怪报错我看到了会尽力回复。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

2026飞书大会梁汝波定调:整合豆包、飞书与火山引擎,发力企业服务与生产力赛道 2026/9/16 23:42:08

2026飞书大会梁汝波定调:整合豆包、飞书与火山引擎,发力企业服务与生产力赛道

飞书与豆包“合并”,字节跳动聚焦工作与生产力产品2026年9月15日,2026飞书未来无限大会暨豆包工作开工大会在北京举办,字节跳动CEO梁汝波现身演讲,为飞书与豆包工作的首次“合并”站台。这是梁汝波继今年6月火山引擎FORCE大会之后…

阅读更多 →
DeepSeek V4.1 Flash:本地大模型部署的显存革命 2026/9/16 23:42:08

DeepSeek V4.1 Flash:本地大模型部署的显存革命

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

阅读更多 →
森丸电子获亿元A轮融资,硅电容技术破局AI芯片供电难题 2026/9/16 23:42:08

森丸电子获亿元A轮融资,硅电容技术破局AI芯片供电难题

亿元A轮融资,产业资本齐聚森丸电子硬氪获悉,晶圆级无源器件企业「森丸电子」近日完成亿元A轮融资。本轮由知名光模块产业方、耀途资本联合领投,顺融资本跟投。资金将用于硅电容及IPD平台技术开发、产能建设及全球市场拓展,加速硅电…

阅读更多 →
RuoYi若依框架适配达梦数据库:SQL迁移与主键分页改造实践 2026/9/16 23:42:08

RuoYi若依框架适配达梦数据库:SQL迁移与主键分页改造实践

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

阅读更多 →
强化学习交易策略训练实战:从环境设计到稳定收敛的关键细节 2026/9/16 23:42:08

强化学习交易策略训练实战:从环境设计到稳定收敛的关键细节

强化学习做交易策略,这几年被问到的次数太多了。很多人一上来就问我“用哪个库”“PPO还是DQN”“回测能赚多少”,但真正把训练过程跑通、把策略从随机乱撞调到稳定收敛的人,其实很少。我见过太多人卡在同一个地方:代码能跑&#…

阅读更多 →
PhpStorm搭配CodeUp,PHP团队Git协作实践 2026/9/16 23:39:07

PhpStorm搭配CodeUp,PHP团队Git协作实践

刚接手一个PHP团队时,我花了很多时间处理"代码去哪了""谁改坏了文件""昨天还能跑今天怎么就崩了"这类问题。后来把日常开发全部迁到阿里云云效CodeUp,配合PhpStorm的Git集成,团队才从"文件互相覆盖"…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞