视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战

视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战

目录

### 文章目录

  • [视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [目录](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [@[toc]](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [1. 引言:从 CNN 到 Transformer 的跨界](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [1.1 常见误区与调试技巧](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [2. ViT 核心原理:图像如何变成序列?](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [2.1 核心步骤:](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [2.2 拓展概念:归纳偏置 (Inductive Bias)](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [3. 核心组件代码实现:Patch Embedding](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [3.1 正面示例:高效实现补丁嵌入](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [3.2 错误实例:位置编码忘记相加](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [4. 项目实战:基于 ViT 的图像分类](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [4.1 代码流程](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [4.2 训练要点](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [5. 高级使用技巧:性能优化与微调](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [5.1 图像尺寸的灵活性](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [5.2 掉点检查:梯度裁剪](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [6. 实际工作中的应用建议](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [6.1 工业部署的考量](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [6.2 实际项目避坑指南](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)
  • [7. 总结与展望](#文章目录 视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战 目录 @[toc] 1. 引言:从 CNN 到 Transformer 的跨界 1.1 常见误区与调试技巧 2. ViT 核心原理:图像如何变成序列? 2.1 核心步骤: 2.2 拓展概念:归纳偏置 (Inductive Bias) 3. 核心组件代码实现:Patch Embedding 3.1 正面示例:高效实现补丁嵌入 3.2 错误实例:位置编码忘记相加 4. 项目实战:基于 ViT 的图像分类 4.1 代码流程 4.2 训练要点 5. 高级使用技巧:性能优化与微调 5.1 图像尺寸的灵活性 5.2 掉点检查:梯度裁剪 6. 实际工作中的应用建议 6.1 工业部署的考量 6.2 实际项目避坑指南 7. 总结与展望)

1. 引言:从 CNN 到 Transformer 的跨界

在 2020 年之前,卷积神经网络 (CNN) 统治着计算机视觉领域。然而,Google 提出的 ViT (Vision Transformer) 彻底打破了这一格局。它证明了:不需要卷积(Convolution),纯 Transformer 架构也能在视觉任务上取得 SOTA 效果。

1.1 常见误区与调试技巧

  • 错误实例 :直接将小数据集(如只有几百张图)喂给原生的 ViT。
    • 现象:模型完全不收敛,准确率极低。
    • 纠正 :ViT 缺乏 CNN 那样的归纳偏置(Inductive Bias)(如平移不变性和局部性)。它需要海量数据(如 ImageNet-21k)预训练才能展现威力。
  • 调试技巧 :在训练初期,观察 Attention Map。如果注意力完全随机,没有聚焦在物体边缘或核心区域,通常说明学习率设置过大或没有加载预训练权重。

2. ViT 核心原理:图像如何变成序列?

Transformer 本是为 NLP 设计的,处理的是 1D 词向量序列。ViT 的精髓在于如何将 2D 图像"伪装"成 1D 序列。

2.1 核心步骤:

  1. Patch Partition(切片) :将图像划分为固定大小的补丁(如 16 × 16 16 \times 16 16×16)。
  2. Linear Projection(线性映射):将补丁展平并映射为高维向量(Embedding)。
  3. Position Embedding(位置编码):为每个向量加上位置信息,否则 Transformer 无法分辨补丁的顺序。
  4. CLS Token:模仿 BERT,在序列开头加入一个可学习的"类别标记",用于最终分类。

2.2 拓展概念:归纳偏置 (Inductive Bias)

  • CNN:天生认为相邻像素更有联系(局部性)。这是一种"先验知识",让 CNN 在小数据上表现好。
  • ViT:不带任何成见,通过全局注意力(Global Self-Attention)去学习关系。虽然起步慢,但数据量越大,上限越高。

3. 核心组件代码实现:Patch Embedding

3.1 正面示例:高效实现补丁嵌入

利用 PyTorch 的 Conv2d 可以巧妙实现补丁切分与映射。

python 复制代码
import torch
import torch.nn as nn

class PatchEmbedding(nn.Module):
    def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=768):
        super().__init__()
        # 使用卷积实现切片:kernel_size=stride=patch_size
        self.proj = nn.Conv2d(in_chans, embed_dim, kernel_size=patch_size, stride=patch_size)

    def forward(self, x):
        # x: [B, 3, 224, 224]
        x = self.proj(x) # [B, 768, 14, 14]
        x = x.flatten(2) # [B, 768, 196]
        x = x.transpose(1, 2) # [B, 196, 768]
        return x

3.2 错误实例:位置编码忘记相加

  • 错误代码:直接将 Position Embedding 作为输入传给 Transformer 编码器。
  • 结果:丢失了图像特征,模型只能学到补丁的位置顺序,无法识别内容。
  • 调试技巧 :始终确保 x = patch_embeddings + pos_embeddings,且两者维度完全一致。

4. 项目实战:基于 ViT 的图像分类

我们将使用 timm 库(PyTorch 图像模型库)快速构建一个 ViT 并在自定义数据集上微调。

4.1 代码流程

python 复制代码
import timm
import torch

# 1. 加载预训练的 ViT-Base 模型
model = timm.create_model('vit_base_patch16_224', pretrained=True, num_classes=10)

# 2. 调试技巧:查看 Patch 数量
# 对于 224x224 图像,16x16 的 patch 大小会产生 (224/16)^2 = 196 个 patches
# 加上 1 个 CLS token,序列长度为 197

# 3. 模拟输入
img = torch.randn(1, 3, 224, 224)
output = model(img) # [1, 10]
print(f"输出形状: {output.shape}")

4.2 训练要点

  • 优化器选择 :ViT 对超参数极度敏感。AdamW 通常比带动量的 SGD 效果更好,因为它能更有效地处理 Transformer 中的权重衰减。
  • 学习率策略 :必须使用 Learning Rate Warmup。在训练前几个 Epoch 使用极小的学习率,防止 Transformer 梯度崩塌。

5. 高级使用技巧:性能优化与微调

5.1 图像尺寸的灵活性

ViT 的一个痛点是位置编码的长度是固定的。如果你训练时用 224x224,测试用 384x384 怎么办?

  • 高级技巧 :使用 2D 插值 (Bilinear Interpolation) 调整预训练的位置编码。timm 库内部已自动处理,但手动实现时需注意不要插值 CLS token 的部分。

5.2 掉点检查:梯度裁剪

Transformer 结构容易出现梯度爆炸。

python 复制代码
torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)
  • 应用建议 :在实际工作中,如果发现 Loss 突然变为 NaN,加入梯度裁剪通常能立竿见影。

6. 实际工作中的应用建议

6.1 工业部署的考量

虽然 ViT 理论性能强,但在移动端部署(如手机 NPU)上,其速度往往不如同参数量的 MobileNet。

  • 应用建议 :如果你的业务场景需要毫秒级延迟,请考虑 MobileViTSwin Transformer(利用窗口注意力降低计算量)。

6.2 实际项目避坑指南

  1. 输入分辨率:尽量保持为补丁大小(如 16)的整数倍。
  2. 数据增强:ViT 极其依赖强数据增强(Mixup, Cutmix, RandAugment)。如果你的训练只用了简单的裁剪翻转,ViT 很难超越 ResNet。

7. 总结与展望

ViT 的出现标志着视觉与语言(NLP)模型架构的统一。它告诉我们,只要数据量足够大,通用的计算模型(Transformer)可以取代精细设计的专用结构(CNN)。

AI 创作声明:本文部分内容由 AI 辅助生成,并经人工整理与验证,仅供参考学习,欢迎指出错误与不足之处。

相关推荐
Yuer20251 分钟前
为什么说在真正的合规体系里,“智能”是最不重要的指标之一。
人工智能·edca os·可控ai
一切尽在,你来2 分钟前
1.4 LangChain 1.2.7 核心架构概览
人工智能·langchain·ai编程
爱吃大芒果6 分钟前
CANN ops-nn 算子开发指南:NPU 端神经网络计算加速实战
人工智能·深度学习·神经网络
聆风吟º7 分钟前
CANN ops-nn 实战指南:异构计算场景中神经网络算子的调用、调优与扩展技巧
人工智能·深度学习·神经网络·cann
2601_9495936513 分钟前
CANN加速人脸检测推理:多尺度特征金字塔与锚框优化
人工智能
小刘的大模型笔记14 分钟前
大模型LoRA微调全实战:普通电脑落地,附避坑手册
人工智能·电脑
乾元14 分钟前
身份与访问:行为生物识别(按键习惯、移动轨迹)的 AI 建模
运维·网络·人工智能·深度学习·安全·自动化·安全架构
happyprince15 分钟前
2026年02月07日全球AI前沿动态
人工智能
啊阿狸不会拉杆15 分钟前
《机器学习导论》第 7 章-聚类
数据结构·人工智能·python·算法·机器学习·数据挖掘·聚类
Java后端的Ai之路15 分钟前
【AI大模型开发】-AI 大模型原理深度解析与 API 实战(建议收藏!!!)
人工智能·ai·科普·ai大模型·llm大模型