Tensorflow不支持AVX2指令集的解决方法

这几天研究了一下FCN(全卷积网络),由于电脑配置不够,用GPU训练直接报OOM(内存溢出)了, 于是转战CPU,当然,这样会很慢,之后会继续搞一下,减小一下网络的复杂度,对一些参数设置一波,看能不能正常跑下来。

记得一开始没有装GPU版的tensorflow时用CPU版本跑程序的时候总是报警告:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2,当时没有太在意,大概搜了一下,就是说你的电脑是支持AVX2的,但是你装的tensorflow版本却不支持,当然,如果有GPU的话就可以忽视这个了,毕竟优先使用后者~既然可以更好一点(使用AVX2),那就追求一下完美吧……

网上很大部分资料对于这一块采取的措施都是屏蔽掉,所谓眼不见心不烦,但这样只能是自欺欺人啊,治标不治本,于是探究了一下,成功解决了这一问题,现记录一下:

1. 首先在Anaconda中创建虚拟环境,命名为cpu_avx2,python版本指定为3.7,这样避免出错崩溃影响到其他程序操作:

2. 在这里下载对应版本的tensorflow:https://github.com/fo40225/tensorflow-windows-wheel,比如我需要的是CPU+AVX2+Python3.7,那么我就选择第二个:

按照路径提示,在上边找到对应的.whl文件,对应本次安装的路径为:

3. 将该文件下载下来,放到相应的目录下(为了方便建议放到命令窗口对应的目录下,这样就不用再切换目录了,反正只要能找到该文件就行):

然后打开Anaconda Prompt,进入刚才创建的虚拟空间cpu_avx2,安装即可:

完事后可以看一下安装的包:

整个过程大概持续几分钟,需要安装一些依赖,如果不能下载.whl文件的话就直接在命令窗口使用该命令从github下载安装:

pip install https://github.com/fo40225/tensorflow-windows-wheel/tree/master/1.14.0/py37/CPU/avx2/tensorflow-1.14.0-cp37-cp37m-win_amd64.whl

友情提示,在Pytharm中要正确选择编译器,在本例中我们使用的是虚拟环境cpu_avx2:

这样以后再跑程序就不会再有如标题所示的警告提醒了,相应的性能也会有所提升,对于无N卡的电脑来说还是很不错的……

