gpt4 book ai didi

swift - 为什么我启用了 Metal API 但我的 Coreml 自定义层仍在 CPU 上运行

转载 作者:行者123 更新时间:2023-11-28 05:57:33 52 4
gpt4 key购买 nike

我对 Coreml 和 Metal 真的很陌生。

现在我正在做一个测试 Core Ml 模型性能的项目。我基于 tensorflow 实现了一个 CNN 模型,并使用 tf-coreml 工具将该模型转换为 .mlmodel。

但在我的 CNN 模型中,它有一个名为“equal”的操作,Coreml 不支持它。它转换为 .mlmodel 的自定义层 my .mlmodel file screen shot

然后我关注了 Hollemans 精彩的博客 http://machinethink.net/blog/coreml-custom-layers/在 CPU 和 GPU 上实现这个自定义层。我的 Cpu 版本运行良好,但是当我在 GPU 上实现此操作时,它无法激活“编码功能”。我遵循了 Hollemans 博客中创建 Metal 计算内核和其他部分的所有步骤。但是当我运行我的项目时,它总是在 CPU 上运行。它似乎永远不会进入编码功能。 only run on evaluate function

我在谷歌上搜索了很多,但没有找到理想的答案,这让我很沮丧。如果有人有任何提示,我将非常感激。提前致谢。

最佳答案

当你ask your model for prediction ,您可以指定类似 running on CPU only 的选项.您的模型未在 GPU 上运行的一个可能原因可能是您有类似的东西

让选项 = MLPredictionOptions()
options.usesCPUOnly = true

在您的代码中,您将 options 传递给预测方法。将 usesCPUOnly 属性设置为 false 以允许模型在 GPU 上运行。由于 Hollemans 的博客(真的很棒)中没有提到您可以选择在 CPU 或 GPU 上运行模型,我想这可能是您的模型一直在 CPU 上运行的原因之一。

关于swift - 为什么我启用了 Metal API 但我的 Coreml 自定义层仍在 CPU 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51019600/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com