自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 线性模型 VS 广义线性模型 VS 广义加性线性模型

B-spline 基函数B(X) 必须是多项式,一般三次样条函数。必须正态分布的限制,并引入了“连接函数”。为恒等函数时,GLM 就退化成了 LM。:解除了预测部分必须是“线性组合”的限制。的期望值通过连接函数变换后,被建模为。时,GAM 就退化成了 GLM。连续且正态分布,与预测变量是。服从正态分布且连接函数。含义:通过一个连接函数。:GAM 是 GLM 的。:GLM 是 LM 的。(“加性”的含义)。

2025-12-15 16:38:13 320

原创 python 在class中几种函数的定义和用法

return f"我叫{self.name},今年{self.age}岁"person = Person.from_birth_year("李四", 1990)print(f"{person.name} 大约 {person.age} 岁")print(person.introduce()) # 我叫张三,今年25岁。print(person.introduce()) # 我叫张三,今年26岁。print(Person.get_species()) # 人类。

2025-10-28 17:36:46 489

原创 在word中使用lateX公式的方法

1. 在专业的 Markdown 编辑器(如 **Typora**)或代码编辑器(如 **VS Code** 配合 Markdown 插件)中,用 LaTeX 编写你的内容。这是目前**最优秀、最接近“自动转换”**的方案。* 点击 **MathType** -> **Inline Equation** 或 **Display Equation**。| **Word 原生支持 (按空格)** | 无缝集成、无需插件、可二次编辑 | 非实时、需按空格触发 | ⭐⭐⭐⭐⭐ **(首选)** |

2025-09-03 18:10:23 3451

原创 Parallelism methods about distributed training

理解:模型参数结构在每个GPU上完整copy,数据拆分并行处理,这个样速度快,但是不能解决显存问题,而且整合数据可能也需要增加较大开销。理解: 模型层顺序分配到不同的GPU,方便解决单张GPU的显存限制,但是他是流水线的工作方式,GPU利用率就较低。

2025-08-13 16:54:17 694

原创 Accelerater for distributed training

Accelerate is a library designed to simplify distributed training on any type of setup with PyTorch by uniting the most common frameworks (Fully Sharded Data Parallel (FSDP) and DeepSpeed) for it into a single interface. Trainer is powered by Accelerate un

2025-08-13 14:24:05 264

原创 完全分片数据并行(FSDP, Fully Sharded Data Parallel)

完全分片数据并行(**FSDP, Fully Sharded Data Parallel**)是 PyTorch 提供的一种分布式训练技术,主要用于在多 GPU(甚至多节点)环境中训练**超大模型**时节省显存和提升可扩展性。* 如果模型很大(比如数百亿甚至上百亿参数),单个 GPU **装不下完整的模型参数 + 梯度 + 优化器状态**。* 当某个层需要计算时,FSDP 会\*\*按需广播(AllGather)\*\*该层的参数到所有 GPU。* 计算梯度时,也会在各 GPU 上收集必要的梯度分片。

2025-08-13 10:31:19 454

原创 GPU单机多卡的使用,基于Transforms

`device_map="cuda"` 或 `device_map=0` | 模型全部放GPU0 | 简单单卡训练 |* 在多机多卡训练,`accelerate`配合`device_map="auto"`,自动生成最佳分布方案。* **字符串(如 `"cpu"`, `"cuda"`, `"cuda:0"` 等)或整型(如 `0`)*** `"cuda"` 或 `"cuda:0"` 或 `0`:模型全部放第一块GPU。

2025-08-11 17:24:07 365

原创 hugfacing阅读记录

