使用深度学习检测对象超过15小时后准确率为0%

2212
12
06-25-2021 06:16
标签(2)
HKrell
通过
新贡献者II

早上好,

我正在尝试使用深度学习工具来检测NAIP图像中的太阳能电池板。我使用的是ArcGIS Pro 2.7,我选择了一个小的邮政编码区域来检测对象。然而,该工具已经运行了超过15个小时,完成率仍然为0%。我的CPU几乎是100%,所以这个工具肯定在运行。还有谁遇到过这个问题或者知道解决办法吗?请帮助如果你可以!

Capture.PNG

0荣誉
12个回复
Tim_McGinnes
通过
临时贡献者III

即使您已经选择了邮政编码,该工具也不知道-它正在尝试处理整个图像。你有两个选项:裁剪出你想要处理的区域并在工具中使用,或者使用环境选项卡中的范围设置。最简单的选择可能是放大到所需区域并选择当前显示范围。

无论如何,使用CPU进行深度学习将会非常缓慢。你有专用显卡(最好是NVidia)吗?如果是,在环境选项卡中,您应该将处理器类型设置为GPU。您可能还必须根据图形卡上可用的内存量减少Batch Size参数(可能从4开始,如果出现内存不足错误就减少)。

tim_mcginnes_1 - 1624629855199. - png

tim_mcginnes_0 - 1624629834311. - png

MartyRyan
通过
新贡献者III

蒂姆,我有一个类似的有关CPU/GPU性能的问题。我在ArcGIS Pro 2.8中运行深度学习工具的训练模型,同时将GPU设置为处理器类型,我的任务管理器显示GPU几乎没有活动,CPU和以太网中有大量活动。(我使用远程桌面连接到一台带有NVIDIA显卡的电脑(我们专门使用NVIDIA显卡)。我在Epoch 1(0%)运行了3个小时,任务管理器中的活动告诉我发生了一些事情,看起来我很少使用带有NVIDIA卡的GPU。

martyryan_0 - 1624635445837. - png

感谢您或其他人提供的任何意见。

标签(2)
0荣誉
Tim_McGinnes
通过
临时贡献者III

@MartyRyan

首先,确保你已经安装了刚刚发布的Pro 2.8.1补丁——它修复了深度学习和gpu的问题。

如果未检测到GPU, Pro将自动退回到使用CPU。首先找出你的GPU型号和内存-最简单的方法是在Nvidia控制面板。点击左下方的系统信息。这是我的:

tim_mcginnes_0 - 1624661793349. - png

重要的信息是卡的型号和专用内存。的需求部分Esri深度学习Github网站建议至少2Gb的专用内存(但你确实需要至少4Gb来做一些严肃的事情)。您还需要CUDA计算能力3.5最低,6.1或更高的建议。找到你的GPUNvidia CUDA GPU呼叫并检查你的能力。这是我的:

tim_mcginnes_1 - 1624662099738. - png

如果您的卡符合要求,那么我建议您更新到最新的图形卡驱动程序,如果它们有一段时间没有更新的话。现在我们将确保它在ArcGIS Pro中被识别。打开Pro并打开一个新的Notebook。将以下代码粘贴到单元格中并运行它。

import torch device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') print('Using device: ' + str(device)) if device。type == 'cuda': print('设备名称:' + torch.cuda.get_device_name())

如果输出显示cuda并打印您的图形卡模型,则应该没问题。如果上面写的是cpu,那么就没有被识别出来。这是我的:

tim_mcginnes_3 - 1624662370319. - png

看你怎么走。这可能是存储卡或驱动程序的技术问题,甚至是Pro安装的问题。

0荣誉
RyanKammerer
通过
新的因素

嗨,蒂姆,

你能告诉我在哪里可以获得Pro 2.8.1补丁吗?我只是从Github运行2.8版本。

谢谢!

0荣誉
RyanKammerer
通过
新的因素

没关系,我认为这是深度学习工具的更新和ArcGIS专业版的更新。抱歉,我算出来了。

0荣誉
MartyRyan
通过
新贡献者III

蒂姆,

对不起,我没有尽快回应-我检查了,我看到这个运行代码时

使用设备:cuda设备名称:Quadro M4000
0荣誉
MartyRyan
通过
新贡献者III

更新:在火车模型工具失败后,我有更多关于GPU\CPU使用情况的问题。我再次为深度学习导出训练数据。我的Train Model失败显示为:

RuntimeError: cuda运行时错误(101):无效的设备序号在..\torch\csrc\cuda\Module.cpp:59

我在“处理器类型”中选择“GPU”,在“GPU ID”中选择“1”:1(对于NVIDIA GPU,如下所示)

martyryan_0 - 1628081040752. - png

该工具在显示此错误之前运行了42分钟。我试图确保我在火车模型工具中识别正确的GPU -我认为我正确地选择了“1”。然而,当我在命令提示符中使用nvidia-smi检查时,我得到:

martyryan_1 - 1628081229031. - png

这里显示GPU被标识为“0”。

我该如何调和这种明显的冲突?如何确保NVIDIA GPU得到最适当和最有效的使用?我在导出训练数据工具中的表现非常缓慢(每小时大约有1%的进展),我不确定我的NVIDIA GPU是否被使用得足够多——它的使用率从来没有超过11%左右。当我训练下一个模型时,我需要知道正确的GPU设置。

谢谢你的帮助

0荣誉
Tim_McGinnes
通过
临时贡献者III

不确定为什么nvidia-smi显示所有的都是0。导出训练数据工具不使用GPU,只是训练模型和检测对象\分类像素等。

我通常只使用Windows任务管理器在性能选项卡中进行监控。您可以设置其中一个图形来显示Cuda统计,以查看正在使用哪个GPU。专用内存是另一个-你可以增加批处理大小来使用更多的内存,这可能会使训练更快(我不知道这是否是实际情况)。

tim_mcginnes_0 - 1628224594250. - png

你要训练多少个时代的模型?您应该能够看到每个epoch所花费的时间(将在笔记本的单元格下方或地理处理工具的消息中输出)。

你有多少训练样本?更多的样本=更长的训练时间。

也许可以从一组非常小的训练数据和几个epoch开始,然后在整个过程中选择不同的选项并检查正在使用的GPU。

0荣誉
MartyRyan
通过
新贡献者III

蒂姆,

谢谢你-这是非常有帮助的,我会记住在训练我的下一个模型。我仍然在运行Export Training Data for Deep Learning(对我来说进展似乎很慢,但我有更多的数据,所以我不确定。)所有的东西都在我的本地机器上,所以我希望在训练模型和分类时能有更好的性能。

0荣誉