1.PL/SQL cursorç¨äºFOR LOOPä¹åè¿å¯ä»¥ç¨fetchå
2.(三十八)通俗易懂理解——MXNet如何生成.lst文件和.rec文件
3.制作MXNET数据集
4.序列化推荐中的叮咚咚代GRU与Transformer源码解析之一
PL/SQL cursorç¨äºFOR LOOPä¹åè¿å¯ä»¥ç¨fetchå
ä½ åªä¿®æ¹è¿ç¹ç¹æ¯ä¸å¤çï¼è¿è¦å é¤æFETCH,FOR游æ ä¸ä¸FETCHé å使ç¨ï¼ææè§ä½ 纯粹æ¯å¨ä¹±å
declare
cursor dept_cur is
select deptno, dname from dept where deptno < ;
cursor dept_cur2(pno number) is
select ename, job, hiredate, sal
from emp
where empno <
and deptno = pno;
begin
FOR dept_rec IN dept_cur LOOP
FOR dept_rec2 IN dept_cur2(dept_rec.deptno) LOOP
dbms_output.put_line(dept_rec.deptno || ' ' || dept_rec2.ename || ' ' ||
dept_rec2.job || ' ' ||
to_char(dept_rec2.hiredate, 'YYYY-MM-DD') || ' ' ||
dept_rec2.sal);
END LOOP;
END LOOP;
END;
è¿ä¸ªæ¯æç代ç
(三十八)通俗易懂理解——MXNet如何生成.lst文件和.rec文件
在MXNet中进行图像项目的处理时,图像读取方法有两路:一是码叮码通过.rec格式,虽然文件稳定可移植,叮咚咚代但文件较大占用空间;二是码叮码利用.lst文件与图像结合,lst文件记录路径和标签,叮咚咚代便于数据管理,码叮码猎头人才源码但对图像格式要求高,叮咚咚代且对文件路径的码叮码完整性敏感。对于分类和目标检测,叮咚咚代流程略有差异。码叮码
首先,叮咚咚代从文件结构开始,码叮码需在根目录下建立文件夹,叮咚咚代如im2rec源码、码叮码html制作网页源码空的叮咚咚代mxrec存放打包文件,以及hot_dog、not_hot_dog等子文件夹。针对分类任务,执行im2rec.py工具,通过参数如`--list`生成lst文件,`--recursive`遍历子目录,`--train_ratio`设置训练与测试的比例,以及指定文件前缀和文件夹路径。打包完成后,就生成了lst和相应的rec、idx文件。
目标检测略有不同,沪指指标源码不能直接使用im2rec,如VOC数据集,其xml文件包含了的标注信息。制作lst文件时,需要从xml中提取锚框坐标、id、名称和尺寸等信息,以'\t'分隔。然后,遵循分类的打包流程,将这些信息与图像一起打包成rec文件。
总结来说,MXNet通过lst和rec文件的用andriod源码阅读配合,提供了灵活和稳定的数据管理方式,但需要注意文件格式的兼容性和路径完整性,具体操作根据任务类型(分类或目标检测)进行适当的调整。
制作MXNET数据集
在MXNet框架中,读取图像主要采用两种方法:一种是处理.rec格式文件,类似于Caffe框架中的LMDB,优点在于文件稳定,移植性强,但在空间占用和数据增删灵活性上存在不足。另一种方式是结合.lst文件与图像,首先在生成.rec文件过程中会同步创建.lst文件,即图像路径与标签对应列表,以此灵活控制训练集与测试集变化,哪个代码是源码但对图像格式要求严格,且在图像路径变更或删除时可能无法找到对应图像。MXNet提供im2rec.py文件来生成.lst和.rec文件,源码可从官方GitHub下载,具体参数解释详尽,使用时只需指定.lst文件位置、图像文件夹及数据前缀。
使用im2rec.py文件生成.lst和.rec文件的步骤如下:
1. 首先,使用命令行运行im2rec.py,参数包括输出.lst文件位置、文件夹路径和数据前缀,例如:python im2rec.py --list /home/mark7/Downloads/data /home/mark7/Downloads/test_images。这将生成对应.lst文件,格式为:路径与标签的对应列表。
2. 其次,使用已生成的.lst文件和文件夹路径,运行另一条命令生成.rec文件,如:python im2rec.py /home/mark7/Downloads/data /home/mark7/Downloads/test_images,这将完成.rec文件的生成。
在自定义数据集时,需自行制作.lst文件。一种常用工具是labelme,其生成的标签文件可通过Python的json处理模块读取,获取标注数据。MXNet要求lst文件格式固定,需参照官方文档理解具体意义。在处理标注数据后,可自动生成lst文件,如使用python处理后的json文件内容制作lst文件,再使用im2rec.py生成.rec文件。最终,通过调用MXNet函数,即可利用自定义的rec、lst和inx文件进行模型训练。
序列化推荐中的GRU与Transformer源码解析之一
GRU4Rec源码(TF版本):github.com/Songweiping/...
Transformer源码:github.com/kang/SASR...
序列化推荐领域中,GRU4Rec成功地将循环神经网络(NLP和时序预测常用)应用至推荐领域,此模型取得了良好效果。紧随其后的是"SASR",基于注意力机制的自适应序列推荐模型,实验表明其性能超越了GRU4Rec。
两篇论文的作者均在源码公开阶段,为研究者提供参考。我们深入剖析源码,后续系列文章将比较GRU4Rec与SASR的差异、联系与优缺点。
GRU4Rec模型结构简洁,采用门限循环神经网络,Embedding层处理item_id的one_hot编码,降低维度,便于优化。
并行化训练数据集优化了模型训练速度,构建了training_batch,便于使用GPU加速矩阵运算。
负采样技术提高了训练频率,利用同一时刻不同session中的item作为负样本。
模型设计了贝叶斯排序和TOP1等pairwise方法计算排序损失,认为pairwise结果优于pointwise。
实验数据集包括RSC和私有VIDEO集,结果表明GRU4Rec模型性能优秀,测试集评价指标包括召回率(recall)和倒序排名得分(mrr)。
深入分析模型的Tensorflow版本代码,主要从main.py和model.py文件开始,重点解析模型定义、损失函数、GRU4Rec核心代码、数据集初始化、模型训练与预测以及评估函数。
GRU4Rec的代码分析暂告一段落,后续将详细梳理SASR代码,目标是通过三篇文章全面探讨两个模型的细节。感谢关注。