当前位置: 首页 > news >正文

mne溯源后的数据初步处理方法

文章目录

      • 导入库
  • Yeo2011_7Networks_N1000
      • 绘制一些圆球来代表区域大小和强度
    • 单网络绘制和扩展的方式
    • AI补充一下背景知识
      • 📚 **背景与研究来源**
      • 🧠 **7 个功能网络的定义**
      • 📂 **标签数据获取**
      • 🔍 **标签文件内容解析**
      • 🛠 **使用注意事项**
      • 📊 **典型应用场景**

一些溯源后的数据后续的一些读取,处理和可视化的一些记录。
使用jupyter notebook。

导入库

import mne
import numpy as np
import os
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
import os.path as op
from mne.datasets import fetch_fsaverage
from mne.datasets import sample

上节说过,stc的数据保存后,

from mne import SourceEstimate
stc.save('1')
#1-lh.stc
#1-rh.stc
#是这两个文件

stc数据的合成

from mne import read_source_estimate
stc_reloaded = read_source_estimate('1', subject='fsaverage')
#通过这个语句就可以重新读取这个源数据

一些绘图可能用到src,把fwd也计算加载进来

pathdir=r"E:\data\301数据汇总\EEG\jxt_analysis\health\1"
file=r"processed_data.set"
path=os.path.join(pathdir, file)
raw_data = mne.io.read_raw_eeglab(path, preload=True)
trans = "fsaverage"
fs_dir = fetch_fsaverage(verbose=True)
subjects_dir = op.dirname(fs_dir)
raw=raw_data.copy()
bem = op.join(fs_dir, "bem", "fsaverage-5120-5120-5120-bem-sol.fif")
src = op.join(fs_dir, "bem", "fsaverage-ico-4-src.fif")
fwd = mne.make_forward_solution(raw.info, trans=trans, src=src, bem=bem, eeg=True, mindist=5.0, n_jobs=None
)

使用这个标记的测试一下,两个大脑都有,成功导入了。

