【推荐算法】NeuralCF:深度学习重构协同过滤的革命性突破
NeuralCF:深度学习重构协同过滤的革命性突破
- 一、算法背景知识:协同过滤的演进与局限
- 1.1 协同过滤的发展历程
- 1.2 传统矩阵分解的缺陷
- 二、算法理论/结构:NeuralCF架构设计
- 2.1 基础NeuralCF结构
- 2.2 双塔模型进阶结构
- 2.3 模型实现流程对比
- 三、模型评估:性能突破与实验验证
- 3.1 离线实验(MovieLens数据集)
- 3.2 在线A/B测试(电商场景)
- 四、应用案例:工业级落地实践
- 4.1 YouTube推荐系统
- 4.2 新闻推荐系统
- 五、面试题与论文资源
- 5.1 高频面试题
- 5.2 关键论文
- 六、详细优缺点分析
- 6.1 显著优势
- 6.2 核心挑战
- 七、相关算法演进
- 7.1 NeuralCF家族演进
- 7.2 双塔模型变种
- 7.3 与传统模型对比
- 总结:深度学习重构协同过滤的本质突破
一、算法背景知识:协同过滤的演进与局限
1.1 协同过滤的发展历程
协同过滤(Collaborative Filtering)是推荐系统的核心技术,经历了三个阶段演进:
- 基于邻域的方法(1990s):计算用户/物品相似度
UserCF: r ^ u i = r ˉ u + ∑ v ∈ N i ( u ) sim ( u , v ) ( r v i − r ˉ v ) ∑ v ∈ N i ( u ) ∣ sim ( u , v ) ∣ \text{UserCF: } \hat{r}_{ui} = \bar{r}_u + \frac{\sum_{v \in N_i(u)} \text{sim}(u,v)(r_{vi} - \bar{r}_v)}{\sum_{v \in N_i(u)} |\text{sim}(u,v)|} UserCF: r^ui=rˉu+∑v∈Ni(u)∣sim(u,v)∣∑v∈Ni(u)sim(u,v)(rvi−rˉv) - 矩阵分解模型(2006):隐语义模型(Latent Factor Model)
min p , q ∑ ( u , i ) ∈ κ ( r u i − p u T q i ) 2 + λ ( ∣ ∣ p u ∣ ∣ 2 + ∣ ∣ q i ∣ ∣ 2 ) \min_{p,q} \sum_{(u,i) \in \kappa} (r_{ui} - \mathbf{p}_u^T \mathbf{q}_i)^2 + \lambda(||\mathbf{p}_u||^2 + ||\mathbf{q}_i||^2) p,qmin(u,i)∈κ∑(rui−puTqi)2+λ(∣∣pu∣∣2+∣∣qi∣∣2)
- 深度学习时代(2017):NeuralCF突破传统点积限制
1.2 传统矩阵分解的缺陷
- 表达能力局限:点积操作 p u T q i \mathbf{p}_u^T\mathbf{q}_i puTqi本质是线性模型
- 交互信息损失:无法捕捉高阶非线性特征交互
- 冷启动问题:纯ID特征难以处理新用户/物品
💡 核心问题:如何用深度学习增强协同过滤的非线性表达能力?
二、算法理论/结构:NeuralCF架构设计
2.1 基础NeuralCF结构
NeuralCF用多层神经网络替代点积操作,实现非线性交互:
- 嵌入层:将用户ID、物品ID映射为稠密向量
e u = Embedding u ( u ) , e i = Embedding i ( i ) \mathbf{e}_u = \text{Embedding}_u(u), \quad \mathbf{e}_i = \text{Embedding}_i(i) eu=Embeddingu(u),ei=Embeddingi(i) - 交互层:拼接用户/物品向量输入MLP
z 0 = [ e u ; e i ] \mathbf{z}_0 = [\mathbf{e}_u; \mathbf{e}_i] z0=[eu;ei]
z 1 = ReLU ( W 1 z 0 + b 1 ) \mathbf{z}_1 = \text{ReLU}(\mathbf{W}_1\mathbf{z}_0 + \mathbf{b}_1) z1=ReLU(W1z0+b1)
⋯ \cdots ⋯
z L = ReLU ( W L z L − 1 + b L ) \mathbf{z}_L = \text{ReLU}(\mathbf{W}_L\mathbf{z}_{L-1} + \mathbf{b}_L) zL=ReLU(WLzL−1+bL) - 输出层:Sigmoid预测评分
y ^ u i = σ ( w T z L + b ) \hat{y}_{ui} = \sigma(\mathbf{w}^T\mathbf{z}_L + b) y^ui=σ(wTzL+b)
2.2 双塔模型进阶结构
为融入更多特征,NeuralCF发展为双塔模型,双塔模型结构:
-
用户塔:
- 输入:用户ID、画像特征、行为序列
- 结构:多层全连接网络
u = f θ u ( x u ) \mathbf{u} = f_{\theta_u}(\mathbf{x}_u) u=fθu(xu)
-
物品塔:
- 输入:物品ID、内容特征、上下文信息
- 结构:多层全连接网络
v = f θ v ( x i ) \mathbf{v} = f_{\theta_v}(\mathbf{x}_i) v=fθv(xi)
-
交互层设计:
- 点积交互: y ^ u i = σ ( u T v ) \hat{y}_{ui} = \sigma(\mathbf{u}^T\mathbf{v}) y^ui=σ(uTv)(计算高效)
- 神经网络交互: y ^ u i = MLP ( [ u ; v ] ) \hat{y}_{ui} = \text{MLP}([\mathbf{u};\mathbf{v}]) y^ui=MLP([u;v])(表达能力更强)
2.3 模型实现流程对比
组件 | NeuralCF基础版 | 双塔进阶版 |
---|---|---|
输入 | 仅用户ID+物品ID | 多模态特征 |
结构 | 单路MLP | 双路并行DNN |
交互层 | 全连接层 | 点积/浅层MLP |
输出 | Sigmoid | Sigmoid |
三、模型评估:性能突破与实验验证
3.1 离线实验(MovieLens数据集)
模型 | HR@10 | NDCG@10 | 训练时间 |
---|---|---|---|
MF | 0.681 | 0.403 | 1x |
ItemCF | 0.735 | 0.421 | 0.8x |
NeuralCF | 0.802 | 0.487 | 1.5x |
双塔NeuralCF | 0.823 | 0.512 | 2x |
3.2 在线A/B测试(电商场景)
指标 | 矩阵分解 | NeuralCF双塔 | 提升 |
---|---|---|---|
CTR | 3.21% | 3.87% | +20.6% |
转化率 | 1.05% | 1.31% | +24.8% |
平均观看时长 | 72s | 89s | +23.6% |
✅ 关键发现:双塔结构在引入多特征后,冷启动物品CTR提升达37.5%
四、应用案例:工业级落地实践
4.1 YouTube推荐系统
- 用户塔输入:
- 观看历史(50个最近视频ID)
- 搜索历史(tokenized)
- 人口统计特征(地理位置、设备)
- 物品塔输入:
- 视频ID
- 频道ID
- 视频嵌入(图像/音频特征)
- 交互方式:近似最近邻(ANN)搜索
- 服务架构:
YouTube 召回双塔模型的用户侧特征包括了用户正在观看的视频 ID、频道 ID(图中的 seed features)、该视频的观看数、被喜欢的次数,以及用户历史观看过的视频 ID 等等。物品侧的特征包括了候选视频的 ID、频道 ID、被观看次数、被喜欢次数等等。在经过了多层 ReLU 神经网络的学习之后,双塔模型最终通过 softmax 输出层连接两部分,输出最终预测分数。
看到这里,你可能会有疑问,这个双塔模型相比我们之前学过的 Embedding MLP 和 Wide&Deep 有什么优势呢?其实在实际工作中,双塔模型最重要的优势就在于它易上线、易服务。为什么这么说呢?
你注意看一下物品塔和用户塔最顶端的那层神经元,那层神经元的输出其实就是一个全新的物品 Embedding 和用户 Embedding。双塔模型结构中,物品塔的输入特征向量是 x,经过物品塔的一系列变换,生成了向量 u(x),那么这个 u(x) 就是这个物品的 Embedding 向量。同理,v(y) 是用户 y 的 Embedding 向量,这时,我们就可以把 u(x) 和 v(y) 存入特征数据库,这样一来,线上服务的时候,我们只要把 u(x) 和 v(y) 取出来,再对它们做简单的互操作层运算就可以得出最后的模型预估结果了!
所以使用双塔模型,我们不用把整个模型都部署上线,只需要预存物品塔和用户塔的输出,以及在线上实现互操作层就可以了。如果这个互操作层是点积操作,那么这个实现可以说没有任何难度,这是实际应用中非常容易落地的,也是工程师们喜闻乐见的,这也正是双塔模型在业界巨大的优势所在。
正是因为这样的优势,双塔模型被广泛地应用在 YouTube、Facebook、百度等各大公司的推荐场景中,持续发挥着它的能量。
4.2 新闻推荐系统
- 创新设计:动态用户兴趣塔
u t = GRU ( v 1 , v 2 , . . . , v t ) \mathbf{u}_t = \text{GRU}(\mathbf{v}_1, \mathbf{v}_2, ..., \mathbf{v}_t) ut=GRU(v1,v2,...,vt) - 特征工程:
- 用户侧:阅读历史、点击时间、停留时长
- 新闻侧:标题BERT嵌入、主题分类、新鲜度
- 成效:点击率提升28%,多样性指标提升35%
五、面试题与论文资源
5.1 高频面试题
-
Q:NeuralCF与传统MF的本质区别?
A:MF使用线性点积交互,NeuralCF用MLP学习非线性交互函数 -
Q:双塔模型为何线上服务高效?
A:物品向量可离线计算,线上只需实时计算用户向量+点积运算 -
Q:如何处理用户长序列行为?
A:引入RNN/Transformer塔: u = Transformer ( { v 1 , . . . , v T } ) \mathbf{u} = \text{Transformer}(\{\mathbf{v}_1,...,\mathbf{v}_T\}) u=Transformer({v1,...,vT}) -
Q:点积交互的局限性如何解决?
A:可扩展为:- 多向量表示(如MIND)
- 交叉网络(如DCN)
y ^ = MLP ( u ⊗ v ) \hat{y} = \text{MLP}(\mathbf{u} \otimes \mathbf{v}) y^=MLP(u⊗v)
5.2 关键论文
- 奠基之作:Neural Collaborative Filtering (WWW 2017)
- 双塔模型:Sampling-Bias Corrected Neural Modeling (RecSys 2019)
- 工业实践:YouTube DNN (RecSys 2016)
- 最新进展:Contrastive Learning for Sequential Recommendation (ICDE 2022)
六、详细优缺点分析
6.1 显著优势
-
表达能力跃迁:
- MLP可逼近任意连续函数(Universal Approximation Theorem)
- 相比MF的线性交互,NeuralCF的参数量提升10-100倍
-
特征融合能力:
- 支持多模态特征输入(ID/文本/图像)
- 用户塔示例架构:
-
线上服务高效:
- 物品塔预计算:节省90%线上计算
- 近似最近邻搜索(ANN)响应时间<20ms
6.2 核心挑战
-
交互信息损失(双塔结构):
- 点积操作: rank ( U V T ) ≤ min ( dim ( u ) , dim ( v ) ) \text{rank}(\mathbf{UV}^T) \leq \min(\text{dim}(\mathbf{u}),\text{dim}(\mathbf{v})) rank(UVT)≤min(dim(u),dim(v))
- 解决方案:显式交互层设计
-
负采样偏差:
- 曝光未点击样本≠真实负样本
- 改进方案:重要性加权采样
L = − ∑ ( u , i ) ∈ D w u i [ y u i log y ^ u i + ( 1 − y u i ) log ( 1 − y ^ u i ) ] \mathcal{L} = -\sum_{(u,i) \in \mathcal{D}} w_{ui} [y_{ui}\log\hat{y}_{ui} + (1-y_{ui})\log(1-\hat{y}_{ui})] L=−(u,i)∈D∑wui[yuilogy^ui+(1−yui)log(1−y^ui)]
-
动态兴趣建模:
- 静态用户向量无法捕捉兴趣漂移
- 改进:实时更新用户塔(如Google两塔系统)
七、相关算法演进
7.1 NeuralCF家族演进
模型 | 创新点 | 交互函数 | 发表年份 |
---|---|---|---|
NeuMF | GMF+MLP融合 | y ^ = σ ( h T [ p u ⊙ q i ; MLP ( p u , q i ) ] ) \hat{y} = \sigma(\mathbf{h}^T[\mathbf{p}_u\odot\mathbf{q}_i; \text{MLP}(\mathbf{p}_u,\mathbf{q}_i)]) y^=σ(hT[pu⊙qi;MLP(pu,qi)]) | 2017 |
ConvNCF | 卷积交互 | 外积矩阵+卷积核 | 2018 |
LightGCN | 图神经网络 | 邻域聚合+线性组合 | 2020 |
7.2 双塔模型变种
-
YouTube双塔:
- 特征:观看历史序列+多模态内容
- 服务:百亿级向量索引
-
MIND(阿里):
- 多兴趣提取: { u 1 , . . . , u K } = CapsuleNet ( h 1 , . . . , h T ) \{\mathbf{u}_1,...,\mathbf{u}_K\} = \text{CapsuleNet}(\mathbf{h}_1,...,\mathbf{h}_T) {u1,...,uK}=CapsuleNet(h1,...,hT)
- 动态路由机制
-
SENet双塔(腾讯):
- 特征重要性加权:
x ′ = x ⋅ MLP ( x ) \mathbf{x}' = \mathbf{x} \cdot \text{MLP}(\mathbf{x}) x′=x⋅MLP(x) - 特征压缩比:4:1
- 特征重要性加权:
7.3 与传统模型对比
总结:深度学习重构协同过滤的本质突破
NeuralCF的核心贡献在于用神经网络函数替代点积操作,实现了三大革命性突破:
-
非线性交互建模:
- MLP可学习任意复杂的用户-物品交互函数
f MLP ( p u , q i ) ≫ p u T q i f_{\text{MLP}}(\mathbf{p}_u, \mathbf{q}_i) \gg \mathbf{p}_u^T\mathbf{q}_i fMLP(pu,qi)≫puTqi
- MLP可学习任意复杂的用户-物品交互函数
-
多模态特征融合:
- 突破传统CF仅用ID的限制,支持文本/图像/行为序列
-
工业级服务范式:
- 双塔结构确立"离线计算物品塔,在线生成用户塔"的工业标准
🌟 未来方向:
- 多模态融合:CLIP-like的跨模态预训练
- 因果推断:解耦曝光偏差与真实偏好
- 可解释性:神经交互的可视化分析
NeuralCF不仅是一个模型,更开创了"深度学习重构经典算法"的新范式,其思想被广泛应用于搜索、广告、社交网络等领域,成为推荐系统发展的里程碑。
相关文章:

【推荐算法】NeuralCF:深度学习重构协同过滤的革命性突破
NeuralCF:深度学习重构协同过滤的革命性突破 一、算法背景知识:协同过滤的演进与局限1.1 协同过滤的发展历程1.2 传统矩阵分解的缺陷 二、算法理论/结构:NeuralCF架构设计2.1 基础NeuralCF结构2.2 双塔模型进阶结构2.3 模型实现流程对比 三、…...

负载均衡相关基本概念
负载均衡在系统架构设计中至关重要,其核心目标是合理分配负载,提升系统整体性能和可靠性。本文简要介绍了负载均衡的基本概念,包括四层和七层负载均衡、负载均衡的使用场景和实现方式、负载均衡的常用算法以及一些配置相关知识。 1、负载均衡…...
服务器中日志分析的作用都有哪些
服务器日志是用来检测和排查可疑行为的主要工具,运维团队可以通过分析和解读日志文件,发现服务器中潜在的网络安全威胁或异常活动,下面,就让小编和大家一起来了解一下服务器中日志分析的作用都有什么吧! 对于服务器中的…...
【React】useId
在 React 中,useId 是 React 18 引入的一个 Hook,用于生成一个在组件生命周期中保持稳定的唯一 ID。它主要用于: 无障碍(accessibility)场景,比如表单控件需要一个 id 和 label 的 htmlFor 属性配对。服务…...
【51单片机】0. 基础软件安装
最近心血来潮对单片机感兴趣,想着以后工作不景气了就跳槽,兴趣使然为以后做打算吧,开始跟着江科大学习单片机 1. 需要安装的软件说明 使用到的软件包括: Keli:写嵌入式代码的 stc-isp:烧录&下载代码…...