方法将数据保存为 dataset 格式,如果我们需要做更多的预处理而不仅仅是 tokenization 它还支持了一些额外的自定义的方法。中一样,我们可以给 Tokenizer 提供一对句子,第一个参数是它第一个句子的列表,第二个参数是第二个句子的列表。格式存储在磁盘上的,因此你只需将接下来要用的数据加载在内存中,而不是加载整个数据集,这对内存容量的需求比较友好。以下是如何使用 tokenization 函数处理我们的整个数据集的方法。这种方法虽然有效,但有一个缺点是它返回的是一个字典(字典的键是。

2025-07-29 11:06:44 294

原创 深度学习DL训练过程解释

`**batch` 是把字典解包成参数(等价于 `model(input_ids=..., attention_mask=...)`)。- `batch` 是一个字典,包含输入数据(如`input_ids`、`attention_mask`等)。- **比喻**:把一道数学题(输入数据)交给学霸(模型),学霸给出答案(输出)和自信程度(损失)。- `outputs` 包含模型的预测值(`logits`)和损失(`loss`)。必须先计算梯度(`backward`),再用梯度更新参数(`step`)。

2025-07-28 15:29:18 511

原创 肠道宏基因组数据分析流程要关注的参数和指标

**指标** | **阈值** | **说明** || **指标** | **阈值** | **意义** |

2025-07-16 17:09:36 873

原创 宏基因组 bin的原理和作用

**工具** | **原理** | **优势** | **局限** |- **去污染**:用`CheckM`移除低完整性(<50%)或高污染率(>10%)的bins。- **k-mer频率**:不同微生物的DNA序列具有独特的短序列(如4-mer)偏好。- **分bin前注释**适合快速预览物种组成,**分bin后注释**适合精准分析。

2025-07-16 17:02:11 522

原创 肠道宏基因组数据分析流程

摘要: 肠道宏基因组数据分析流程包括质控(FastQC/Trimmomatic)、宿主DNA去除(Bowtie2)、组装(MEGAHIT/SPAdes)、基因预测(Prodigal)、物种功能注释(Kraken2/HUMAnN3)、分bin构建MAGs(MetaBAT2)及统计与机制分析(alpha/beta多样性、代谢网络)。关键挑战如宿主污染(联合Bowtie2+DeconSeq)、菌群复杂度(混合分bin)需针对性解决。流程设计基于肠道样本特性(高宿主DNA、功能驱动疾病),最终输出物种组成、功能通路

2025-07-16 16:51:43 1376

原创 在xshell中打开火狐浏览器

export DISPLAY=localhost:10.0 # 默认 X11 转发通道(这种方法没试)ssh -X weifeng_ma@work1 # 基础 X11 转发9。ssh -Y weifeng_ma@work1 # 信任模式(减少限制)第三步:连接到指定的节点打开,必须用下面方式,不能直接双节再切换。检查 Windows 任务栏是否有。

2025-06-17 11:22:47 453

原创 安装ntfs硬盘系统时,报错Error: Unable to find a match: epel-release的解决方法

你遇到的这个问题,是因为你的 **CentOS 8 是使用 ISO 本地源安装的(Media - BaseOS/AppStream)**,并没有连接到互联网,也没有配置好 **EPEL 仓库或在线软件源**,所以系统找不到 `epel-release` 和 `ntfs-3g`。如果你的服务器不能联网,你可以在另一台能联网的机器上(也是 CentOS 8)下载所需的 `.rpm` 包,然后通过 U 盘等方式拷贝到服务器安装。#### 步骤 3:安装 ntfs-3g。#### 步骤 2:安装 EPEL 源。

2025-04-21 15:44:47 1263

原创 单细胞肿瘤细胞识别机器学习研究

**内容**: 开发了一种混合神经网络模型(HHNN),通过单细胞DNA测序数据检测拷贝数变异(CNV),区分恶性与非恶性细胞。- **内容**: 整合scRNA-seq、TCR/BCR测序和表观组数据,通过随机森林模型预测肿瘤细胞与免疫细胞的相互作用。- **内容**: 基于迁移学习模型(如ResNet),从外周血单细胞数据中识别循环肿瘤细胞(CTCs),灵敏度达90%。- **内容**: 利用贝叶斯模型和K-means聚类,从scRNA-seq数据中检测亚克隆CNV并鉴定恶性细胞。

2025-02-26 19:04:52 709

原创 弱监督学习原理和实现:pytorch代码举例

常见的弱监督方法包括**噪声标签处理**、**半监督学习**、**多实例学习**、**自监督学习**等。我们可以使用 **标签平滑(Label Smoothing)** 技术来处理噪声标签。我们以 **噪声标签** 和 **半监督学习** 为例,展示在 PyTorch 中如何实现这些弱监督学习模型。1. **基于噪声标签的模型**:通过对噪声标签的建模,设计鲁棒的损失函数来减轻噪声对模型训练的影响。1. **标签噪声的鲁棒训练**:通过设计鲁棒的损失函数(如标签平滑损失)来应对标签噪声。

2025-02-18 15:17:10 1115

原创 cellXgene中很h5ad数据的表头说明

细胞悬液的类型(如 `single-cell` 或 `nuclei`)。- 供体自我报告的种族(如 `Asian`、`Caucasian`)。- 细胞或样本的发育阶段(如 `adult` 或 `embryo`)。- 样本是否来自疾病状态(如 `healthy`、`COPD`)。- 样本供体的性别(如 `male` 或 `female`)。- 细胞类型的描述(如 `T cell`、`B cell`)。- 样本来源的组织(如 `lung`、`liver`)。

2024-12-30 15:24:39 732

原创 TransformerEncoderLayer 理解

**第一层线性变换 (`linear1`)**:对层归一化后的输出进行线性映射,输出维度通常是更大的值,如 `2048`。- **Dropout (`dropout1`)**:对第一层的输出进行丢弃(dropout),帮助正则化模型。- **第二层线性变换 (`linear2`)**:将前馈网络的输出映射回嵌入空间的维度,即 `512`。- 然后对结果进行 **Layer Normalization**(`norm2`)。### 1. **自注意力机制 (`self_attn`)**

2024-12-18 14:29:59 784

原创 unbuntu 固定IP配置

【代码】unbuntu 固定IP配置。

2024-12-05 17:26:24 289

原创 较类中的方法和属性比较

**作用**:是完全独立的方法,不能访问类属性或实例属性,通常用于实现与类相关但不依赖实例或类状态的逻辑。- **定义**:以双下划线 `__` 开头和结尾的方法,如 `__init__`、`__str__`。- **定义**:使用 `@staticmethod` 装饰,无需传入 `self` 或 `cls`。- **定义**:使用 `@classmethod` 装饰,第一个参数是 `cls`,表示类本身。- **定义**:使用 `def` 定义,第一个参数是 `self`,表示实例对象本身。

2024-11-26 18:38:34 652

原创 python 中的 NumPy 库中的广播规则

在这里,`a` 的形状是 `(3,)`,`b` 的形状是 `(3, 1)`。NumPy 会将 `a` 的形状扩展为 `(3, 3)`,将 `b` 的形状扩展为 `(3, 3)`,然后进行元素级相加。这里 `a` 的形状是 `(2, 3)`,`b` 的形状是 `(2, 1)`。1. `a` 的形状 `(2,)` 可以理解为 `(1, 2)`,这样就和 `b` 的形状 `(2, 2)` 有了匹配的维度。在这种情况下,`a` 的形状是 `(3,)`,`b` 的形状是 `(2, 2)`。

2024-11-13 17:46:38 614

原创 python中的__call__函数

在这个示例中,`Adder` 类定义了一个 `__call__` 方法,使得 `adder` 实例可以像函数一样被调用。当我们写 `adder(5)` 时,实际上是调用了 `adder.__call__(5)`,并返回了 `15`。当你使用 `()` 运算符调用该实例时,Python 会自动调用该实例的 `__call__` 方法。在这个例子中,`Multiplier` 类定义了 `__call__` 方法,使得 `double` 和 `triple` 对象可以像函数一样调用,并且返回不同的倍增结果。

2024-11-05 17:01:07 533

原创 ggplot2 记录

labs(title = "车重与油耗关系", x = "车重", y = "油耗", color = "档位") +labs(title = "折线图: 失业人数随时间的变化", x = "时间", y = "失业人数")labs(title = "散点图: 车重与油耗的关系", x = "车重", y = "油耗")labs(title = "失业人数随时间的变化", x = "时间", y = "失业人数")labs(title = "分类数值的柱状图", x = "分类", y = "数值")

2024-11-01 18:37:00 531

原创 pytorch 模块学习记录

通常是特征的维度,例如对于形状为 `(batch_size, num_features)` 的输入,可以设置为 `num_features`。- **p (浮点数,默认值=0.5):** 表示输入的每个神经元被置为零的概率。- **inplace (布尔值,默认值=False):** 如果设置为 `True`,会在原地执行操作(即不创建新张量,直接修改原始张量)。- 描述:如果为 `True`,层归一化将会学习可学习的参数(权重和偏置),默认为 `True`。- 类型:`int` 或 `tuple`

2024-09-30 10:06:58 544 2

原创 conda目录的整体迁移

文件2:/publicDisk/weifeng_ma/01.software/01.Anaconda3/bin/conda-env。文件1:/publicDisk/weifeng_ma/01.software/01.Anaconda3/bin/conda。背景: 新买了一台服务器,想把原来旧服务器上的conda整体迁移到新服务器上,于是就做了尝试。第二步:修改bashrc中conda的初始化路径,如下: 旧路径改完新路径。第三步: 修改两个文件的首行, 即引用的旧python路径改为新路径。

2024-09-29 19:19:21 590

原创 Linux 平台上安装 NVIDIA GPU 驱动和 CUDA Toolkit

访问 [NVIDIA cuDNN 下载页面](https://developer.nvidia.com/cudnn),下载适合你的 CUDA 版本的 cuDNN,然后按照说明进行安装。访问 [NVIDIA 驱动下载页面](https://www.nvidia.com/Download/index.aspx),选择你的 GPU 型号和操作系统,然后下载最新的驱动程序。以上步骤涵盖了在 Linux 上安装 NVIDIA GPU 驱动和 CUDA Toolkit 的基本流程。2. 按照安装向导的提示进行安装。

2024-09-29 16:29:57 1129

原创 Conda 环境迁移

将 `user` 替换为目标服务器的用户名,将 `target_server` 替换为目标服务器的 IP 地址或主机名,将 `/path/to/destination` 替换为你希望存放文件的路径。通过导出环境、复制 YAML 文件并在目标服务器上创建新环境,你可以轻松地将 Conda 的 base 环境从一台机器迁移到另一台机器。这将创建一个名为 `base_environment.yml` 的文件,包含 base 环境的所有包和依赖。### 3. 在目标服务器上创建环境。### 4. 激活新环境。

2024-09-29 15:56:14 1049

原创 torch.nn.MultiheadAttention的返回值

这是多头注意力计算后的输出,它将输入的 `query` 与 `key` 和 `value` 进行注意力计算,并通过多个注意力头来捕捉序列中不同位置的依赖关系。1. **`attn_output`** 的形状是 `(10, 32, 512)`,表示序列中每个位置经过多头注意力机制后的输出。2. **`attn_output_weights`**(注意力权重):表示注意力机制为输入序列每个位置分配的注意力权重。- **`attn_output`**:多头注意力的输出张量,包含序列中每个位置的上下文信息。

2024-09-20 11:05:30 713

原创 torch.nn.Transformer提取注意力图

1. **`save_attention_weights` hook**: 我们使用 `register_forward_hook` 在每个 `MultiheadAttention` 层上添加一个钩子,以提取注意力权重。- **`attention_weights`**: 这个列表包含每个 `MultiheadAttention` 层的注意力权重,形状为 `(batch_size, num_heads, sequence_length, sequence_length)`。

2024-09-20 10:04:26 652

原创 nn.Embedding 类

num_embeddings` 是 `nn.Embedding` 中的一个关键参数,它指定**嵌入层中词汇表的大小**,也就是嵌入矩阵的行数。- **生成嵌入矩阵**:`nn.Embedding` 生成的嵌入矩阵的大小是 `(num_embeddings, embedding_dim)`,其中每一行对应一个词的嵌入向量。- **`num_embeddings=10000`**:嵌入层中有 10,000 个唯一的索引,每个索引对应一个词汇表中的单词或标记。# 前向传播,返回这些索引对应的嵌入向量。

2024-09-12 10:15:01 394

原创 Dataset对象

例如,在 PyTorch 中,你可以创建一个自定义的 `Dataset` 类,通过继承 `torch.utils.data.Dataset`,并实现 `__getitem__` 和 `__len__` 方法。- 当你通过 `dataset[idx]` 访问 `Dataset` 对象时,Python 会调用 `__getitem__` 方法,并将 `idx` 作为参数传递给它。- 例如,当你调用 `len(dataset)` 时,Python 会调用 `__len__` 方法来获得数据集的大小。

2024-09-11 11:25:52 497

原创 关于Transform模型的一些问题

4. **词汇表中的概率分布**:最终的隐藏状态向量通过一个线性变换映射到与词汇表大小相同的向量,随后通过 softmax 函数转化为概率分布。2. **多头自注意力机制**:解码器通过多头自注意力机制,结合上下文信息(包括来自编码器的上下文和已经生成的词)来生成新的上下文表示。1. **输入嵌入**:解码器接收当前的输入单词或前一步的预测结果(在生成任务中),将其转换为嵌入向量。5. **选择下一个单词**:根据该概率分布,从词汇表中选取概率最高的单词作为下一个单词的预测结果。

2024-09-10 14:32:24 398

原创 Self Attention:在Transform模型中,为什么内积越大,模型会认为这两个词之间的关系较强。

内积 \( \mathbf{q} \cdot \mathbf{k} \) 的大小反映了一个词的查询向量和另一个词的键向量之间的相似程度。其中,\( \|\mathbf{q}\| \) 和 \( \|\mathbf{k}\| \) 分别是向量的长度,\( \theta \) 是两个向量之间的夹角。当两个向量的方向接近(即夹角 \( \theta \) 小),它们的内积会更大,这意味着两个向量在同一方向上具有更大的投影重叠,换句话说,它们在某种意义上更加相似或相关。#### 2. 在自注意力机制中的应用。

2024-09-10 10:04:07 509

转载 神经网络基础知识

理解深度神经网络——DNN(Deep Neural Networks)_dnn分类的原理-CSDN博客 https://blog.csdn.net/qq_41665685/article/details/105762611?spm=1001.2014.3001.5506 transform模型理解参考: https://zhuanlan.zhihu.com/p/338817680

2024-09-05 17:46:17 110

原创 空转指标说明

高的Sequencing Saturation表示大部分的转录本已经被检测到,而低的Sequencing Saturation则意味着还可能有未被检测到的转录本存在。**重要性**: 高的Sequencing Saturation通常意味着大多数的基因表达信息已经被捕获,进一步的测序投入不会显著增加新的信息。当增加测序深度却没有明显增加新的检测到的转录本数量时,Sequencing Saturation接近1,表示测序已接近饱和,进一步增加测序深度不会显著增加新的信息。

2024-07-31 17:24:18 492

原创 .ipynb文件转换为.py文件:

你可以使用`nbconvert`工具在命令行中将`.ipynb`文件转换为`.py`文件。请告诉我你是否希望我在当前环境中帮助你完成转换,并上传你的`.ipynb`文件。将`your_notebook.ipynb`替换为你的文件名。将`your_notebook.ipynb`替换为你的文件名。4. 选择“Python (.py)”选项。2. 选择你要转换的`.ipynb`文件。### 使用`nbconvert`工具。# 将.ipynb转换为.py。1. 打开终端或命令提示符。# 读取.ipynb文件。

2024-07-23 15:32:41 2744

原创 linux服务器监控CPU:CPU总使用率超过90%自杀进程

第三步:启动,开自机启动,查看服务状态,

2024-07-17 19:07:13 596

原创 进展性腺瘤和高级别腺瘤的区别

**不同**:进展性腺瘤除了包括高级别腺瘤外,还包括其他特征,如尺寸大于1厘米和具有绒毛样成分的腺瘤。- **进展性腺瘤**:由于其具有较高的癌变风险,通常需要更积极的治疗和密切的随访。2. **高级别上皮内瘤变(High-grade dysplasia)**:腺瘤中存在高度不典型的细胞,核大且不规则,染色质粗糙,核仁明显。- **重叠**:高级别腺瘤(具有高级别上皮内瘤变)通常属于进展性腺瘤的一部分,因为高级别上皮内瘤变是进展性腺瘤的一个特征。1. **尺寸**:腺瘤直径大于1厘米(10毫米)。

2024-07-04 18:53:10 1630

原创 Tab键自动补全Python代码,插件安装

这个配置可以提高编写代码时的效率,使得 `Tab` 和 `Shift-Tab` 键可以在不同的上下文中执行不同的操作,方便地浏览和选择补全选项,同时在没有补全菜单时仍然能够执行正常的制表符和退格操作。- `Shift-Tab` 执行 `Ctrl-h` (`\`) 操作。- `Shift-Tab` 执行 `Ctrl-p` (`\`) 操作。这通常用于选择补全菜单中的上一个选项。1. 补全菜单出现,显示可能的补全选项,比如 `print`, `private`, `primary` 等。

2024-06-26 18:05:09 1012

原创 RNA融合过滤标准

不同的RNA-seq数据分析工具可能会提供不同的参数和选项来实现这些过滤标准,常用的工具包括FusionCatcher、STAR-Fusion、TopHat-Fusion等。RNA融合(RNA fusion)的过滤标准在RNA测序(RNA-seq)数据分析中非常重要,以确保鉴定到的融合基因是生物学上真实存在的,而不是技术噪声或假阳性。过滤掉已知的假阳性融合事件,如在公共数据库(如FusionCatcher或STAR-Fusion数据库)中记录的技术性伪融合。这有助于确认融合事件的准确性。

2024-06-19 15:19:35 581

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除