首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何在numpy库上运行Facebook推断程序?

我如何在numpy库上运行Facebook推断程序?
EN

Stack Overflow用户
提问于 2022-06-24 16:07:56
回答 1查看 31关注 0票数 0

我想在numpy库上运行推论来检测它的弱点。当我运行以下命令时:

代码语言:javascript
复制
infer run -- gcc -c /numpy/numpy/numpy/core/src/multiarrayabstractdtypes.c

它引发以下错误:

代码语言:javascript
复制
Capturing in make/cc mode...
abstractdtypes.c:5:10: fatal error: 'Python.h' file not found
#include <Python.h>
         ^~~~~~~~~~
1 error generated.
Error: the following clang command did not run successfully:
    /opt/infer-linux64-v1.0.0/lib/infer/facebook-clang-plugins/clang/install/bin/clang-9
    @/media/nimashiri/DATA/vsprojects/ICSE23/ml_repos_cloned/numpy/numpy/numpy/core/src/multiarray/infer-out/tmp/clang_command_.tmp.a9d22f.txt
  ++Contents of '/media/nimashiri/DATA/vsprojects/ICSE23/ml_repos_cloned/numpy/numpy/numpy/core/src/multiarray/infer-out/tmp/clang_command_.tmp.a9d22f.txt':
    "-cc1" "-load"...

如何在具有特殊编译器(例如numpy或tensorflow )的项目中运行针对单个源文件的推断。这些编译器不显式地使用make或cmake。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-25 02:22:32

我想出了怎么做。以下是应采取的步骤:

编译和构建项目,例如对于numpy,当您想要从源代码构建时,您必须运行python setup.py build_ext --inplace.

  1. 在编译项目时,在终端中可以看到编译日志。您必须在编译日志中搜索编译命令。例如,当从源代码编译numpy时,您可以看到如下内容:

代码语言:javascript
复制
-Inumpy/core/include -Inumpy/core/include/numpy -Ibuild/src.linux-x86_64-3.8/numpy/distutils/include -Inumpy/core/src/common -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -Inumpy/core/src/_simd -I/usr/include/python3.8 -Inumpy/core/src/common -Inumpy/core/src/npymath -c 

  1. 前面的命令是编译所需的头文件的路径。请注意,前面的头文件是用于numpy/random/src/distributions/logfactorial.c的。您必须使用一些解析器手动或自动找到相应的文件。

在本步骤中,需要运行

  1. 命令,如下所示:

代码语言:javascript
复制
infer capture -- gcc Inumpy/core/include -Inumpy/core/include/numpy -Ibuild/src.linux-x86_64-3.8/numpy/distutils/include -Inumpy/core/src/common -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -Inumpy/core/src/_simd -I/usr/include/python3.8 -Inumpy/core/src/common -Inumpy/core/src/npymath -c numpy/random/src/distributions/logfactorial.c

  1. 前面的命令将捕获编译命令,现在我们需要使用analyze命令分析文件中可能出现的错误,如下所示:

代码语言:javascript
复制
infer analyze -- gcc Inumpy/core/include -Inumpy/core/include/numpy -Ibuild/src.linux-x86_64-3.8/numpy/distutils/include -Inumpy/core/src/common -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -Inumpy/core/src/_simd -I/usr/include/python3.8 -Inumpy/core/src/common -Inumpy/core/src/npymath -c numpy/random/src/distributions/logfactorial.c
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72746727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档