Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2

本文翻译自点击打开链接

在使用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。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值