【工作周报】

学习内容:

对MSRVTT数据集特征进行拼接


学习时间:

  • 2.27 ~ 3.4

学习笔记:

继上周工作对MSRVTT数据集的C3D特征、inceptionresnet特征以及object特征进行转换后,利用强化学习模型进行训练,解决了数据加载的问题,但在后续进行矩阵拼接时又出现了新的问题:

问题1.矩阵相乘问题(已解决)

根据报错信息分析原因出现在执行embed操作时,相乘的两个矩阵规模不符合运算规则,矩阵A 1480 × 2048,矩阵B 4096 × 512,查看项目的config文件发现MSRVTT数据集和activitynet数据集的默认dimension不同,前者是2048,后者是4096,因此出现这种错误的原因就是在加载数据时所加载的矩阵规模2048,但在config文件中设定的默认值是4096,因此通过更改config文件解决了这个问题。
在这里插入图片描述

问题2. 多种特征拼接问题(未解决)

在对MSRVTT数据集预处理后,得到了三种特征对应的npy文件集,尝试运行模型后发现在加载完三种特征后,进行拼接操作时存在着dimension不一致的问题,这个问题涉及到对特征向量的裁剪或填充操作,还需要再深入研究。
在这里插入图片描述
具体报错信息如下:

ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 69 and the array at index 2 has size 60

这是因为数据集的C3D特征、inceptionresnet特征以及object特征矩阵加载完毕后,各自矩阵的shape行或列不满足拼接条件。

 ft = np.concatenate(ft, axis=-1)  # fixme 拼接数据有问题

而在项目HMN中,也是采用的三种特征拼接,经过分析发现HMN存在数据预处理部分,对三种特征向量进行了裁剪、填充操作。为了暂时避免这个问题,只选择C3D特征作为输入,暂时不考虑inceptionresnet特征以及object特征。

总结


数据的预处理部分对于模型来说十分重要,在对MSRVTT数据集进行处理的过程其实就是数据预处理的过程,这涉及到多种数据文件的生成以及对特征向量的操作,这类操作的单位是矩阵级别的,而不同的裁剪填充策略也会对特征向量产生不同的影响,目前也在通过不断的调试代码寻找合适的解决办法,能够做到不损失视频原有的特征信息,也能保证各个特征的维度保持一致,最后的优化方向再考虑模型的训练速度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值