labels = mne.read_labels_from_annot('fsaverage',  # 使用fsaverage模板parc='aparc',  # 解剖学分区subjects_dir=subjects_dir)  # FreeSurfer数据路径
# 这个parc是功能分区是annotation的内容
v1_label = [label for label in labels if label.name == 'temporalpole-lh'][0]# 可视化ROI
brain = stc_reloaded.plot(subject='fsaverage', hemi="both",subjects_dir=subjects_dir)
brain.add_label(v1_label, color='pink', alpha=1)

在这里插入图片描述

Yeo2011_7Networks_N1000

通过ai知道有几个分析静息态的模版

#加载这两个模版
yeo_7_labels = mne.read_labels_from_annot('fsaverage', parc='Yeo2011_7Networks_N1000',subjects_dir=subjects_dir)
yeo_17_labels = mne.read_labels_from_annot('fsaverage', parc='Yeo2011_17Networks_N1000',subjects_dir=subjects_dir)
yeo_labels = yeo_7_labels#选择第一个
yeo_labels = [label for label in yeo_labels if not label.name.startswith('Unknown')]#排除一下错误的脑区

[<Label | fsaverage, ‘7Networks_1-lh’, lh : 21632 vertices>, <Label |
fsaverage, ‘7Networks_1-rh’, rh : 22519 vertices>, <Label |
fsaverage, ‘7Networks_2-lh’, lh : 29778 vertices>, <Label |
fsaverage, ‘7Networks_2-rh’, rh : 30207 vertices>, <Label |
fsaverage, ‘7Networks_3-lh’, lh : 17511 vertices>, <Label |
fsaverage, ‘7Networks_3-rh’, rh : 17604 vertices>, <Label |
fsaverage, ‘7Networks_4-lh’, lh : 17392 vertices>, <Label |
fsaverage, ‘7Networks_4-rh’, rh : 19402 vertices>, <Label |
fsaverage, ‘7Networks_5-lh’, lh : 11380 vertices>, <Label |
fsaverage, ‘7Networks_5-rh’, rh : 11614 vertices>, <Label |
fsaverage, ‘7Networks_6-lh’, lh : 16635 vertices>, <Label |
fsaverage, ‘7Networks_6-rh’, rh : 22330 vertices>, <Label |
fsaverage, ‘7Networks_7-lh’, lh : 35314 vertices>, <Label |
fsaverage, ‘7Networks_7-rh’, rh : 26056 vertices>, <Label |
fsaverage, ‘FreeSurfer_Defined_Medial_Wall-lh’, lh : 14200 vertices>,
<Label | fsaverage, ‘FreeSurfer_Defined_Medial_Wall-rh’, rh : 14110
vertices>]

brain = stc_reloaded.plot(subject='fsaverage', subjects_dir=subjects_dir,hemi="both",background='white', alpha=0.5)
colors = ['red', 'green', 'blue', 'orange', 'yellow', 'purple', 'cyan']
for label, color in zip(yeo_labels, colors):brain.add_label(label, color=color, alpha=0.7)

在这里插入图片描述
我们标记了分析的脑功能区。
只标记一个进行选择

Default_Mode_network = [label for label in yeo_labels if label.name == '7Networks_7-lh'][0]
brain = stc_reloaded.plot(subject='fsaverage', hemi="both",subjects_dir=subjects_dir)
brain.add_label(Default_Mode_network, color='green', alpha=0.5)

在这里插入图片描述
我们可以看到这个功能网络有不同的脑区部分。
通过目测,我们发现有六个非联通区域。
可以使用聚类的方法,来把这几个区域给分开,并获取到对应的数据。
我们根据pos的位置来进行聚类分析。

# 使用坐标计算,可以计算出坐标,但是在对应coords_as_verts时会出现问题。因为会出现坐标和verts无法转换。
coords = mne.vertex_to_mni(label.vertices, hemis=1, subject='fsaverage', subjects_dir=subjects_dir)
center = np.mean(coords, axis=0)

咨询ai

Default_Mode_network = [label for label in yeo_labels if label.name == '7Networks_7-lh'][0]#选择这个的原因看后面的补充说明
brain = stc_reloaded.plot(subject='fsaverage', hemi="both",subjects_dir=subjects_dir)
brain.add_label(Default_Mode_network, color='green', alpha=0.5)
#我们可以看到这个pos是点的坐标,根据连通性,我们可以进行聚类的分析
Default_Mode_network.pos

在这里插入图片描述

绘制一些圆球来代表区域大小和强度

import numpy as np
from mne.viz import Brain
# 定义感兴趣的时间范围(例如:100ms到200ms)
tmin = 0.1  # 起始时间(秒)
tmax = 0.2  # 结束时间(秒)
# 获取时间点对应的索引
time_indices = np.where((stc_reloaded.times >= tmin) & (stc_reloaded.times <= tmax))[0]
# Plot the source time course
brain = stc_reloaded.plot(subject='fsaverage', hemi="both", subjects_dir=subjects_dir)
# 遍历每个子区域
for label in sub_regions:time_course = stc_reloaded.extract_label_time_course(label, fwd['src'], mode='mean')mean_intensity = np.mean(time_course[:, time_indices])intensities.append(mean_intensity)# 创建颜色映射
#使用那个
cmap = plt.get_cmap('coolwarm')  # 使用 'viridis' 颜色映射
norm = plt.Normalize(vmin=min(intensities), vmax=max(intensities))  # 归一化强度值# 遍历每个子区域
for label, intensity in zip(sub_regions, intensities):# 获取中心顶点索引vertex_idx = label.center_of_mass('fsaverage', subjects_dir=subjects_dir)# 将强度映射到颜色color = cmap(norm(intensity))  # 获取颜色值# 固定焦点大小,或根据顶点数量调整size = len(label.vertices) / 1500  # 可根据需要调整缩放因子# 添加焦点和标签brain.add_foci(vertex_idx, coords_as_verts=True, hemi=label.hemi,  # 使用标签的半球信息color=color, scale_factor=size, alpha=0.7)brain.add_label(label, borders=True)# 打印调试信息print(f"Label: {label.name}, Mean Intensity: {intensity}, Color: {color}")# Add the source estimate data

在这里插入图片描述

单网络绘制和扩展的方式

不看大脑,只看这个功能网络的分割出的区域,其强度如何。可以以在这个上面扩展数值的连接和计算方式。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.cm import ScalarMappable
from matplotlib.colors import Normalizeintensities = []
coords = []# 定义时间范围
tmin, tmax = 0.1, 0.2
time_indices = np.where((stc_reloaded.times >= tmin) & (stc_reloaded.times <= tmax))[0]# 遍历每个标签获取坐标和强度
for label in sub_regions:# 计算平均强度time_course = stc_reloaded.extract_label_time_course(label, fwd['src'], mode='mean')mean_intensity = np.mean(time_course[:, time_indices])intensities.append(mean_intensity)# 获取中心点坐标hemi = label.hemisrc_idx = 0 if hemi == 'lh' else 1vertex_idx = label.center_of_mass('fsaverage', subjects_dir=subjects_dir)coord = fwd['src'][src_idx]['rr'][vertex_idx]coords.append(coord)coords = np.array(coords)
print(coords.shape)
intensities = np.array(intensities)
print(intensities.shape)
print(intensities)
# 创建 3D 画布
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection='3d')# 配置颜色映射
cmap = plt.get_cmap('coolwarm')
norm = Normalize(vmin=intensities.min(), vmax=intensities.max())
colors = cmap(norm(intensities))# 绘制散点图(颜色和大小映射到强度)
scatter = ax.scatter(coords[:, 0], coords[:, 1], coords[:, 2],c=colors, s=np.abs(intensities) * 100 + 50,  # 点大小动态调整(根据强度)depthshade=False,          # 关闭深度阴影(可选)alpha=0.8
)# # 示例:按顺序连接相邻点(可自定义连接逻辑)
# for i in range(len(coords) - 1):
#     ax.plot(
#         [coords[i, 0], coords[i+1, 0]],
#         [coords[i, 1], coords[i+1, 1]],
#         [coords[i, 2], coords[i+1, 2]],
#         color='gray',
#         linewidth=1,
#         alpha=0.5
#     )# 添加颜色条
cbar = fig.colorbar(ScalarMappable(norm=norm, cmap=cmap),ax=ax,shrink=0.6,label='Intensity'
)# 调整视角
ax.view_init(elev=20, azim=45)  # 仰角 20°, 方位角 45°# 坐标轴标签
ax.set_xlabel('X (mm)')
ax.set_ylabel('Y (mm)')
ax.set_zlabel('Z (mm)')plt.tight_layout()
plt.show()

