因此,我正在尝试安装plaidML-keras,以便可以在MacBookPro的gpu(radeon pro 560x)上进行张量流处理。根据我的研究,可以使用plaidML-Keras(instalation instrutions)来完成。当我运行pip install -U plaidml-keras
时,它工作正常,但下一步,plaidml-setup
返回以下错误。
Traceback (most recent call last):
File "/usr/local/bin/plaidml-setup", line 6, in <module>
from plaidml.plaidml_setup import main
File "/usr/local/lib/python3.7/site-packages/plaidml/__init__.py", line 50, in <module>
import plaidml.settings
File "/usr/local/lib/python3.7/site-packages/plaidml/settings.py", line 33, in <module>
_setup_config('PLAIDML_EXPERIMENTAL_CONFIG', 'experimental.json')
File "/usr/local/lib/python3.7/site-packages/plaidml/settings.py", line 30, in _setup_config
'Could not find PlaidML configuration file: "{}".'.format(filename))
plaidml.exceptions.PlaidMLError: Could not find PlaidML configuration file: "experimental.json".
从对错误消息的有限了解来看,这是说我丢失了一个conifuration文件,但是我不知道将其放置在何处或放置在其中的内容。我猜想这与说明中的以下(含糊)行有关。
最后,将PlaidML设置为使用首选的计算设备
但是我如何指定我希望它使用radeon pro 560x。另外,我确实进行了检查,并且我的mac与openCL 1.2兼容(对于plaidML是必需的)
答案 0 :(得分:1)
您需要在环境中正确设置 plaidml 和 libplaidml.dylib 路径。
格子ml
的可能路径/Library/Frameworks/Python.framework/Versions/3.7/share/plaidml
/usr/local/share/plaidml
libplaidml.dylib
的可能路径/Library/Frameworks/Python.framework/Versions/3.7/lib/libplaidml.dylib
/usr/local/lib/libplaidml.dylib
import os
os.environ["KERAS_BACKEND"] = "plaidml.keras.backend"
os.environ["RUNFILES_DIR"] = "/Library/Frameworks/Python.framework/Versions/3.7/share/plaidml"
os.environ["PLAIDML_NATIVE_PATH"] = "/Library/Frameworks/Python.framework/Versions/3.7/lib/libplaidml.dylib"
有关设置opencl和plaidml的完整步骤。参见this。
答案 1 :(得分:0)
免责声明:我是PlaidML团队的一员,我们正在积极努力改善其安装经验和相关文档。对不起,您对此感到困惑。目前,这里有一些说明可让您重回正轨。
/usr/local/bin
的某种变体或虚拟环境的路径。对于下一步,请注意此路径的前缀(即/usr/local
)。share
目录。它与plaidml-setup相同,即/usr/local/share/plaidml
。share
目录中,应该有几个文件:至少应有config.json
和experimental.json
在其中。如果它们不在其中,则可以将the files here复制到您的格子share
目录中。将这些json文件复制完之后,您应该可以毫无问题地运行plaidml-setup
。
答案 2 :(得分:0)
我正面临着同样的问题,在线回答不是很有帮助。在这种情况下,我建议您自己调试。
因为这是问题所在,
File "/usr/local/lib/python3.7/site-packages/plaidml/settings.py", line 30, in _setup_config
'Could not find PlaidML configuration file: "{}".'.format(filename))
您可以vim /usr/local/lib/python3.7/site-packages/plaidml/settings.py
,然后阅读代码。基本上,它正在尝试使用功能_find_config
来获取配置文件。
在cfg_path = os.path.join(prefix, 'share', 'plaidml', name)
之后,我添加了print(cfg_path)
来查看它要寻找的路径。我得到了:
/usr/local/Caskroom/miniconda/base/share/plaidml/experimental.json
/usr/local/Caskroom/miniconda/base/share/plaidml/config.json
这就是为什么很难告诉您将文件放在何处的原因:这取决于您的系统设置。并非每个人都像我一样使用cask
和conda
,所以我认为在您的操作系统中应该有所不同。
@Denise Kutnick:感谢您的辛勤工作,或者在出现问题时打印cfg_path,或者尝试添加.
作为搜索路径,以便用户更容易获得一些线索? / p>
答案 3 :(得分:0)
正如我在这里写道:https://superuser.com/questions/1404114/traceback-error-during-plaidml-installation/1488059#1488059
文件plaidml/settings.py
使用变量sys.prefix
,该变量对我的系统而言有错误的值:它包含/usr
而不是~/.local
,因此它尝试加载{{1 }},而不是/usr/share/plaidml/experimental.json
我还不知道如何确定~/.local/share/plaidml/experimental.json
的值,以及plaidml是否能够找到它的sys.prefix
文件...
答案 4 :(得分:0)
在plaidml共享目录中,应该有几个文件:至少是config.json和experimental.json
usr / local / lib / python3.8 / site-packages / plaidml
++
执行以下操作:
导出PLAIDML_NATIVE_PATH = / usr / local / lib / libplaidml.dylib 导出RUNFILES_DIR = / usr / local / share / plaidml。