【问题标题】:MATLAB Error: Maximum Variable Size Allowed on the Device Is ExceededMATLAB 错误:超出设备上允许的最大变量大小
【发布时间】:2018-04-05 00:04:24
【问题描述】:

我正在尝试使用 3 个类和每个类中大约 500 个图像来训练一个 CNN 模型。图像大小为 [965*995*1]。当我运行代码时,我收到一条错误消息,提示 “超出了设备上允许的最大变量大小。”

模型给出错误“设备内存不足。要查看有关 GPU上的可用内存的更多详细信息,请使用'gpuDevice()'。如果问题仍然存在,当我将图像大小调整为 [128 *128] 时, 通过调用“gpuDevice(1)”重置 GPU。

当我将图像大小调整为 [64*64] 时,它运行良好。

我该如何解决这个问题?

注意:系统有 16GB 的 RAM。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    首先,您可能受限于 GPU 的 RAM 大小,而不是 CPU。

    因此,如果您需要处理大型图像,请将 ConvNet 设置为在 CPU 而不是 GPU 上运行。

    通常,在最新的 MATLAB 版本中,MathWorks 添加了将变量大小限制定义为 RAM 函数的选项。
    您可以通过以下方式访问它:

    首选项 -> 工作区

    您将在那里:

    您可以选择根据 RAM 限制变量的大小。
    在您的情况下,将其设置为 100% 意味着最大 (CPU) 变量为 16GB。
    如果您取消选中限制,MATLAB 将使用页面文件来处理更大尺寸的变量。
    但不建议这样做,因为您会受到硬盘速度的限制。

    您可以在Resolve "Out of Memory" Errors阅读更多内容。

    【讨论】:

    • 数组大小限制已达到 100%。只有在 Matlab 2017a 中才能在 CPU 而不是 GPU 上运行训练网络,对吧?或者你知道其他方法吗?
    • 缩放比例与您计算机中的 RAM(如您所指的 16 GB)相关。然而,对于 GPU 阵列,您仅限于 GPU 的 RAM(您没有指定您拥有哪一个)。我认为上面的屏幕可以追溯到 R2015a。您有 4 个选项: 1. 使用 CPU 并消除限制(我认为是错误的选择)。 2. 在 CPU 上工作并限制网络参数以匹配您的内存限制。 3. 在 GPU 上工作并将网络限制为 GPU 内存。 4. 升级硬件以满足您的网络需求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 2016-11-12
    • 1970-01-01
    • 2014-09-02
    • 2023-04-07
    • 1970-01-01
    • 2014-04-17
    相关资源
    最近更新 更多