在这里插入图片描述

AI补充一下背景知识

关于 Yeo2011_7Networks_N1000,这是由 Yeo 等人在 2011 年提出的一种 基于静息态 fMRI 的功能性脑网络分区图谱,被广泛用于脑功能连接和网络分析。以下是详细介绍和关键资源:


📚 背景与研究来源

  • 文献来源
    Yeo, B. T. T., et al. (2011). “The organization of the human cerebral cortex estimated by intrinsic functional connectivity”. Journal of Neurophysiology.
    • 核心贡献:通过对 1000 名被试的静息态 fMRI 数据进行聚类分析,提出了 7 个和 17 个功能网络的分区方案。
    • 版本说明
      • N1000:表示该分区基于 1000 名被试的数据训练得到(高可靠性版本)。
      • 7Networks:将全脑皮层划分为 7 个宏观功能网络(如图)。

🧠 7 个功能网络的定义

网络编号功能名称核心脑区功能描述
1视觉网络 (Visual)枕叶 (Occipital)视觉信息处理
2躯体运动网络 (Somatomotor)中央前/后回 (Pre/Postcentral gyrus)运动和体感控制
3背侧注意网络 (Dorsal Attention)顶内沟 (IPS), 额眼区 (FEF)空间注意和眼动控制
4腹侧注意网络 (Ventral Attention)颞顶联合区 (TPJ), 前岛叶 (AI)注意重新定向、突显信息检测
5边缘网络 (Limbic)前扣带回 (ACC), 眶额皮层 (OFC)情绪处理和动机调控
6额顶控制网络 (Frontoparietal Control)背外侧前额叶 (DLPFC), 后顶叶 (PPC)执行控制和工作记忆
7默认模式网络 (Default Mode)内侧前额叶 (mPFC), 后扣带回 (PCC)自我参照思维、静息态活动

📂 标签数据获取

Yeo 分区的标签文件通常以 FreeSurfer 兼容格式存储,您可以通过以下方式获取:

  1. 官方来源

    • 从 Yeo 实验室网站下载:Yeo2011 7/17 Networks Atlas
    • 包含 fsaverage 空间的分区文件(lh.Yeo2011_7Networks_N1000.annot, rh.Yeo2011_7Networks_N1000.annot)。
  2. 通过 MNE-Python 直接加载

    from mne.datasets import fetch_fsaverage
    from mne import read_labels_from_annot# 获取 fsaverage 路径
    fs_dir = fetch_fsaverage(verbose=True)# 读取 Yeo 7网络标签(左右半球合并)
    yeo_labels = read_labels_from_annot(subject='fsaverage', parc='Yeo2011_7Networks_N1000', subjects_dir=fs_dir,hemi='both'
    )
    

🔍 标签文件内容解析

  • 文件结构

    • 每个半球(lh/rh)的标签文件包含 7 个网络 + 1 个内侧壁(Medial Wall)标签。
    • 标签命名格式:7Networks_{网络编号}-{半球},如 7Networks_1-lh
    • 内侧壁标签:FreeSurfer_Defined_Medial_Wall-{半球}(非功能网络区域)。
  • 顶点数量

    • 每个网络的顶点数反映其在大脑皮层的空间范围(如默认模式网络通常最大)。

🛠 使用注意事项

  1. 空间配准

    • 确保使用与分区模板相同的标准空间(如 fsaverage)进行源估计和标签提取。
  2. 网络合并

    • 若需合并左右半球的同一网络(如双侧视觉网络),需手动操作:
      vis_network = [label for label in yeo_labels if '7Networks_1' in label.name]
      # 废除,使用上面的联合读取的方案
      combined_vis_label = vis_network[0] + vis_network[1]
      
  3. 排除内侧壁

    • 内侧壁标签通常不参与功能分析,需过滤:
      yeo_networks = [label for label in yeo_labels if 'Networks' in label.name]
      