集成电路设计:从概念到实现的完整解析优雅草卓伊凡
集成电路设计:从概念到实现的完整解析优雅草卓伊凡 一、集成电路设计:芯片制造的”灵魂蓝图” 1.1 什么是集成电路设计? 集成电路(IC)设计是指通过电子设计自动化(EDA)工具,将数百…...

动态规划之网格图模型(二)
文章目录 动态规划之网格图模型(二)LeetCode 931. 下降路径最小和思路Golang 代码 LeetCode 2684. 矩阵中移动的最大次数思路Golang 代码 LeetCode 2304. 网格中的最小路径代价思路Golang 代码 LeetCode 1289. 下降路径最小和 II思路Golang 代码 LeetCod…...
uniapp 集成腾讯云 IM 消息搜索功能
UniApp 集成腾讯云 IM 消息搜索功能实战指南 一、功能实现原理 腾讯云 IM 通过 消息漫游 服务端搜索接口 实现消息检索,核心机制如下: 数据存储:消息默认存储7天(可扩展至30天)索引构建:基于消息内容自…...

robot_lab——rsl_rl的train.py整体逻辑
文章目录 Go2机器人训练流程详细分析概述1. 训练启动流程1.1 命令行参数解析RSL-RL相关参数组Isaac Sim应用启动参数组 1.2 RL配置1.3 Isaac Sim启动 2. 环境配置加载2.1 Hydra配置系统 3. 环境创建与初始化3.1 Gym环境创建3.2 Manager系统初始化3.2.1 ObservationManager3.2.2…...
AI推荐系统演进史:从协同过滤到图神经网络与强化学习的融合
每一次滑动手机屏幕,电商平台向你推荐心仪商品的背后,是超过百亿量级的浮点运算。从早期的“猜你喜欢”到如今的“比你更懂你”,商品推荐引擎已悄然完成从简单规则到深度智能的技术跃迁。 一、协同过滤:推荐系统的基石与演进 协同…...
Java-IO流之压缩与解压缩流详解
Java-IO流之压缩与解压缩流详解 一、压缩与解压缩概述1.1 基本概念1.2 Java中的压缩类库1.3 核心类与接口 二、ZIP压缩与解压缩2.1 ZIP格式简介2.2 使用ZipOutputStream创建ZIP文件2.3 使用ZipInputStream读取ZIP文件 三、GZIP压缩与解压缩3.1 GZIP格式简介3.2 使用GZIPOutputS…...

