RecBole小白入门系列博客(四)——Sequential类模型运行流程

RecBole中Sequential类模型运行流程
本博客基于RecBole v.0.2.0版本,介绍Sequential类模型运行流程。包括选定模型,如GRU4Rec;设置模型超参数,推荐用自定义配置文件;选定数据集,介绍其基本格式;设置数据集、训练、评测参数;总结参数设置后运行模型,还提及调参及特殊模型设置问题。

注意:本系列基于RecBole v.0.2.0 版本!
传送门
RecBole小白入门系列博客(一)——快速安装和简单上手
RecBole小白入门系列博客(二)——General类模型运行流程
RecBole小白入门系列博客(三)——Context类模型运行流程

写在前面

  1. 这次的内容和General类和Context模型运行流程差不多,我会特别提一下Sequential类模型不一样和需要注意的地方。
  2. 由于模型的完整运行流程会牵扯到很多部分,从数据到参数,所以这里将简略的举出例子,让大家可以大致独立完成模型的运行。关于一些更加具体和细微的部分,我将在后面单独写博客为大家介绍。

选定模型

RecBole中共有17个Sequential类模型可供使用,模型列表如下:

关于模型的具体信息可以查看上面的链接,大家选用需要的模型即可。我们以模型GRU4Rec为例。

设置模型超参数

每个模型的超参数都不一致,大家可以从上面的链接中查看自己所需模型的超参数有哪些。在RecBole中每个模型都有默认的参数,因此如果是想简单跑一跑就暂时不动。
模型默认参数在源码目录RecBole/recbole/properties/model 中,各位感兴趣在小伙伴可以在里面查看默认参数值。
那么想调参的同学怎么办呢?读过RecBole小白入门系列博客(一)——快速安装和简单上手的朋友可能知道,在RecBole中调整参数有好几种方法,这里我推荐使用自定义配置文件
RecBole的配置文件格式均使用.yaml文件,十分简洁明了,大致的形式如下:

accum: "stack"
gcn_output_dim: 500
embedding_size: 64
dropout_prob: 0.3
sparse_feature: True
class_num: 2
num_basis_functions: 2

参数名称: 参数值这样的样式
参数值可以是字典嵌套,也可以是列表等,就像这样

load_col:
  inter: [user_id, business_id,
### Sequential模型工作原理 #### 一、Sequential模型概述 Sequential模型是一种线性堆叠的模型结构,在这种结构下,各个层按照顺序依次排列并连接。每一层接收前一层的数据作为输入,并将其处理后的数据传递给下一层[^3]。 #### 二、核心组件及其功能 - **卷积层**:用于提取图像特征,通过应用多个滤波器来检测不同型的局部模式。 ```python model.add(Conv2D(64, (3, 3), activation='relu')) ``` - **最大池化层**:减少空间维度的同时保留最重要的信息,有助于降低过拟合风险。 ```python model.add(MaxPooling2D(pool_size=(2, 2))) ``` - **全连接层**:通常位于网络末端,负责将前面各层抽取出来的高级抽象特征映射到别标签上。 ```python model.add(Dense(256, activation='relu')) ``` - **Dropout层**:随机丢弃一定比例的神经元,防止过度依赖某些特定节点,从而提高泛化能力。 ```python model.add(Dropout(0.5)) ``` - **Flatten层**:将多维张量转换成一维向量形式以便后续处理。 ```python model.add(Flatten()) ``` #### 三、构建过程详解 当使用`Sequential()`初始化对象之后,就可以通过`.add()`方法逐个加入所需的层。每增加一个新的层都会自动与之前的层建立联系,形成完整的计算图谱。完成架构设计后还需要指定损失函数、优化算法等参数来进行编译操作,最后才能执行实际的训练任务[^2]。 #### 流程图表示 以下是基于上述描述绘制的简化版Sequential模型工作流程: ```mermaid graph TD; A[开始] --> B{加载数据}; B --> C[定义模型]; C --> D[添加Conv2D层]; D --> E[添加MaxPooling2D层]; E --> F[重复添加更多层...]; F --> G[添加Flatten层]; G --> H[添加Dense层]; H --> I[添加Dropout层]; I --> J[编译模型]; J --> K[训练模型]; K --> L[评估性能]; L --> M[结束]; ``` 此图表展示了从准备阶段直到最终测试整个过程中涉及的主要步骤,其中包含了典型Sequential模型内部运作的关键环节。
评论 18
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值