在win10里 为啥 Bazel 编译 tensorflow.dll 提示 /arch:SSE4.2 无效命令?要编译SSE4.2的参数怎么配置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在win10里 为啥 Bazel 编译 tensorflow.dll 提示 /arch:SSE4.2 无效命令?要编译SSE4.2的参数怎么配置相关的知识,希望对你有一定的参考价值。
参考技术A 河南新华正在火热报名,欢迎参观!!!Bazel编译tensorflow
这里会逐渐补充。
编译时可以直接在powershell或者cmd或者Anaconda Prompt中执行bazel 命令编译。
编译过程中需要关掉360安全卫士,避免编译进程被杀死导致编译失败。
1、bazel编译tensorflow
(1)打开anaconda prompt
如果想使用不同版本的虚拟环境可以激活相应的虚拟环境,比如我有一个py35的虚拟环境。
conda activate py35
(2)配置项目
cd /d D:GitHub ensorflow-1.13.1
python configure.py
然后根据提示配置符合自己电脑的信息。
(3)编译项目:libtensorflow_cc.so、libtensorflow_framework.so和install_headers
编译之前,去到 ensorflow-master ensorflowBUILD文件里面好好看清楚
需要编译的是libtensorflow_cc.so、libtensorflow_framework.so和install_headers三个项目
install_headers项目会把所有H文件汇总,方便后面引用
cd tensorflow bazel build :libtensorflow_cc.so(BUILD文件tf_cc_shared_object(name="libtensorflow_cc.so")) bazel build :libtensorflow_framework.so(BUILD文件tf_cc_shared_object(name="libtensorflow_framework.so")) bazel build :install_headers(BUILD文件tf_cc_shared_object(name="install_headers"))
最后一条可以不用执行,因为它会将生成的文件安装到C盘,文件很大:
bazel build :install_headers(BUILD文件tf_cc_shared_object(name="install_headers"))
动态库生成到bazel-bin/tensorflow文件夹下,使用时libtensorflow_cc.so需要更名为tensorflow_cc.dll。不知道上面的命令libtensorflow_cc.so直接替换成tensorflow_cc.dll或者tensorflow.dll是不是可以编译成功,可以一试。
调用示例参考:https://blog.csdn.net/atpalain_csdn/article/details/97945536
2、build freeze_graph 工具( 需要 bazel ):
bazel build tensorflow/python/tools:freeze_graph
参考:https://www.jianshu.com/p/091415b114e2?from=timeline
参考:https://blog.csdn.net/atpalain_csdn/article/details/97945536
参考:https://blog.csdn.net/jin739738709/article/details/86705735
以上是关于在win10里 为啥 Bazel 编译 tensorflow.dll 提示 /arch:SSE4.2 无效命令?要编译SSE4.2的参数怎么配置的主要内容,如果未能解决你的问题,请参考以下文章
使用 SSE4.2 编译 TensorFlow,AVX 因 bazel 失败
Window10+Bazel+msys2+vs2019+tensorflow2.8+python3.8 编译libtensorflowlite.so CPU
请问在 Dev C++ 里编写的 Windows 程序,为啥原先可以编译的,但修改了之后再改回来就不能编译了呢?