.NET 原生驾驭 AI 新基建实战系列(三):Chroma ── 轻松构建智能应用的向量数据库
在人工智能AI和机器学习ML迅猛发展的今天,数据的存储和检索需求发生了巨大变化。传统的数据库擅长处理结构化数据,但在面对高维向量数据时往往力不从心。向量数据库作为一种新兴技术,专为AI应用设计,能够高效地存储和查询高维向量…...
有声书画本
有声书画本服务标准 有声喵连接 一、基础服务(5r/w字) 核心: 基础删(快捷键AltD)调,优化播讲流畅度 执行: 删除冗余旁白 删除角色动作/心理的重复描述(例:小明冷笑道…...
StarRocks与Apache Iceberg:构建高效湖仓一体的实时分析平台
## 引言:数据湖的挑战与演进 在数据驱动的时代,企业数据湖需要同时满足海量存储、高性能查询、多引擎协作和实时更新等复杂需求。传统基于 Hive 的数据湖方案面临元数据管理低效、缺乏 ACID 事务支持、查询性能瓶颈等问题。在此背景下,**Sta…...
WebRTC 与 WebSocket 的关联关系
WebRTC(Web Real-Time Communication)与 WebSocket 作为重要技术,被广泛应用于各类实时交互场景。虽然它们在功能和特性上存在明显差异,但在实际应用中也有着紧密的关联,共同为用户提供流畅的实时交互体验。 一、WebR…...

8.RV1126-OPENCV 视频中添加LOGO
一.视频中添加 LOGO 图像大体流程 首先初始化VI,VENC模块并使能,然后创建两个线程:1.把LOGO灰度化,然后获取VI原始数据,其次把VI数据Mat化并创建一个感兴趣区域,最后把LOGO放感兴趣区域里并把数据发送给VENC。2.专门获…...

API管理是什么?API自动化测试怎么搭建?
目录 一、API管理是什么 (一)API管理的定义 (二)API管理的重要性 二、API管理的主要内容 (一)API设计 1. 遵循标准规范 2. 考虑可扩展性 3. 保证接口的易用性 (二)API开发 …...
Next.js+prisma开发一
1.初始化Next.js项目 #按版本安装 npx create-next-app13.4.5 如果最新版本 执行:npx create-next-applatest2. 安装Prima和客户端 npm install prisma --save-dev npm install prisma/client3.初始化Prisma,以SQLit举例 # 初始化 Prisma 并配置 SQLi…...

GIC v3 v4 虚拟化架构
ARMV8-A架构中包含了对虚拟化的支持。为了与架构保持匹配,GICV3也对虚拟化做了支持。新增了以下特性: 对CPU interface的硬件虚拟化虚拟中断maintenance 中断:用于通知监管程序(例如hypervisor)一些特定的虚拟机事件 …...

2025远离Deno和Fresh
原创作者:庄晓立(LIIGO) 原创时间:2025年6月6日 原创链接:https://blog.csdn.net/liigo/article/details/148479884 版权所有,转载请注明出处! 相识 Deno,是Nodejs原开发者Ryan Da…...
相机camera开发之差异对比核查一:测试机和对比机的硬件配置差异对比
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、背景 二、:Camera硬件配置差异 2.1:硬件配置差异核查项 2.2 :核查方式 2.3 :高通camx平台核查 2.4 :MTK平台核查...

Flask+LayUI开发手记(七):头像的上传及突破static目录限制
看了看,上篇开发手记是去年8月份写的,到现在差2个月整一年了。停更这么长时间,第一个原因是中间帮朋友忙一个活,那个技术架构是用springboot的,虽然前端也用layUI,但和Flask-python完全不搭界,所…...
uv管理spaCy语言模型
本文记录如何在使用uv管理python项目dependencies时,把spaCy的模型也纳入其中. spaCy 一、spaCy简介 spaCy是一个开源的自然语言处理(NLP)库,它主要用于处理文本数据。它支持多种语言,包括英语、中文等。它是由Expl…...

MiniExcel模板填充Excel导出
目录 1.官方文档 2. 把要导出的数据new一个匿名对象 3.导出 4.注意事项 5.模板制作 6.结果 1.官方文档 https://gitee.com/dotnetchina/MiniExcel/#%E6%A8%A1%E6%9D%BF%E5%A1%AB%E5%85%85-excel // 1. By POCO var value new {Name "Jack",CreateDate n…...
NoSQL之redis哨兵
一、哨兵的核心功能 监控(Monitoring) 持续检查主节点和从节点的运行状态(是否存活、延迟等)。 自动故障转移(Automatic Failover) 当主节点不可用时,自动选举一个从节点升级为主节点。 更新…...

MCP协议重构AI Agent生态:万能插槽如何终结工具孤岛?
前言 在人工智能技术快速发展的2025年,MCP(Model Context Protocol,模型上下文协议)正逐渐成为AI Agent生态系统的关键基础设施。这一由Anthropic主导的开放协议,旨在解决AI模型与外部工具和数据源之间的连接难题,被业界形象地称…...

阿里云事件总线 EventBridge 正式商业化,构建智能化时代的企业级云上事件枢纽
作者:肯梦、稚柳 产品演进历程:在技术浪潮中的成长之路 早在 2018 年,Gartner 评估报告便将事件驱动模型(Event-Driven Model)列为十大战略技术趋势之一,指出事件驱动架构(EDA,Eve…...

CentOS8.3+Kubernetes1.32.5+Docker28.2.2高可用集群二进制部署
一、准备工作 1.1 主机列表 HostnameHost IPDocker IPRolek8s31.vm.com192.168.26.3110.26.31.1/24master&worker、etcd、dockerk8s32.vm.com192.168.26.3210.26.32.1/24master&worker、etcd、dockerk8s33.vm.com192.168.26.3310.26.33.1/24master&worker、etcd、…...

学习日记-day23-6.6
完成目标: 知识点: 1.IO流_转换流使用 ## 转换流_InputStreamReader1.字节流读取中文在编码一致的情况,也不要边读边看,因为如果字节读不准,读不全,输出的内容有可能会出现乱码 2.所以,我们学了字符流,字符流读取文本文档中的内容如果编码一致,就不会出…...

Pytorch安装后 如何快速查看经典的网络模型.py文件(例如Alexnet,VGG)(已解决)
当你用conda 安装好虚拟环境后, 找到你的Anaconda 的安装位置。 我的在D盘下; 然后 从Anaconda3文件夹开始:一级一级的查看,一直到models Anaconda3\envs\openmmlab\Lib\site-packages\torchvision\models 在models下面&#x…...