- 博客(181)
- 收藏
- 关注
原创 VS Code `launch.json` 完整配置指南:参数详解 + 配置实例
是一个非常关键的配置文件。它允许你定义多个调试任务,适用于不同的开发场景(如训练脚本、Jupyter Notebook、单元测试等)。如果你希望将敏感信息或大量环境变量放在外部文件中,可以创建。✅ 适用于快速调试任意 Python 文件,无需修改配置。✅ 以调试模式运行 pytest 单元测试,支持断点调试。的结构、字段含义、可选参数、变量使用以及常见配置示例。文件调试(需安装 Jupyter 扩展)。✅ 适用于多进程、GPU 计算等复杂场景。
2025-07-14 01:24:41
2220
原创 让 VSCode 调试器像 PyCharm 一样显示 Tensor Shape、变量形状、变量长度、维度信息
VS Code 的 Python 调试器底层使用的是debugpy,其中,变量的显示格式由中的函数控制。通过修改该函数逻辑,我们可以为常见的数据结构注入形状(shape)或长度(len)信息,使其直接显示在调试面板中。另一种方法是利用 debugpy 提供的扩展机制,注册一个,告诉调试器如何渲染特定类型的变量。【在 VS Code 调试器中自动显示变量形状和维度信息】【VS Code 中为调试器增强变量显示:自动显示张量 Shape、DataFrame 维度和容器长度】。
2025-07-12 14:00:35
1195
1
原创 在 VS Code 调试器中自动显示变量形状和维度信息
VS Code 的 Python 调试器底层使用的是debugpy,它提供了一套扩展机制,允许我们自定义变量的显示方式。其中,是 debugpy 提供的一个接口,可以让我们为特定类型的变量提供自定义的字符串表示形式。通过这个接口,我们可以在调试器中直接看到我们关心的数据结构信息,而不需要每次手动展开或打印。import systry:# 处理 Torch Tensor。
2025-07-11 19:22:49
1351
2
原创 从零实现孤立森林(Isolation Forest):原理 + Python 手写代码详解
与传统基于距离或密度的方法不同,孤立森林使用树结构对数据进行分割,并利用路径长度作为判断依据。本文将带你:手动实现完整的孤立森林算法,加强理解孤立森林的基本原理。传统的异常检测方法往往需要计算样本之间的距离或密度,效率较低,尤其在高维空间中效果不佳。从根节点出发,根据分裂条件决定走左还是右子树,直到到达叶子节点,记录路径长度。本文只展示从零实现孤立森林算法,完整代码已上传至 GitHub(包括。👇 以下是完整 Python 实现代码,可直接复制运行,以便调试理解。,使得异常点更容易被隔离到较浅的节点中。
2025-07-08 14:16:54
1194
2
原创 如何为单个 Git 仓库设置独立邮箱,不影响全局配置
方法适用场景是否影响全局长期使用某个仓库❌ 不影响环境变量GIT_*临时一次性提交❌ 不影响所有仓库默认邮箱✅ 影响全局如果目标是让某个仓库的提交关联到自己的 GitHub 账号,推荐使用 git config --local,简单高效且不影响他人配置。🔗参考文献Git 官方文档:设置用户名和邮箱GitHub 帮助:关联提交到账号。
2025-06-23 16:21:26
681
原创 Git 实战+基础解析(通过实战案例快速学会使用)
请重点练习第一部分的完整实践,能帮你更好的理解和使用git!最重要的是自己写代码的过程中经常用git做版本迭代和代码管理。先上重点实战干货(需要有一定的基础)所有操作都是利用 ubuntu 上的命令,如果 windows 不能执行命令,则可通过自己手动创建文件夹、文件、输入内容等Git 是一个版本管理工具(可以理解为主要用在本地,你的电脑上);GitHub 是基于 Git 的一个仓库托管平台。可以简单理解:GitHub 是一个线上存储共享平台,利用 Git 实现版本管理。
2025-06-10 17:28:14
1174
原创 Streamlit 上传 PDF 出现 AxiosError: Request failed with status code 400 的排查与解决(原因竟是 tornado 版本问题)
如果你在使用 Streamlit 上传文件时遇到并确保你的这样可以避免后续部署时再次引入不兼容版本。
2025-06-08 21:35:33
795
原创 使用 LlamaIndex 自定义 Transformation 组件实现节点元数据提取
在构建基于文档的 RAG(Retrieval-Augmented Generation)系统时,数据处理流程中最终要的一步就是文档的摄取与转换。LlamaIndex 提供了一个强大的工具——,它允许我们将原始文档一步步转换为可用于检索和生成的结构化节点(Node)。其中,是整个管道最核心的概念之一。它是指一组节点作为输入,并返回节点列表的操作。每个实现 Transformation 基类的组件都包含同步call() 定义或异步 acall() 定义的两种实现方式。
2025-06-02 17:05:51
478
原创 LlamaIndex的IngestionPipeline添加本地存储(本地文档存储)
用于管理摄取的文档及其元数据,从而实现文档去重、更新和持久化等功能。
2025-06-02 16:15:28
369
原创 Supervised Contrastive Learning 监督对比损失中的内求和与外求和:实例演示与分析
从上述计算示例中可以看出,**外求和(out-sum)和内求和(in-sum)**的主要区别在于计算顺序和对正样本的处理方式。外求和:每个正样本单独计算其对数概率,然后求平均,适合当每个正样本的重要性相对独立时。内求和:先聚合所有正样本的得分(平均),再计算对数概率,相当于将同类样本视为一个"多类别"群体。这样做可以更好地反映正样本集的整体一致性,适合在正样本间有较大方差的情况下使用。
2025-04-15 15:07:37
939
原创 WebChat 一款超好用的浏览器侧边栏 AI 问答插件
点击"划线工具栏"选项卡添加新工具,设置名称和提示词选中网页文本时,新工具按钮会出现在引用按钮旁边点击自定义工具按钮,自动引用内容并添加提示词发送点击侧边栏右上角的设置图标在设置面板中选择"设置"选项卡选择希望使用的模型可以添加自定义API密钥和自定义参数通过"划线工具栏"选项卡添加自定义工具每个工具可以配置名称和提示词选中文本后一键执行"引用+提示词+发送"的操作组合。
2025-04-15 13:25:31
1186
原创 深度学习中的数值稳定性处理详解:以SimCLR损失为例
数值稳定性处理是深度学习实现中一个看似简单但至关重要的技术。通过简单地减去每行的最大值,我们可以有效防止数值溢出/下溢问题,同时保持计算结果的数学等价性。这种技术尤其重要,因为随着模型和批量大小的增加,数值问题更容易出现,而且往往难以诊断。
2025-04-14 22:51:51
1098
原创 WebChat 一款非常好用的浏览器侧边栏 AI 问答插件
点击"划线工具栏"选项卡添加新工具,设置名称和提示词选中网页文本时,新工具按钮会出现在引用按钮旁边点击自定义工具按钮,自动引用内容并添加提示词发送点击侧边栏右上角的设置图标在设置面板中选择"设置"选项卡选择希望使用的模型可以添加自定义API密钥和自定义参数通过"划线工具栏"选项卡添加自定义工具每个工具可以配置名称和提示词选中文本后一键执行"引用+提示词+发送"的操作组合。
2025-04-11 22:00:13
1057
原创 WebChat 一款非常好用的浏览器侧边栏 AI 问答插件
点击"划线工具栏"选项卡添加新工具,设置名称和提示词选中网页文本时,新工具按钮会出现在引用按钮旁边点击自定义工具按钮,自动引用内容并添加提示词发送点击侧边栏右上角的设置图标在设置面板中选择"设置"选项卡选择希望使用的模型可以添加自定义API密钥和自定义参数通过"划线工具栏"选项卡添加自定义工具每个工具可以配置名称和提示词选中文本后一键执行"引用+提示词+发送"的操作组合。
2025-04-11 21:59:01
1082
原创 WebChat 一款超好用的浏览器侧边栏 AI 问答插件
点击"划线工具栏"选项卡添加新工具,设置名称和提示词选中网页文本时,新工具按钮会出现在引用按钮旁边点击自定义工具按钮,自动引用内容并添加提示词发送点击侧边栏右上角的设置图标在设置面板中选择"设置"选项卡选择希望使用的模型可以添加自定义API密钥和自定义参数通过"划线工具栏"选项卡添加自定义工具每个工具可以配置名称和提示词选中文本后一键执行"引用+提示词+发送"的操作组合。
2025-04-10 15:25:49
993
原创 深度学习基础框架通用模板 (Pytorch Template) - cifar10 图片分类为例,深度学习模板
本项目是一个基于 PyTorch 的深度学习基础框架,旨在帮助用户快速实现自己的训练模型。可视化(loss 和 acc 变化曲线)模型早停机制(Early Stopping)随机种子设置数据加载和预处理训练日志记录框架结构清晰、模块化设计,便于扩展和复用,同时包含了一些常用的深度学习工具和方法。既适合新手快速上手,也适合高级用户构建自己的实验框架。
2025-04-09 08:36:29
755
原创 WebChat 一款超好用的浏览器侧边栏 AI 问答插件
点击"划线工具栏"选项卡添加新工具,设置名称和提示词选中网页文本时,新工具按钮会出现在引用按钮旁边点击自定义工具按钮,自动引用内容并添加提示词发送点击侧边栏右上角的设置图标在设置面板中选择"设置"选项卡选择希望使用的模型可以添加自定义API密钥和自定义参数通过"划线工具栏"选项卡添加自定义工具每个工具可以配置名称和提示词选中文本后一键执行"引用+提示词+发送"的操作组合。
2025-04-07 23:21:50
1493
原创 WebChat 一款超好用的浏览器侧边栏 AI 问答插件
点击"划线工具栏"选项卡添加新工具,设置名称和提示词选中网页文本时,新工具按钮会出现在引用按钮旁边点击自定义工具按钮,自动引用内容并添加提示词发送点击侧边栏右上角的设置图标在设置面板中选择"设置"选项卡选择您希望使用的模型可以添加自定义API密钥和自定义参数通过"划线工具栏"选项卡添加自定义工具每个工具可以配置名称和提示词选中文本后一键执行"引用+提示词+发送"的操作组合。
2025-04-06 23:32:27
1100
原创 从零构建 KNN 分类: sklearn 与自定义实现对比
包含 KNN 模型的实现distances = np.sqrt(np.sum((self.X_train - x) ** 2, axis=1)) # 计算测试样本与所有训练样本的欧氏距离k_indices = np.argsort(distances)[:self.n_neighbors] # 获取距离最近的 k 个样本的索引k_nearest_labels = self.y_train[k_indices] # 获取 k 个最近邻样本的标签。
2025-03-11 11:00:46
952
原创 从零构建逻辑回归: sklearn 与自定义实现对比
逻辑回归通过将线性回归的结果通过 Sigmoid 函数转化为概率,并使用交叉熵损失函数来衡量模型的误差。通过反向传播计算梯度,并利用梯度下降优化参数,逻辑回归模型可以逐步学习到最优的分类边界,适用于二分类问题。
2025-03-10 22:12:30
811
原创 从零构建CNN:框架与自定义实现对比
手动实现卷积操作# 卷积核的初始化使用 Xavier 均匀分布self.weight = nn.Parameter(torch.randn(out_channels, in_channels, kernel_size, kernel_size)) # 初始化为随机值nn.init.xavier_uniform_(self.weight) # 使用 Xavier 均匀分布初始化权重。
2025-03-09 10:48:15
422
原创 从零实现与框架实现对比:图卷积网络(GCN)实战解析
图卷积网络(Graph Convolutional Network)是处理图结构数据的核心算法。本文通过在Cora数据集上对比。两种方案,解析GCN的关键技术细节。• 内置高效的稀疏矩阵运算。• 自动处理邻接矩阵归一化。• 保留节点自身特征。
2025-03-07 20:08:30
859
原创 PyTorch中的损失函数:F.nll_loss 与 nn.CrossEntropyLoss
无论是图像分类、文本分类还是其他类型的分类任务,交叉熵损失(Cross Entropy Loss)都是最常用的一种损失函数。它衡量的是模型预测的概率分布与真实标签之间的差异。F.nll_loss和。F.nll_loss是负对数似然损失(Negative Log Likelihood Loss),主要用于多类分类问题。它的输入是对数概率(log-probabilities),这意味着在使用F.nll_loss之前,我们需要先对模型的输出应用函数,将原始输出转换为对数概率形式。# 创建一些虚拟数据。
2025-03-07 19:41:28
828
原创 PyTorch中的线性变换:nn.Parameter VS nn.Linear
初始化权重# 初始化偏置# 线性变换:Y = XW + b# 创建自定义线性层# 打印权重和偏置# 输入数据input_data = torch.randn(4, 3) # 4个样本,每个样本有3个特征# 前向传播在这个示例中,我们手动创建了一个自定义的线性层,它使用来定义权重和偏置。在forwardY = XW + b。这个实现与nn.Linear提供的功能类似,但更多地体现了手动管理权重和偏置的方式。nn.Linear另一方面,nn.Linear。
2025-03-07 17:15:56
778
原创 利用 doi 批量下载 pdf 文献(代码亲测好用)
利用 doi 批量下载 pdf 文献。只需要准备包含和DOI两列的 excel 即可。
2025-02-20 21:53:30
3958
12
原创 手撕 word2vec (CBOW&Skip-gram) - 附代码和数据集
本篇博客参考B站视频:word2vec 词向量!手写代码!本篇内容完整代码和数据集在 github : https://github.com/tangpan360/word_2_vec.git1.2 测试相似度输出相似度:这段代码是基于 Word2Vec 算法的一个实现,采用的是 Skip-gram 模型(通过目标词预测上下文词),并利用 One-Hot 编码 和 Softmax 进行训练。具体实现流程包括数据加载、分词、词向量训练以及模型保存。我们逐步解析代码:导入的库: 用于进行数值计算,特
2025-02-16 20:02:17
1118
原创 词袋模型和词嵌入模型区别和关联分析(词袋模型是否属于词嵌入模型)
词袋模型是基于统计的浅层表示,词嵌入是基于学习的深层语义表示。在深度学习时代,词嵌入及其衍生技术(如Transformer)已成为NLP的基石,但词袋模型在特定场景中仍具实用价值。
2025-02-14 20:48:22
429
原创 词袋模型 (BOW) 解析及代码实战
词袋模型将文本抽象为无序词集合(“bag”),通过向量化表示实现文本数字化。Documentiwi1wi2winDocumentiwi1wi2...win其中wijw_{ij}wij表示词汇表第j个词在文档i中的出现频次或存在性(0/1)。这种表示方式使文本数据可直接输入机器学习模型。
2025-02-14 20:27:55
1324
原创 理解深度学习pytorch框架中的线性层
本文将从数学角度和编程实现角度剖析它们的关系,并结合实际示例指出一些常见的坑与需要特别留意的下标对应问题。通过理解并区分“列向量”与“行向量”的不同惯例,避免因为矩阵维度或转置不当而导致莫名其妙的错误或 bug。但按照线性代数的常规写法,行数必须和输出维度匹配、列数必须和输入维度匹配。并无冲突,只是一个“列向量”和“行向量”的转置关系。这就是最传统、在数学文献或线性代数课程中最常见的表示方法。其实正是同一个道理,它和上面“数学文献里”用到的。,这就造成了在进行矩阵乘法时,需要将。是一个列向量,通常会写作。
2025-01-23 15:27:58
908
原创 深度学习中的模块复用原则(定义一次还是多次)
下面列出了必须单独定义的常见模块及原因。在深度学习中,模块复用直接影响到模型的行为和性能。模块是否可以复用原因Linear否有可学习参数,需要独立权重和偏置Conv2d否有可学习参数,需要独立卷积核LSTM否有可学习参数和动态隐藏状态否有可学习参数,需要独立权重Embedding否索引空间和嵌入维度不同Dropout是无状态,随机行为ReLU是无状态,固定行为BatchNorm视情况而定有状态,特征相同可复用,特征不同需独立定义。
2025-01-15 21:13:02
1138
原创 PyTorch 中的 Dropout 解析
从推荐位置开始:如全连接层后,先测试模型性能,再进行微调。验证集评估:通过验证集上的指标来判断 Dropout 效果,并据此调整。结合其他正则化手段:如 L2 正则化、数据增强等,多管齐下往往更有效。
2025-01-14 23:43:03
2049
原创 神经网络初始化 (init) 介绍
在深度学习的世界中,构建一个高效且性能优异的神经网络模型需要综合考虑多个因素。尽管选择合适的架构和优化算法至关重要,但权重初始化这一环节同样不容忽视。合适的初始化策略不仅能加速模型的收敛速度,提升训练稳定性,还能显著影响最终的模型性能。在深入探讨各种初始化方法之前,首先需要理解权重初始化在神经网络训练中的关键作用。如果所有神经元的权重初始化为相同的值,网络在训练初期将无法学习到多样化的特征。这是因为在前向传播和反向传播过程中,每个神经元都会计算出相同的输出和梯度,导致它们在训练过程中同步更新,学习到相同的内
2025-01-14 14:11:35
757
原创 深度学习中的学习率调度器(scheduler)分析并作图查看各方法差异
以上示例代码展示了不同学习率调度器的实现方式以及学习率随训练步骤变化的过程。选择合适的调度器可以根据具体任务和模型的需求来优化训练效果。指数衰减调度器(Exponential Decay Scheduler):适用于希望学习率持续且缓慢降低,稳定收敛的训练过程。余弦退火调度器(Cosine Annealing Scheduler):适用于需要动态调整学习率以避免局部最优,尤其适合复杂模型。步长衰减调度器(Step Decay Scheduler):适用于分阶段训练,明确划分训练阶段的任务。
2025-01-14 03:18:29
3055
原创 深入探讨多种类型的BERT模型及其应用
BERT是由Google于2018年提出的一种双向Transformer编码器,旨在通过掩码语言模型(Masked Language Modeling, MLM)和下一句预测(Next Sentence Prediction, NSP)两大任务进行预训练。其双向性使得BERT在理解上下文方面表现尤为出色,广泛应用于各种NLP任务。BERT及其衍生模型在NLP领域展现了强大的适应性和卓越的性能。根据不同的任务需求和资源限制,开发者可以选择合适的BERT模型进行微调和应用。从基础的BERT模型到各种。
2025-01-13 22:25:15
1553
原创 (经过验证)在 Ubuntu 系统中为 VSCode、PyCharm 终端及 Jupyter Notebook 配置代理的完整方案
在 Ubuntu 系统中为 VSCode、PyCharm 以及 Jupyter Notebook 配置代理,最简便且通用的做法是先配置系统环境变量,以便工具自动继承;然后再根据具体需求,在各个 IDE 或 Notebook 内进行微调。首选:在~/.bashrc中设置http_proxy和ALL_PROXY等变量,并执行,使之即时生效。若某些工具无法读取系统环境变量,可在其内置的设置界面进行代理配置,或者在 Notebook 内部通过%env命令进行覆盖。
2025-01-13 17:57:39
2486
原创 基于 Selenium 实现上海大学校园网自动登录
通过访问校园网登录页面,检查页面提示是否为 “您已成功连接校园网!”,从而判断网络状态。初始化 Edge WebDriver,并设置隐式等待时间为 10 秒。主程序负责循环检测网络状态,自动化执行登录操作,确保网络连接的稳定性。模拟手动登录校园网的操作,包括输入用户名、密码和触发登录。
2025-01-12 13:42:42
506
原创 在 CentOS 上安装 Docker 和 Docker Compose(可指定版本或安装最新版本)
安装最新版本:无需特定依赖要求时,可直接获取最新特性与安全补丁。安装指定版本:在对环境兼容性要求较高、尤其是生产环境时,可选择特定版本。镜像加速器配置:国内网络环境下拉取镜像会更稳定、更快速。卸载与数据清理:提供从系统中彻底移除 Docker 及其数据的方式,便于重新配置或节省资源。常见问题处理:针对国内访问缓慢、权限等问题进行了说明。
2025-01-08 21:06:56
9773
1
原创 解决SSH连接时遇到的“远程主机身份验证已更改 (WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!)”警告
在使用SSH协议进行远程服务器管理的过程中,可能会遇到这样的情况:当尝试通过SSH连接到某个远程主机时,终端突然弹出一条警告信息,提示“远程主机身份验证已更改”。:如果远程服务器进行了系统重装、升级或SSH服务重新配置等操作,其SSH主机密钥很可能会随之改变。
2025-01-08 20:09:42
908
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人