YOLOV7:OSError: [WinError 1455] 页面文件太小,无法完成操作的 最终解决方案

目录

1.问题描述:

 2.现有的解决方案

(1)重启电脑(试过了,但是没用)

(2)重启pycharm(成本很低,可以试一下,但是依然没用)

(3)最火热的一种说法是设置num_work=0(修改需谨慎)

3.问题分析

4.解决的策略

4.总结 


1.问题描述:

大家在用pytorch框架使用YOLOv7进行深度学习的时候可能经常遇见这种问题:

OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading "D:\ProgramData\Anaconda3\envs\yolov7\lib\site-packages\torch\lib\cudnn_adv_infer64_8.dll" or one of its dependencies.

如图这种情况:

 2.现有的解决方案

(1)重启电脑(试过了,但是没用)

        很多博主谈到是长时间运行自己的电脑导致电脑内存被无关软件占用,所以建议重启电脑,但是重启之后发现仍然有是这问题

        所以这种方案并不能解决问题

(2)重启pycharm(成本很低,可以试一下,但是依然没用)

        因为pycharm长时间运行会占用大量的内存/显存,所以重启一下还是对内存这类的清除还是有帮助的。

        但是对于这种深度学习的模型来说,这种清理内存/显存是“杯水车薪”,完全不够,所以这个方案可以在模型小的时候尝试一下。

        对于如下图这种比较大的模型还是不太行的:

         所以,对于YOLO训练的模型来说,这个方案并不可行

(3)最火热的一种说法是设置num_work=0(修改需谨慎)

        网上对于这个的教程也有,但是大多数博主只说了有这个操作,但是对小白来说并不友好,下面给大家介绍一下,怎么在集成环境修改num_work的参数:

        1)找到环境下面的train.py

        2)  拖到中间找到如下图所示的workers,把后面的default的值改成0

        但是吧,可以看见,这个方法改动的是dataloader,改动这个地方需要谨慎,这个涉及到你的整体代码框架,所以我果断还是弃用了这个方法(1.改了还是失败了;2.哪怕以后遇见能改这里,但是这是治标不治本的一个办法),这个方法只能在这里解决这个问题,如果在这个位置改动之后,那么很有可能导致后续产生的一些列的问题,所以不是很推荐

        这个方法最终也没有解决问题

3.问题分析

        回到这个问题所在,说的是页面太小是吧,那就是默认内存不够了,那就直接解决这个问题

OSError: [WinError 1455] 页面文件太小,无法完成操作。

        就不要搞一些奇奇怪怪的东西了,简单粗暴,一劳永逸。

4.解决的策略

(1)找到你的环境安装的磁盘,博主本人用到是anaconda的虚拟环境进行管理相关的编译环境,深度学习也推荐使用虚拟环境,方便切换,关于如何使用和管理虚拟环境,可以参考我的另一篇基础干货文章:

anaconda虚拟环境的创建、删除与查看_青春可短暂了!的博客-CSDN博客

        我的python环境是放在D盘的:

 (2)在“我的电脑”点击鼠标右键,打开“属性”

(3)点击高级系统设置

 (4)点击“设置”

(5)找到“高级”

(6)点击“更改”

 (7)分配“虚拟内存”

从上到下,依次按照我的框框步骤走

(这里需要重启电脑才能生效)

至此,重启电脑之后,就可以直接去运行模型去了!

(8)成功解决问题,并且取得良好效果 

4.总结 

         使用这个方法之后,可以使用你硬盘的存储空间分配为内存空间,所以这里大家就看见了一个高性能的硬盘固态对于深度学习的重要性了吧,这样子以后,你分配出去的存储空间将作为内存参与深度学习,系统暂时不能将其使用为普通存储空间,如果需要还原就按照刚刚步骤退回去,点击这个设置最上面的“自动管理所有分页器的大小”,下次遇见这个问题的时候可以直接点击,系统管理的大小即可一步到位,也不需要重启电脑,这个方法可谓一劳永逸。

        如果我的方法解决了您的问题,可以给我点个赞,加个关注一起努力!!

### 调整 YOLOv8 页面文件大小的方法 对于基于 PySide6 的 GUI 应用程序,调整特定页面或界面组件的尺寸可以通过多种方式实现。为了改变YOLOv8相关页面文件的显示尺寸,可以考虑修改布局管理器中的参数或是直接设定QWidget对象的几何属性。 #### 使用 `setGeometry` 方法设置固定尺寸 如果目标是为某个具体的窗口部件(widget),比如用于展示YOLOv8相关内容的区域指定固定的宽度和高度,则可以直接调用该控件实例上的`setGeometry(x, y, width, height)`函数来完成操作[^1]: ```python yolov8_widget.setGeometry(0, 0, new_width, new_height) ``` 这里假设有一个名为`yolov8_widget`的对象代表了要调整大小的部分;其中`(new_width, new_height)`即为目标宽高值。 #### 动态适应内容变化 为了让页面能够更加灵活地响应内部元素的变化,在设计之初就应该考虑到这一点,并采用合适的布局策略。例如,利用QVBoxLayout/QHBoxLayout等容器类自动排列子项的同时保持良好的视觉效果[^2]: ```python layout = QVBoxLayout() layout.addWidget(your_yolov8_component) # 添加YOLOv8相关的组件到布局中 main_window.setLayout(layout) # 设置最小/最大尺寸约束以控制整体范围 main_window.setMinimumSize(minimum_width, minimum_height) main_window.setMaximumSize(maximum_width, maximum_height) ``` 上述代码片段展示了如何通过设置主窗口的最大与最小尺寸来间接影响其内含页面的实际呈现面积。 #### CSS 样式表自定义 除了编程接口外,还可以借助于之前提到过的CSS样式来进行更细致入微的设计调节。这允许开发者仅需更改少量代码就能快速预览不同风格下的表现形式: ```css /* 定义在 .qss 文件里 */ .yolov8-page { min-width: 800px; max-width: 1920px; min-height: 600px; max-height: 1080px; } ``` 最后一步就是确保这些样式被正确加载并应用到了对应的界面上。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值