今天来说个错误,看下面:
|
1 2 3 4 5 6 7 8 |
(detect_mcj) 840 3 2160 3840 Traceback (most recent call last): File "CNN.py", line 186, in <module> current_data = dataset[i] File "CNN.py", line 57, in __getitem__ transformed_video = torch.zeros([video_length, video_channel, video_height, video_width]) RuntimeError: [enforce fail at CPUAllocator.cpp:64] . DefaultCPUAllocator: can't allocate memory: you tried to allocate 83607552000 bytes. Error code 12 (Cannot allocate memory) |
这句代码是新建一个视频帧大小的数据块,目前电脑内存是32G,之前处理1080P或者720P视频的时候一直没问题,最近处理的视频比较大,报了:
RuntimeError: [enforce fail at CPUAllocator.cpp:64] . DefaultCPUAllocator: can't allocate memory: you tried to allocate 83607552000 bytes. Error code 12 (Cannot allocate memory)
这个错很明显就是内存不足的问题,我们来看一下内存占用的计算方法83607552000=840*3*2160*3840*4
这里乘以4是因为一个字节占用4个二进制位。所以,解决上述错误的方法有两个,一是增大内存,二是缩小视频帧的尺寸。
再说下二吧,缩小视频帧的尺寸也有很多种方法,这里我选择边缩小边计算,推荐个包:moviepy
一个简单的用法是:
|
1 2 3 4 |
import moviepy.editor as mp clip = mp.VideoFileClip("movie.mp4") clip_resized = clip.resize(height=1080) # 宽为1080,并保持比例不变 clip_resized.write_videofile("movie_resized.mp4") |

马春杰杰



最新评论
站长您好,亚马逊云咨询推广资源,望建立联系,可邮件,谢谢。
换友情链接吗?
看你的站做的挺不错的
恭喜!!太强了,硕博连读啊
雁过留毛,人过留名。
看不懂但大受震撼
每天都在战争,希望2026和平.
ZeroTier 看过多篇帖子,目前群辉、飞牛os、win11 、安卓、ubuntu ≥18.04 顺利通过,这篇相对于简单 实用、特来感谢 🙄