📊 典型应用场景

  1. 功能网络时间序列提取

    # 提取默认模式网络(网络7)的时间序列
    dmn_labels = [label for label in yeo_labels if '7Networks_7' in label.name]
    dmn_time_series = stc.extract_label_time_course(dmn_labels, src, mode='mean')
    
  2. 网络间功能连接分析

    • 计算网络间 Pearson 相关性或相位同步性。

# 这个提取的是默认模式网络的子区域,并对时间段的平均激活数据进行可视化network_time_courses = []
network_names = []
for label in sub_regions:# 提取该网络区域的时间序列(平均值)time_course = stc_reloaded.extract_label_time_course(label,fwd['src'], mode='mean')network_time_courses.append(time_course.squeeze())  # 移除多余维度network_names.append(label)  # 存储网络区域名称
plt.figure(figsize=(15, 10))  # 增大画布尺寸
times = stc_reloaded.times# 关键优化点:下采样数据 & 标记重要时间窗
plot_step = 10  # 每10个时间点取1个(根据实际数据量调整)
smooth_window = 5  # 滑动平均窗口大小(可选)
right_xlimit = 0.0
left_xlimit = 2.5
for i, (time_course, name) in enumerate(zip(network_time_courses, network_names)):# 数据平滑和下采样smoothed = np.convolve(time_course, np.ones(smooth_window)/smooth_window, mode='same')  # 滑动平均downsampled_t = times[::plot_step]downsampled_data = smoothed[::plot_step]plt.plot(downsampled_t, downsampled_data, label=name, linewidth=1.5, alpha=0.8)  # 适当降低透明度# 聚焦关键时间段(示例:-0.2~1.0秒)
plt.xlim([right_xlimit, left_xlimit]) # 标记事件时间点
plt.axvline(0, color='k', linestyle='--', linewidth=0.8)  # 刺激呈现时间
plt.axvspan(0.1, 0.3, alpha=0.1, color='red')  # 标记感兴趣的时间窗# 优化坐标标签
plt.xticks(np.arange(right_xlimit, left_xlimit, 0.1),  # 设置刻度间隔为0.1秒rotation=45)  # 旋转标签避免重叠
plt.xlabel('Time (s)', fontsize=12)
plt.ylabel('Normalized Activation', fontsize=12)plt.title('Network Activation Time Courses (Smoothed)', fontsize=14)
plt.legend(ncol=2, loc='upper right', fontsize=10)  # 分两列显示图例
plt.grid(True, linestyle=':', alpha=0.5)
plt.tight_layout()  # 自动调整布局
plt.show()

在这里插入图片描述

network_time_courses = np.array(network_time_courses)
#(6, 30051)# 计算关联矩阵
correlation_matrix = np.corrcoef(network_time_courses)# 打印结果
print("关联矩阵形状:", correlation_matrix.shape)
print("关联矩阵:\n", correlation_matrix)
import seaborn as sns
import matplotlib.pyplot as plt# 设置画布
plt.figure(figsize=(10, 8))# 绘制热图
sns.heatmap(correlation_matrix, annot=True,  # 在单元格中显示数值fmt=".2f",  # 数值格式为两位小数cmap='coolwarm',  # 颜色映射vmin=-1, vmax=1,  # 相关系数范围xticklabels=network_names,  # X轴标签yticklabels=network_names,  # Y轴标签linewidths=0.5  # 单元格边框宽度
)# 添加标题和标签
plt.title('Network Correlation Matrix', fontsize=14)
plt.xlabel('Networks', fontsize=12)
plt.ylabel('Networks', fontsize=12)# 显示图形
plt.tight_layout()
plt.show()

在这里插入图片描述
应该可以根据这个如果相关性都比较强,或者说,这些区域都是正激活(大部分激活)的时候,判断其是主导功能网络。

相关文章:

mne溯源后的数据初步处理方法

文章目录 导入库 Yeo2011_7Networks_N1000绘制一些圆球来代表区域大小和强度 单网络绘制和扩展的方式AI补充一下背景知识&#x1f4da; **背景与研究来源**&#x1f9e0; **7 个功能网络的定义**&#x1f4c2; **标签数据获取**&#x1f50d; **标签文件内容解析**&#x1f6e0…...

基于STM32进行FFT滤波并计算插值DA输出

文章目录 一、前言背景二、项目构思1. 确定FFT点数、采样率、采样点数2. 双缓存设计 三、代码实现1. STM32CubeMX配置和HAL库初始化2. 核心代码 四、效果展示和后话五、项目联想与扩展1. 倍频2. 降频3. 插值3.1 线性插值3.2 样条插值 一、前言背景 STM32 对 AD 采样信号进行快…...

【用 Trace读源码】PlanAgent 执行流程

前提条件 在 Trae 中打开 OpenManus 工程&#xff0c;使用 build 模式&#xff0c;模型选择 claude-sonnet-3.7 提示词 分析 agent/planning.py 中 main 方法及相关类的执行流程&#xff0c;以流程图的方式展示PlanningAgent 执行流程图 以下流程图展示了 PlanningAgent 类…...

AI代码编辑器:Cursor和Trae

Cursor 定义&#xff1a;Cursor 是一款基于AI的代码编辑器&#xff0c;它继承了VS Code的核心功能&#xff0c;并在此基础上增加了深度AI支持。它支持代码生成、优化、重构以及调试等功能&#xff0c;提供直观的Diff视图和自动补全功能&#xff0c;是一款功能强大的编程工具。…...

LSM-Tree(Log-Structured Merge-Tree)详解

1. 什么是 LSM-Tree? LSM-Tree(Log-Structured Merge-Tree)是一种 针对写优化的存储结构,广泛用于 NoSQL 数据库(如 LevelDB、RocksDB、HBase、Cassandra)等系统。 它的核心思想是: 写入时只追加写(Append-Only),将数据先写入内存缓冲区(MemTable)。内存数据满后…...

介绍一个测试boostrap表格插件的好网站!

最近在开发一个物业管理系统。用到bootstrap的表格插件bootstrap table&#xff0c;官方地址&#xff1a; https://bootstrap-table.com/ 因为是英文界面&#xff0c;对国人不是很友好。后来发现了IT小书童网站 IT小书童 - 为程序员提供优质教程和文档 网站&#xff1a; IT…...

虚拟路由与单页应用(SPA):详解

在单页应用&#xff08;SPA&#xff0c;Single Page Application&#xff09;中&#xff0c;虚拟路由&#xff08;也称为前端路由&#xff09;是一种关键的技术&#xff0c;用于管理页面导航和状态变化&#xff0c;而无需重新加载整个页面。为了帮助你更好地理解这一概念&#…...

基于树莓派3B+的人脸识别实践:Python与C联合开发

基于树莓派3B的人脸识别实践&#xff1a;Python与C联合开发 引言 树莓派因其小巧的体积和丰富的扩展性&#xff0c;成为嵌入式开发的理想平台。本文将分享如何通过Python与C语言联合开发&#xff0c;在树莓派3B上实现从硬件控制、摄像头拍照到百度API人脸比对的完整流程。项目…...

尝试使用Tauri2+Django+React项目(2)

前言 尝试使用tauri2DjangoReact的项目-CSDN博客https://blog.csdn.net/qq_63401240/article/details/146403103在前面笔者不知道怎么做&#xff0c;搞了半天 笔者看到官网&#xff0c;原来可以使用二进制文件&#xff0c;好好好 嵌入外部二进制文件 | Taurihttps://v2.taur…...

Qt桌面客户端跨平台开发实例

在Windows平台上&#xff0c;桌面客户端软件通常使用C/C语言和Qt跨平台开发框架进行开发。因此&#xff0c;大部分代码可以运行于不同平台环境&#xff0c;但是程序运行依赖的三方库以及代码中一些平台相关的头文件和接口需要进行平台兼容。本文以windows桌面端应用迁移到Linux…...

c++进阶之------红黑树

一、概念 红黑树&#xff08;Red-Black Tree&#xff09;是一种自平衡二叉查找树&#xff0c;它在计算机科学的许多领域中都有广泛应用&#xff0c;比如Java中的TreeMap和C中的set/map等数据结构的底层实现。红黑树通过在每个节点上增加一个颜色属性&#xff08;红色或黑色&am…...

政安晨【超级AI工作流】—— 使用Dify通过工作流对接ComfyUI实现多工作流协同

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 目录 一、准备工作 Dify跑起来 ollama局域网化配置 Dify配置并验证 启动ComfyUI 二、…...

javaweb开发以及部署

先说一个阿里云学生无门槛免费领一年2核4g服务器的方法&#xff1a; 阿里云服务器学生无门槛免费领一年2核4g_阿里云学生认证免费服务器-CSDN博客 Java Web开发是使用Java编程语言开发Web应用程序的过程&#xff0c;通常涵盖了使用Java EE&#xff08;Java Enterprise Edition…...

树莓派5介绍与系统安装

简介 Raspberry Pi 5采用运行频率为2.4GHz的64位四核Arm Cortex-A76处理器&#xff0c;与Raspberry Pi 4相比&#xff0c; CPU性能提高了2至3倍。此外&#xff0c;它还配备了一个800MHz的VideoCore VII GPU&#xff0c;可以提供大幅度的图形 性能提升&#xff0c;通过HDMI实现…...

菜鸟之路Day25一一前端工程化(二)

菜鸟之路Day25一一前端工程化&#xff08;二&#xff09; 作者&#xff1a;blue 时间&#xff1a;2025.3.19 文章目录 菜鸟之路Day25一一前端工程化&#xff08;二&#xff09;1.概述2.Element快速入门3.综合案例一.布局二.组件三.Axios异步加载数据1. 生命周期钩子概述2. mo…...

vue如何获取 sessionStorage的值,获取token

// 使用Axios发送请求并处理下载 import axios from axios;const handleDownload () > {const params {warehouseId: selectedWarehouseId.value};const apiUrl /api/materials/wmMatCheck/export-wmMatCheckDetail;axios.get(apiUrl, {params,responseType: blob, // 接…...

图解AUTOSAR_CP_DiagnosticLogAndTrace

AUTOSAR 诊断日志和跟踪(DLT)模块详解 AUTOSAR 经典平台中的诊断和调试关键组件 目录 1. 概述2. DLT模块架构 2.1 模块位置2.2 内部组件2.3 接口定义 3. DLT操作流程 3.1 初始化流程3.2 日志和跟踪消息处理3.3 控制命令处理 4. 数据结构与配置模型 4.1 配置类4.2 消息格式4.3 …...

微调实战 - 使用 Unsloth 微调 QwQ 32B 4bit (单卡4090)

本文参考视频教程&#xff1a;赋范课堂 – 只需20G显存&#xff0c;QwQ-32B高效微调实战&#xff01;4大微调工具精讲&#xff01;知识灌注问答风格微调&#xff0c;DeepSeek R1类推理模型微调Cot数据集创建实战打造定制大模型&#xff01; https://www.bilibili.com/video/BV1…...

金仓KESV8R6任务调度

基本概念 • 程序&#xff08;program&#xff09; 程序对象描述调度器要运行的内容。 • 调度计划&#xff08;schedule&#xff09; 调度计划对象指定作业何时运行以及运行多少次。调度计划可以被多个作业共享。 • 作业&#xff08;job&#xff09; 作业就是用户定义的…...

Maven常见问题汇总

Maven刷新,本地仓库无法更新 现象 This failure was cached in the local repository and resolution is not reattempted until the update interval of aliyunmaven has elapsed or updates are forced原因 因为上一次尝试下载&#xff0c;发现对应的仓库没有这个maven配置…...

颠覆者的困局:解构周鸿祎商业哲学中的“永恒战争”

引言&#xff1a;被误解的破坏者 在北京海淀区知春路银谷大厦的某间会议室里&#xff0c;周鸿祎用马克笔在白板上画出一个巨大的爆炸图案——这是2010年360与腾讯开战前夜的战术推演场景。这个充满硝烟味的瞬间&#xff0c;恰是《颠覆者》精神内核的完美隐喻&#xff1a;在中国…...

基于ChatGPT、GIS与Python机器学习的地质灾害风险评估、易发性分析、信息化建库及灾后重建高级实践

第一章、ChatGPT、DeepSeek大语言模型提示词与地质灾害基础及平台介绍【基础实践篇】 1、什么是大模型&#xff1f; 大模型&#xff08;Large Language Model, LLM&#xff09;是一种基于深度学习技术的大规模自然语言处理模型。 代表性大模型&#xff1a;GPT-4、BERT、T5、Ch…...

如何实现单点登录?

单点登录(Single Sign-On, SSO)是一种身份验证机制,允许用户在多个应用系统中只登录一次,就能够访问所有受保护的系统或服务,而无需重复登录。SSO通过集中式认证来简化用户的登录体验,提高安全性,并减少管理复杂性。 一、原理 SSO的核心原理是通过一个认证中心(Ident…...

01 Overview

版本pytorch 0.4&#xff0c;应用期的技术 学习的前提 线性代数和概率分布&#xff0c;高数 内容 穷举、贪心、分治算法、动态规划 花书是经典中的经典 机器学习历史 1 基于规则的 2 经典的机器学习方法 3 深度学习 深度学习竞赛识别率超过了人类 神经网络是数学和工…...

第二天 开始Unity Shader的学习之旅之熟悉顶点着色器和片元着色器

Shader初学者的学习笔记 第二天 开始Unity Shader的学习之旅之熟悉顶点着色器和片元着色器 文章目录 Shader初学者的学习笔记前言一、顶点/片元着色器的基本结构① Shader "Unity Shaders Book/Chapter 5/ Simple Shader"② SubShader③ CGPROGRAM和ENDCG④ 指明顶点…...

moveit2基础教程上手-使用xarm6演示

0、前置信息 开发环境&#xff1a;wsl。 ros版本&#xff1a;jazzy&#xff0c;ubuntu版本&#xff1a;24.04 xarm-ros2地址 1、启动Rviz&#xff0c;加载 Motion Planning Plugin&#xff0c;实现演示功能 Getting Started — MoveIt Documentation: Rolling documentation…...

头部姿态估计(Head Pose Estimation)领域,有许多开源工具和库可供选择,一些常用的工具及其特点

在头部姿态估计&#xff08;Head Pose Estimation&#xff09;领域&#xff0c;有许多开源工具和库可供选择。以下是一些常用的工具及其特点比较&#xff1a; 1. OpenCV 特点: OpenCV 是一个广泛使用的计算机视觉库&#xff0c;提供了丰富的图像处理和计算机视觉算法。虽然 O…...

Qt调用Miniconda的python方法

1、 Win 64环境下载及安装 Miniconda 首先下载Windows 版Miniconda&#xff0c;https://docs.conda.io/en/latest/miniconda.html或 https://repo.anaconda.com/miniconda/ 安装界面及选择如下图所示&#xff1a; 安装完python3.12版报错如下。 说明&#xff1a;python3.11版…...

【Linux 下的 bash 无法正常解析, Windows 的 CRLF 换行符问题导致的】

文章目录 报错原因&#xff1a;解决办法&#xff1a;方法一&#xff1a;用 dos2unix 修复方法二&#xff1a;手动转换换行符方法三&#xff1a;VSCode 或其他编辑器手动改 总结 这个错误很常见&#xff0c;原因是你的 wait_for_gpu.sh 脚本 文件格式不对&#xff0c;具体来说…...

DSP数字信号处理

数字信号处理&#xff08;Digital Signal Processing&#xff0c;简称DSP&#xff09;是一门研究如何通过数字技术对信号进行分析、修改和合成的学科。DSP在现代电子系统中无处不在&#xff0c;广泛应用于音频处理、视频处理、通信、雷达、医学成像等领域。 什么是数字信号处理…...

vue3 获取当前路由信息失败问题

刷新浏览器时获取当前路由信息失败&#xff1a;undefined import { ref, reactive, onMounted } from vue; import { useRoute } from vue-router; const route useRoute();onMounted(()>{// 打印当前路由信息console.log(当前route, route ); // 这里的打印有值console.…...

数据驱动进化:AI Agent如何重构手机交互范式?

如果说AIGC拉开了内容生成的序幕&#xff0c;那么AI Agent则标志着AI从“工具”向“助手”的跨越式进化。它不再是简单的问答机器&#xff0c;而是一个能够感知环境、规划任务并自主执行的智能体&#xff0c;更像是虚拟世界中的“全能员工”。 正如行业所热议的&#xff1a;“大…...

汽车芯片成本控制:挑战、策略与未来趋势

一、引言 随着汽车行业的快速发展&#xff0c;汽车芯片在车辆中的应用越来越广泛。从简单的发动机控制单元到复杂的自动驾驶系统&#xff0c;芯片已成为汽车智能化、电动化的核心部件。然而&#xff0c;汽车芯片的高成本一直是制约汽车行业发展的重要因素之一。本文将深入探讨…...

RIP实验

RIP实验 一、实验背景 RIP协议&#xff1a; RIP协议&#xff08;Routing Information Protocol&#xff0c;路由信息协议&#xff09;是一种基于距离矢量的内部网关协议&#xff0c;即根据跳数来度量路由开销&#xff0c;进行路由选择。相比于其它路由协议&#xff08;如OSPF、…...

NAT 实验:多私网环境下 NAPT、Easy IP 配置及 FTP 服务公网映射

NAT基本概念 定义&#xff1a;网络地址转换&#xff08;Network Address Translation&#xff0c;NAT&#xff09;是一种将私有&#xff08;保留&#xff09;地址转化为合法公网 IP 地址的转换技术&#xff0c;它被广泛应用于各种类型 Internet 接入方式和各种类型的网络中。作…...

电力和冷却管理:如何让数据中心“高效降温”同时节能增效

电力和冷却管理:如何让数据中心“高效降温”同时节能增效 数据中心作为现代信息技术基础设施的核心,承担着处理、存储和传输海量数据的重任。然而,这些庞大的服务器和存储设备在高速运转时,不仅需要大量电力供应,还产生了大量热量。如何平衡电力消耗与有效冷却,成为了数…...

LangChain Chat Model学习笔记

Prompt templates: Few shot、Example selector 一、Few shot(少量示例) 创建少量示例的格式化程序 创建一个简单的提示模板&#xff0c;用于在生成时向模型提供示例输入和输出。向LLM提供少量这样的示例被称为少量示例&#xff0c;这是一种简单但强大的指导生成的方式&…...

嵌入式硬件篇---Keil51中的关键字

文章目录 前言1. 存储类型关键字1.1code作用地址范围用途示例 1.2data作用地址范围用途示例 1.3idata作用地址范围用途示例 1.4xdata作用地址范围用途示例 1.5pdata作用地址范围用途示例 1.6volatile作用用途示例 2. 其他常用关键字2.1bit作用示例 2.2sbit作用示例 2.3sfr / sf…...

《TCP/IP网络编程》学习笔记 | Chapter 20:Windows 中的线程同步

《TCP/IP网络编程》学习笔记 | Chapter 20&#xff1a;Windows 中的线程同步 《TCP/IP网络编程》学习笔记 | Chapter 20&#xff1a;Windows 中的线程同步用户模式和内核模式用户模式同步内核模式同步 基于 CRITICAL_SECTION 的同步内核模式的同步方法基于互斥量对象的同步基于…...

MyBatis 中 #{} 和 ${} 的区别详解

目录 1. #{} 和 ${} 的基本概念 1.1 #{} 1.2 ${} 2. #{} 和 ${} 的工作原理 2.1 #{} 的工作原理 2.2 ${} 的工作原理 3.共同点&#xff1a;动态 SQL 查询 4. 区别&#xff1a;处理方式和适用场景 4.1 处理方式 4.2 适用场景 &#xff08;1&#xff09;#{} 的适用场景…...

C++学习之网盘项目单例模式

目录 1.知识点概述 2.单例介绍 3.单例饿汉模式 4.饿汉模式四个版本 5.单例类的使用 6.关于token的作用和存储 7.样式表使用方法 8.qss文件中选择器介绍 9.qss文件样式讲解和测试 10.qss美化登录界面补充 11.QHTTPMULTIPART类的使用 12.文件上传协议 13.文件上传协议…...

Lineageos 22.1(Android 15)制定应用强制横屏

一、前言 有时候需要系统的某个应用强制衡平显示&#xff0c;不管他是如何配置的。我们只需要简单的拿到top的Task下面的ActivityRecord&#xff0c;并判断包名来强制实现。 二、调整wms com.android.server.wm.DisplayRotation /*** Given an orientation constant, return…...

基于deepseek的智能语音客服【第四讲】封装milvus数据库连接池封装

通过工厂模式创建链接 static {// 创建连接池工厂BasePooledObjectFactory<MilvusServiceClient> factory new BasePooledObjectFactory<MilvusServiceClient>() {Overridepublic MilvusServiceClient create() throws Exception {return new MilvusServiceClient…...

【GeeRPC】项目总结:使用 Golang 实现 RPC 框架

文章目录 项目总结&#xff1a;使用 Golang 实现 RPC 框架谈谈 RPC 框架什么是 RPC 框架实现一个 RPC 框架需要什么&#xff1f;项目总结文章结构安排 Part1&#xff1a;消息编码编解码器的实现通信过程 Part2&#xff1a;服务端Accept&#xff1a;阻塞地等待连接请求并开启 go…...

人工智能在医疗影像诊断中的应用与挑战

引言 近年来&#xff0c;人工智能&#xff08;AI&#xff09;技术在医疗领域的应用逐渐成为研究热点&#xff0c;尤其是在医疗影像诊断方面。AI技术的引入为医疗影像诊断带来了更高的效率和准确性&#xff0c;有望缓解医疗资源紧张的问题&#xff0c;同时为患者提供更优质的医疗…...

烧结银技术赋能新能源汽车超级快充与高效驱动

烧结银技术赋能新能源汽车超级快充与高效驱动 在新能源汽车领域&#xff0c;高压快充技术的突破与高功率密度驱动系统的创新正成为行业竞争的焦点。比亚迪于 2025 年发布的超级 e 平台&#xff0c;通过整合全域千伏高压架构、兆瓦级闪充技术及碳化硅&#xff08;SiC&#xff0…...

大模型幻觉产生的【九大原因】

知识问答推理幻觉产生的原因 1.知识库结构切割不合理 大段落切割向量化 切分太小可以实现更精准化的回复内&#xff0c;向量匹配相似度越高。检索内容碎片化严重、可能包含不符合内容的文本数据。切分太大内容资料更完整&#xff0c;但是会影响相似度&#xff0c;同时更消耗资…...

4小时速通shell外加100例

&#x1f525; Shell 基础——从入门到精通 &#x1f680; &#x1f331; 第一章&#xff1a;Shell&#xff0c;简单说&#xff01; &#x1f476; 什么是Shell&#xff1f;它到底能做什么&#xff1f;这章让你快速了解Shell的强大之处&#xff01; &#x1f476; 什么是Shell…...

AD(Altium Designer)更换PCB文件的器件封装

一、确定是否拥有想换的器件PCB封装 1.1 打开现有的原理图 1.2 确定是否拥有想换的器件PCB文件 1.2.1 如果有 按照1.3进行切换器件PCB封装 1.2.2 如果没有 按照如下链接进行添加 AD(Altium Designer)已有封装库的基础上添加器件封装-CSDN博客https://blog.csdn.net/XU15…...

Postgresql 删除数据库报错

1、删除数据库时&#xff0c;报错存在其他会话连接 ## 错误现象&#xff0c;存在其他的会话连接正在使用数据库 ERROR: database "cs" is being accessed by other users DETAIL: There is 1 other session using the database.2、解决方法 ## 终止被删除数据库下…...