好吧,在找到合适的地方之前,我在主堆栈里发布了同样的问题,对不起。
我的一个朋友正在用100多个视频作为他的神经网络的样本。每段视频持续超过几分钟,每秒约24帧。其目的是利用深度学习来检测所有样本的运动。
对他来说,问题在于他所处理的数据的数量。训练部分需要/消耗太多的时间。我不是数据准备方面的专家,但我想也许他可以把所有的帧转换成数据帧,从单色图像(全黑/白)中清除它们,把它们变成灰色而不是完全的rgb,然后压缩它们,但是,我不确定这是否足够。
你认为减少训练样本的方法更好吗?
发布于 2020-04-23 15:29:39
cv2.resize()cv2.imencode()uint8,但深度学习框架默认使用float32。您可以尝试float16或混合精度。使用JPEG压缩已经被证明是相当好的减少内存和最小的性能损失。看一下本研究。
你也可以降低帧速率,比如说10 FPS。实际值可以根据运动物体的预期速度来计算,->,你真的需要24个FPS来完成任务吗?
否则,您正在使用的硬件将决定随后要采取的步骤。内存、操作数、推理速度等将改变优化过程的方式。
您提到了"dataframe",所以我只想指出,使用Pandas来保存原始图像数据,虽然看起来很简单,但是由于所涉及的数据点(像素)的数量,以及Pandas Dataframes本质上是带注释的NumPy数组这一事实--注释占用了很大的空间,所以效率很低。最好是加载到纯numpy数组中,并使用OpenCV来处理从RGB生成灰度(黑白)图像、调整大小、标准化像素值等等。
https://datascience.stackexchange.com/questions/72865
复制相似问题