本文翻译自点击打开链接
在使用tensorflow的时候会遇到这种情况。
2018-04-26 09:51:32.365347: I C:\tf_jenkins\workspace\rel-win\M\windows\PY\35\tensorflow\core\platform\cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
一步一步的解释:
1,警告说明什么?
现代CPUs提供了很多的低级指令,除了基本常用的计算和逻辑运算,还有一些扩展的,例如SSE2,SSE4,AVX等等。
特别的,AVX指令提供了乘法累加(FMA)运算,这将加速,像点乘,矩阵相乘,卷积之类的线性代数运算。几乎每一次的机器学习训练都包括大量的这些运算,支持AVX和FMA的CPU会有更快速度(提升300%)。这个警告说明,你的CPU不支持AVX。
在此强调一下:这只是关于CPU而已。
2,为什么不能使用?
由于tensorflow默认分布是在没有CPU扩展的情况下构建的,例如SSE4.1,SSE4.2,AVX,AVX2,FMA等。默认版本(pip install tensorflow的版本)是尽可能与更多的CPU兼容。 另一个观点是,即使使用这些指令,CPU的速度也要比GPU慢很多,它是期望工作在GPU上中大规模的机器学习的训练上。
3,解决办法
只要忽略此警告就可以了,用下面代码:
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
查询CPU数量的方法:
from multiprocessing import cpu_count
print(cpu_count())
查询GPU数的方法:
def get_available_gpus():
from tensorflow.python.client import device_lib as _device_lib
local_device_protos = _device_lib.list_local_devices()
return [x.name for x in local_device_protos if x.device_type == 'GPU']
print(get_available_gpus())
如果是[],那你的电脑就没有GPU。