以上这篇Tensorflow不支持AVX2指令集的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • TensorFlow 显存使用机制详解

    默认情况下,TensorFlow 会映射进程可见的所有 GPU 的几乎所有 GPU 内存(取决于 CUDA_VISIBLE_DEVICES).通过减少内存碎片,可以更有效地使用设备上相对宝贵的 GPU 内存资源. 在某些情况下,最理想的是进程只分配可用内存的一个子集,或者仅根据进程需要增加内存使用量. TensorFlow 在 Session 上提供两个 Config 选项来进行控制. (1) : 自主申请所用的内存空间 第一个是 allow_growth 选项,它试图根据运行时的需要来分配 G

  • tensorflow指定GPU与动态分配GPU memory设置

    在tensorflow中,默认指定占用所有的GPU,如需指定占用的GPU,可以在命令行中: export CUDA_VISIBLE_DEVICES=1 这样便是只占用1号GPU,通过命令 nvidia-smi 可以查看各个GPU的使用情况. 另外,也可以在python程序中指定GPU,并且动态分配memory,代码如下 import os import sys os.environ['CUDA_VISIBLE_DEVICES'] = sys.argv[1] import tensorflow a

  • TensorFlow内存管理bfc算法实例

    1. 基本介绍 tensorflow设备内存管理模块实现了一个best-fit with coalescing算法(后文简称bfc算法). bfc算法是Doung Lea's malloc(dlmalloc)的一个非常简单的版本. 它具有内存分配.释放.碎片管理等基本功能. 2. bfc基本算法思想 1. 数据结构 整个内存空间由一个按基址升序排列的Chunk双向链表来表示,它们的直接前趋和后继必须在地址连续的内存空间.Chunk结构体里含有实际大小.请求大小.是否被占用.基址.直接前趋.直接后

  • 基于tensorflow指定GPU运行及GPU资源分配的几种方式小结

    1. 在终端执行时设置使用哪些GPU(两种方式) (1) 如下(export 语句执行一次就行了,以后再运行代码不用执行) (2) 如下 2. 代码中指定(两种方式) (1) import os os.environ["CUDA_VISIBLE_DEVICES"] = "1" (2) # Creates a graph. with tf.device('/gpu:1'): a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0],

  • tensorflow 限制显存大小的实现

    Python在用GPU跑模型的时候最好开多进程,因为很明显这种任务就是计算密集型的. 用进程池好管理,但是tensorflow默认情况会最大占用显存,尽管该任务并不需要这么多,因此我们可以设置显存的按需获取,这样程序就不会死掉了. 1. 按比例预留: tf_config = tensorflow.ConfigProto() tf_config.gpu_options.per_process_gpu_memory_fraction = 0.5 # 分配50% session = tensorflo

  • 解决Tensorflow 使用时cpu编译不支持警告的问题

    使用TensorFlow模块时,弹出错误Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2 原因是下载TensorFlow的版本不支持cpu的AVX2编译. 可能是因为安装时使用的pip install tensorflow ,这样默认会下载X86_64的SIMD版本. 有两种解决办法: 1.忽略这个警告,不看它! import os os.environ["TF

  • tensorflow2.0保存和恢复模型3种方法

    方法1:只保存模型的权重和偏置 这种方法不会保存整个网络的结构,只是保存模型的权重和偏置,所以在后期恢复模型之前,必须手动创建和之前模型一模一样的模型,以保证权重和偏置的维度和保存之前的相同. tf.keras.model类中的save_weights方法和load_weights方法,参数解释我就直接搬运官网的内容了. save_weights( filepath, overwrite=True, save_format=None ) Arguments: filepath: String,

  • Tensorflow不支持AVX2指令集的解决方法

    这几天研究了一下FCN(全卷积网络),由于电脑配置不够,用GPU训练直接报OOM(内存溢出)了, 于是转战CPU,当然,这样会很慢,之后会继续搞一下,减小一下网络的复杂度,对一些参数设置一波,看能不能正常跑下来. 记得一开始没有装GPU版的tensorflow时用CPU版本跑程序的时候总是报警告:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2,当时没有太在意,

  • tensorflow 报错unitialized value的解决方法

    Attempting to use uninitialized value mean_squared_error/total 如图: 原因一:使用了tf.metrics.mean_squared_error(labels, predictions) 解决方法: 1.将其换成tf.losses.mean_squared_error(labels, preditions) 或者 2.加一个tf.lacal_variables_initializer() 原因二:将一些节点写在了tf.Session(

  • 基于bootstrap-datetimepicker.js不支持IE8的快速解决方法

    实例如下: if (!Array.prototype.indexOf) Array.prototype.indexOf = function (elt /*, from*/) { var len = this.length >>> 0; var from = Number(arguments[1]) || 0; from = (from < 0) ? Math.ceil(from) : Math.floor(from); if (from < 0) from += len;

  • ios 不支持 iframe 的完美解决方法(兼容iOS&安卓)

    最近做微信公众号页面,因为入口不同,需要把公共页面抽取出来,然后根据不同的值,传递给后台不同的入口.刚开始用iframe页面嵌套(第一次尝试使用),但发现iOS系统对iframe嵌套页面的高度和定位控制的不到位,具体表现为,当嵌套的子页面的高度大于父页面的高度,且子页面中有触发弹框事件时,这时,如果子页面高度远远大于父页面高度,就会出现弹框找不到的情况,其实可能是在视口以下,弹框的位置只是相对于子页面来定位,并没有相对于视口定位. 尝试了好多种方法,均不理想,而安卓系统则表现良好,于是想到,iO

  • MySQL中Union子句不支持order by的解决方法

    本文实例讲述了MySQL中Union子句不支持order by的解决方法.分享给大家供大家参考,具体如下: 我对DB知之甚少,这问题只在MySQL遇到,不知道别的DBMS是不是也如此. 问题是这样的,我打算在一个表里获得与某一行记录相邻的两行,并且想通过union一起取出来,所以这么写: select id,title from subjects where id>#some_id# order by id limit 1 union select id,title from subjects

  • Windows 2003 IIS 不支持ASP问题的解决方法

    特别注意:当我们在没有配置好iis的时候,不要安装补丁了,组件之类的东西,先把网站弄开通了,再安装补丁,尤其是.net组件. HTTP 错误 404 - 文件或目录未找到. Internet 信息服务 (IIS) 第一步,启用Asp,进入:控制面板 -> 管理工具 ->IIS(Internet 服务器)- Web服务扩展 -> Active Server Pages -> 允许 控制面板 -> 管理工具 ->IIS(Internet 服务器)- Web服务扩展 ->

  • 服务器不支持 MySql 数据库的解决方法

    php.ini文件没有参数没有配置正确 解决方法: (1) 打开php.ini文件,找到: extension_dir = "./" 将其改为: extension_dir = "X:\PHP\ext"(php扩展程序目录) (2) 找到:Windows Extensions,去掉模块配置每行前面的:号即可 extension=php_mbstring.dll extension=php_gd2.dll extension=php_mysql.dll (3) 找到:

  • 火狐4、谷歌12不支持Jquery Validator的解决方法分享

    解决方法.在form中添加 novalidate 属性就可以解决这个问题,并且不影响在ie下的效果 例如: <form method="post" action="rival_show.jsp" id="form1" name="form1" novalidate></form> 详细解说见:http://www.w3.org/TR/html5/forms.html#attr-fs-novalidate

  • mysql不支持group by的解决方法小结

    下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错,然后又把它移除了. 一旦开启 only_full_group_by ,感觉,group by 将变成和 distinct 一样,只能获取受到其影响的字段信息,无法和其他未受其影响的字段共存,这样,group by 的功能将变得十分狭窄了 only_full_group_by 模式开启比较好. 因为在 mysql 中有一个函数: any_

  • iphone safari不支持position fixed的解决方法

    需求是这样的,许多pc web页面的导航都是固定的,比如google的首页,现在要将这种固定的导航转移到mobile web下,很自然地就会想到position:fixed; bottom: 0,android下运行正常,但在iphone safari下就会出现问题,当滚动条滚动时,导航条就会出现屏幕的上方,黑乎乎的一块,很不协调.许多人推荐iscroll.jquery mobile等框架,但有时效果不如意或是得阅读框架源码进行二次开发,会花费好长一段时间的.经过一段时间的研究,找到了一种解决办

随机推荐