每当我使用tensorflow时,它都会显示消息“TensorFlow库未编译为使用SSE3指令,但这些指令在您的机器上可用,可以加速TensorFlow计算”以及另外两条类似的消息。因此,我决定从源代码构建tensorflow来消除这些消息。我在Debian上使用python3.5,并遵循https://www.tensorflow.org/install/install_sources上的说明(只使用CPU,不使用GPU)。在构建期间,它询问构建是否应该针对正在进行构建的机器,我选择了这个选项,它在一些编译器选项中包含了-march=native。一切似乎都正常,但是当我运行python3测试构建时,它仍然给出了关于“TensorFlow库没有编译为使用SSE3指令,但这些指令是可用的……”的消息。如何让构建使用运行它的硬件?
发布于 2017-04-25 15:26:33
曾经有过类似的问题,但大多数答案都是错误的。他们说有必要在编译中指定像"--copt=-msse4.1 --copt=-msse4.2“这样的选项,但事实并非如此。使用默认选项"-march=native",GNU编译器将使用SSE4.1和SSE4.2指令,如果它们可用的话。
真正的问题是,如果您从源代码构建tensorflow,那么在使用pip安装默认构建之后,pip不会用新构建替换旧构建。看起来一切都正常,但是您的旧构建仍然保留在~/.local下的目录中。解决方案很简单,就是用pip卸载旧的tensorflow ('pip uninstall tensorflow‘或'pip3 uninstall tensorflow'),然后从源重建。如果您已经完成了构建,并且想知道为什么没有任何更改,那么您不需要重复构建,而只需执行最后几个步骤(https://www.tensorflow.org/install/install_sources),即bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg,然后执行pip安装。
https://stackoverflow.com/questions/43561319
复制相似问题