刚刚运行 tensorflow。 现在遇到这个错误。
目前使用 Mac Yosemite,通过 anaconda 使用 pip3 下载 tensorflow,使用 python 3.5。
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
那么既然 anaconda 有一组特殊的命令,那么如何通过 anaconda 命令系统让 tensorflow 在 SSE4.1、SSE4.2 和 AVX 上运行? 我真的很困惑如何解决这个问题。
正如@Carmezim所说,这些只是警告消息。
对于您的每个程序,您只会看到它们一次。
就像警告所说的那样,如果您需要使 TF 更快,您应该只使用这些标志编译 TF。
您可以按照我们的指南从源代码安装 TensorFlow 以编译支持 SIMD 指令集的 TF。
好,谢谢。 我得到它。
有没有办法让我们保持沉默?
消除这些警告消息的唯一方法是从源代码构建,使用--config opt
选项。
一种在 Unix/Linux/OSX 上重定向消息的“解决方法”(尽管不完美):
python myscript.py 2>/dev/null
@CGTheLegend @ocampesato你可以使用 TF 环境变量TF_CPP_MIN_LOG_LEVEL
,它的工作原理如下:
INFO
日志,请将其设置为1WARNINGS
另外, 2ERROR
日志将其设置为3因此,您可以执行以下操作来使警告静音:
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import tensorflow as tf
@gunan @mrry我看到很多人对消除警告感兴趣,是否有兴趣将此类信息添加到文档中?
我从 tensorflow 安装指南安装,也收到了这个警告。
pip3 install --upgrade tensorflow
@jadeydi而不是从源代码编译,“pip”只安装二进制文件,这样你仍然会收到这些警告。
我刚刚编译了支持 SSE4.1 SSE4.2 AVX AVX2 和 FMA 的 tensorflow。 该构建可在此处获得: https :
嗨@lakshayg ,感谢分享。 您可能想查看https://github.com/yaroslavvb/tensorflow-community-wheels
与 Ubuntu 上的标准pip install tensorflow-gpu
相比,构建速度大约快得多? 它只是对 CPU 计算更快,还是对 GPU 计算有任何好处?
http://www.anandtech.com/show/2362/5
这是在谷歌上提出的,并且有一些不错的技术细节。
测试是使用 VirtualDub 1.7.6 和 DivX 6.7 的 DivX 编码。 如果您选择为运动估计启用新的完整搜索算法,SSE4 就会出现,该算法由两个 SSE4 指令加速:
MPSADBW
和PHMINPOSUW
。 这个想法是运动估计(弄清楚在后续视频帧中会发生什么)需要对绝对差的总和进行大量计算,以及找到这些计算结果的最小值。 SSE2 指令PSADBW
可以计算一对 16B 无符号整数的两个差值和; SSE4 指令MPSADBW
可以做八个。
...
在我们的 QX9650 上,启用 SSE4 的完整搜索运行速度比仅使用 SSE2 快 45%
现在确定 tensorflow 正在使用哪些函数,但可能值得付出努力。
抱歉,默认情况下在所有 TF 脚本中都有输出是一件荒谬的事情。 大多数人可能不会从源代码编译 TF,也不想编译。
@Tomashley303 ,这是一个非常棒的信息! 我不打算从源代码重新编译。 我不想。 但是这些信息告诉我,如果我的模型变大变慢并且需要提高性能,该怎么办。 考虑到良好的演练(我们确实有)可以最大限度地减少重新编译的劳动力成本(CPU 时间无关紧要,可以在一夜之间运行),使用扩展重新编译通常比购买新硬件更便宜。
我经历了这个过程......很简单,根本没有花时间。 不是你通常的 cmake C++ 有点噩梦。
我有一个小的 bash 脚本可以在 MacOS/Linux 下编译 TF。 它动态计算 CPU 特性并将它们作为构建参数。 我正在考虑创建一个 PR,但没有找到一个包含用于本地构建的脚本(帮助程序)的文件夹,只有 ci_build。 如果有意义,我会去做
要旨
https://gist.github.com/venik/9ba962c8b301b0e21f99884cbd35082f
给@gunan 的一封信
我在第一次安装 TensorFlow 时遇到了这个问题。 现在我不得不弄清楚如何再次解决它,因为我正在一台新机器上安装 TensorFlow。 这是一个令人头疼的问题,您提供的文档根本不清楚。
我必须在我的最后做这件事的事实是荒谬和令人愤怒的。 如果 pip/pip3 整天向您发出警告,那么从 pip/pip3 中提供某些内容是没有用的。
至少,您应该编辑https://www.tensorflow.org/install/install_sources并明确说明如何使用 SSE / AVX 进行编译
对我有用的解决方案:在配置过程中(运行 ./configure 时)出现提示时输入“-mavx -msse4.1 -msse4.2”。
将它添加到您的安装说明中有那么难吗?
谢谢,根据@Carmezim 的回答,我得到了基于 avx 和 sse 的 cpu 加速版本。 我已经在 Intel 上测试过 fast-rcnn(resnet-101)。 成本时间加快了30%左右,真的很有用。
您可以使警告静音。
只需在顶部添加这些代码。
导入操作系统
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
将张量流导入为 tf
正如这里提到的: https :
您可以轻松地在系统环境变量中添加用户变量:
TF_CPP_MIN_LOG_LEVEL, value = 2. 然后重启你的IDE
@mikalyoung无法预期 GPU 计算的改进,因为这些指令集仅适用于 CPU,并且它们允许矢量化操作。
因此,如果您比较两个(理想情况下)100% 在 GPU 上运行的代码,一个在使用 SIMD 支持编译的 Tensorflow 实例上运行,另一个在没有支持的情况下运行,您应该在速度方面得到相同的结果(并且希望在数值上也是如此)。
IC:\tf_jenkinshome\workspace\rel-win\M\windows\PY\36\tensorflow\core\platform\cpu_feature_guard.cc:137] 您的 CPU 支持该 TensorFlow 二进制文件未编译使用的指令:AVX AVX2
正如您所看到的,我的系统也有警告,但是在这种情况下,我无法理解警告开始时的“我”,因此有人可以在这种情况下帮助我
“I”只是“INFO”的简写。 您可以看到的其他字母 E 表示错误,或 F 表示致命。
所以我使用 conda 安装。 如果我现在希望从源代码编译而不是利用任何速度提升,我是否需要做任何事情来删除我的 conda 安装 tensorflow? 还是在它自己的小容器中,我可以从源代码单独编译?
我已经安装了 DeepSpeech 和 DeepSpeech 服务器。 去启动服务器并收到错误消息 - “2018-01-17 08:21:49.120154: F tensorflow/core/platform/cpu_feature_guard.cc:35] TensorFlow 库被编译为使用 AVX2 指令,但这些不是' t 在您的机器上可用。
中止(核心转储)”
显然我需要在同一台计算机上编译 TensorFlow。 请问有没有可以匹配 Kubuntu 17.10.1 和 HP Probook 4330S 的列表?
为什么没有windows编译? 我遇到了同样的问题,但我想使用 GPU,而不是将警告静音,我还有一个和显卡而不是 Nvidia 我该怎么办?
*我没有 Nvidia 显卡,我有一个和一个我该怎么办?
*AMD显卡..自动更正
这些不仅仅是警告,因为它会终止我的测试盒上的进程。 因为我也使用 AMD GPU,所以我启动了一个 Digital Ocean tensorflow box 来试一试,但似乎那里也没有 GPU 支持,而且它失败得很惨。
`# 作业 ID 0
将 hparams 保存到 /home/science/tf-demo/models/nmt-chatbot/model/hparams
将 hparams 保存到 /home/science/tf-demo/models/nmt-chatbot/model/best_bleu/hparams
注意=scaled_luong
注意_架构=标准
批量大小=128
波束宽度=10
best_bleu=0
best_bleu_dir=/home/science/tf-demo/models/nmt-chatbot/model/best_bleu
check_special_token=真
colocate_gradients_with_ops=真
衰减因子=1.0
衰减_步数=10000
dev_prefix=/home/science/tf-demo/models/nmt-chatbot/data/tst2012
辍学=0.2
编码器类型=双
eos=
epoch_step=0
忘记偏差=1.0
infer_batch_size=32
init_op=统一
init_weight=0.1
学习率=0.001
learning_rate_decay_scheme=
length_penalty_weight=1.0
log_device_placement=假
max_gradient_norm=5.0
max_train=0
指标=['bleu']
num_buckets=5
num_embeddings_partitions=0
num_gpus=1
num_layers=2
num_residual_layers=0
num_train_steps=500000
num_translations_per_input=10
num_units=512
优化器=亚当
out_dir=/home/science/tf-demo/models/nmt-chatbot/model
输出注意=真
override_loaded_hparams=真
pass_hidden_state=真
random_seed=无
残差=假
share_vocab=假
sos=
source_reverse=假
源=来自
src_max_len=50
src_max_len_infer=无
src_vocab_file=/home/science/tf-demo/models/nmt-chatbot/data/vocab.from
src_vocab_size=15003
start_decay_step=0
steps_per_external_eval=无
step_per_stats=100
subword_option=
test_prefix=/home/science/tf-demo/models/nmt-chatbot/data/tst2013
tgt=到
tgt_max_len=50
tgt_max_len_infer=无
tgt_vocab_file=/home/science/tf-demo/models/nmt-chatbot/data/vocab.to
tgt_vocab_size=15003
time_major=真
train_prefix=/home/science/tf-demo/models/nmt-chatbot/data/train
unit_type=lstm
vocab_prefix=/home/science/tf-demo/models/nmt-chatbot/data/vocab
warmup_scheme=t2t
热身步骤=0
num_bi_layers = 1, num_bi_residual_layers=0
cell 0 LSTM,forget_bias=1 DropoutWrapper,dropout=0.2 DeviceWrapper,device=/ gpu:0
cell 0 LSTM,forget_bias=1 DropoutWrapper,dropout=0.2 DeviceWrapper,device=/ gpu:0
cell 0 LSTM,forget_bias=1 DropoutWrapper,dropout=0.2 DeviceWrapper,device=/ gpu:0
单元 1 LSTM,forget_bias=1 DropoutWrapper,dropout=0.2 DeviceWrapper,device=/ gpu:0
learning_rate=0.001,warmup_steps=0,warmup_scheme=t2t
衰减方案=,开始衰减步骤=0,衰减步骤10000,衰减因子1
嵌入/编码器/嵌入_编码器:0 , (15003, 512),
嵌入/解码器/嵌入_解码器:0 , (15003, 512),
dynamic_seq2seq/encoder/bidirectional_rnn/fw/basic_lstm_cell/ kernel:0 , (1024, 2048), / device:GPU :0
dynamic_seq2seq/encoder/bidirectional_rnn/fw/basic_lstm_cell/ bias:0 , (2048,), / device:GPU :0
dynamic_seq2seq/encoder/bidirectional_rnn/bw/basic_lstm_cell/ kernel:0 , (1024, 2048), / device:GPU :0
dynamic_seq2seq/encoder/bidirectional_rnn/bw/basic_lstm_cell/ bias:0 , (2048,), / device:GPU :0
dynamic_seq2seq/decoder/memory_layer/ kernel:0 , (1024, 512),
dynamic_seq2seq/decoder/attention/multi_rnn_cell/cell_0/basic_lstm_cell/ kernel:0 , (1536, 2048), / device:GPU :0
dynamic_seq2seq/decoder/attention/multi_rnn_cell/cell_0/basic_lstm_cell/ bias:0 , (2048,), / device:GPU :0
dynamic_seq2seq/decoder/attention/multi_rnn_cell/cell_1/basic_lstm_cell/ kernel:0 , (1024, 2048), / device:GPU :0
dynamic_seq2seq/decoder/attention/multi_rnn_cell/cell_1/basic_lstm_cell/ bias:0 , (2048,), / device:GPU :0
dynamic_seq2seq/decoder/attention/luong_attention/attention_g:0, (), / device:GPU :0
dynamic_seq2seq/decoder/attention/attention_layer/ kernel:0 , (1536, 512), / device:GPU :0
dynamic_seq2seq/decoder/output_projection/ kernel:0 , (512, 15003), / device:GPU :0
num_bi_layers = 1, num_bi_residual_layers=0
单元 0 LSTM,forget_bias=1 DeviceWrapper,device=/ gpu:0
单元 0 LSTM,forget_bias=1 DeviceWrapper,device=/ gpu:0
单元 0 LSTM,forget_bias=1 DeviceWrapper,device=/ gpu:0
单元 1 LSTM,forget_bias=1 DeviceWrapper,device=/ gpu:0
嵌入/编码器/嵌入_编码器:0 , (15003, 512),
嵌入/解码器/嵌入_解码器:0 , (15003, 512),
dynamic_seq2seq/encoder/bidirectional_rnn/fw/basic_lstm_cell/ kernel:0 , (1024, 2048), / device:GPU :0
dynamic_seq2seq/encoder/bidirectional_rnn/fw/basic_lstm_cell/ bias:0 , (2048,), / device:GPU :0
dynamic_seq2seq/encoder/bidirectional_rnn/bw/basic_lstm_cell/ kernel:0 , (1024, 2048), / device:GPU :0
dynamic_seq2seq/encoder/bidirectional_rnn/bw/basic_lstm_cell/ bias:0 , (2048,), / device:GPU :0
dynamic_seq2seq/decoder/memory_layer/ kernel:0 , (1024, 512),
dynamic_seq2seq/decoder/attention/multi_rnn_cell/cell_0/basic_lstm_cell/ kernel:0 , (1536, 2048), / device:GPU :0
dynamic_seq2seq/decoder/attention/multi_rnn_cell/cell_0/basic_lstm_cell/ bias:0 , (2048,), / device:GPU :0
dynamic_seq2seq/decoder/attention/multi_rnn_cell/cell_1/basic_lstm_cell/ kernel:0 , (1024, 2048), / device:GPU :0
dynamic_seq2seq/decoder/attention/multi_rnn_cell/cell_1/basic_lstm_cell/ bias:0 , (2048,), / device:GPU :0
dynamic_seq2seq/decoder/attention/luong_attention/attention_g:0, (), / device:GPU :0
dynamic_seq2seq/decoder/attention/attention_layer/ kernel:0 , (1536, 512), / device:GPU :0
dynamic_seq2seq/decoder/output_projection/ kernel:0 , (512, 15003), / device:GPU :0
num_bi_layers = 1, num_bi_residual_layers=0
单元 0 LSTM,forget_bias=1 DeviceWrapper,device=/ gpu:0
单元 0 LSTM,forget_bias=1 DeviceWrapper,device=/ gpu:0
单元 0 LSTM,forget_bias=1 DeviceWrapper,device=/ gpu:0
单元 1 LSTM,forget_bias=1 DeviceWrapper,device=/ gpu:0
嵌入/编码器/嵌入_编码器:0 , (15003, 512),
嵌入/解码器/嵌入_解码器:0 , (15003, 512),
dynamic_seq2seq/encoder/bidirectional_rnn/fw/basic_lstm_cell/ kernel:0 , (1024, 2048), / device:GPU :0
dynamic_seq2seq/encoder/bidirectional_rnn/fw/basic_lstm_cell/ bias:0 , (2048,), / device:GPU :0
dynamic_seq2seq/encoder/bidirectional_rnn/bw/basic_lstm_cell/ kernel:0 , (1024, 2048), / device:GPU :0
dynamic_seq2seq/encoder/bidirectional_rnn/bw/basic_lstm_cell/ bias:0 , (2048,), / device:GPU :0
dynamic_seq2seq/decoder/memory_layer/ kernel:0 , (1024, 512),
dynamic_seq2seq/decoder/attention/multi_rnn_cell/cell_0/basic_lstm_cell/ kernel:0 , (1536, 2048), / device:GPU :0
dynamic_seq2seq/decoder/attention/multi_rnn_cell/cell_0/basic_lstm_cell/ bias:0 , (2048,), / device:GPU :0
dynamic_seq2seq/decoder/attention/multi_rnn_cell/cell_1/basic_lstm_cell/ kernel:0 , (1024, 2048), / device:GPU :0
dynamic_seq2seq/decoder/attention/multi_rnn_cell/cell_1/basic_lstm_cell/ bias:0 , (2048,), / device:GPU :0
dynamic_seq2seq/decoder/attention/luong_attention/attention_g:0, (), / device:GPU :0
dynamic_seq2seq/decoder/attention/attention_layer/ kernel:0 , (1536, 512), / device:GPU :0
dynamic_seq2seq/decoder/output_projection/ kernel:0 , (512, 15003),
2018-02-26 18:19:44.862736: I tensorflow/core/platform/cpu_feature_guard.cc:137] 您的 CPU 支持该 TensorFlow 二进制文件未编译使用的指令:SSE4.1 SSE4.2 AVX AVX2 FMA
杀了`
需要运行什么命令以及在哪里运行这些命令以及如何告诉。 我迫切需要帮助。
但这是否意味着系统没有使用 GPU 进行处理?
好吧,如果您在加速环境中构建 tensorflow,例如在 KerasClassifier 中使用 k-fold,则需要解决此问题。
要解决此问题,您需要按照每个人的建议从源代码构建 tensorflow。
要从源代码构建 tensorflow,您需要使用以下工具
只需按照屏幕上的说明完成 tensorflow 安装。
我强烈建议在安装 tensorflow 后更新您的机器
sudo apt-get 更新
祝你好运,享受...
如何使用此文件安装 tensorflow"tensorflow-1.6.0-cp36-cp36m-win_amd64.whl"
@anozele pip3 install --upgrade *path to wheel file*
@gunan --config=opt 还不够,您还应该在从源代码构建 TensorFlow 时添加,例如 --copt="-msse4.2"。
根据英特尔的说法, https: //software.intel.com/en-us/articles/intel-optimization-for-tensorflow-installation-guide ,如果您使用英特尔内置的 Tensorflow,则可以忽略这些警告,因为所有可用的指令集都会由后端 MKL 使用。 Tensorflow 的任何人都可以证实这一点吗?
这不是错误,只是警告说如果您从源代码构建 TensorFlow,它在您的机器上会更快。
但是,它并不比我不使用 -FMA -AVX -SSE 快https://stackoverflow.com/questions/57197854/fma-avx-sse-flags-did-not-bring-me-good-performance
你好。 对不起,如果我正在打败一匹死马。 只是想知道为什么默认的 pip 轮不是使用预先说明编译的二进制文件?
你好。 对不起,如果我正在打败一匹死马。 只是想知道为什么默认的 pip 轮不是使用预先说明编译的二进制文件?
这是因为旧的 CPU 架构不支持高级指令集。 有关支持 AVX、AVX2 或 AVX512 的 CPU 的详细列表,请参阅wiki 。 如果默认的 pip 二进制文件是用这些指令集编译的,那么 tensorflow 就不能在旧的 CPU 上工作。
但这是否意味着系统没有使用 GPU 进行处理?
不,即使您正在使用 GPU,它也会显示,如果您没有将消息静音,您还应该看到 Tensorflor 在命令提示符中加载您的 GPU 设备。
If you check with this repo:
请查看下面代码:
https://github.com/fo40225/tensorflow-windows-wheel
He has compiled almost all version of TF with SSE and AVX
他已经将几乎所有TF版本编译好了!
这篇文章是关于如何从包括标志的源代码构建的好教程
https://medium.com/@pierreontech/setup -a-high-performance-conda-tensorflow-environment-976995158cb1
尝试使用额外的 bazel 选项(如
--copt=-mavx --copt=-msse4.1 --copt=-msse4.2
强制包含适当的扩展
最有用的评论
这不是错误,只是警告说如果您从源代码构建 TensorFlow,它在您的机器上会更快。
关于这个的问题: http :
从源代码构建的 TensorFlow 指南: https :