Running tensorflow program prompts Your CPU supports instructions that this TensorFlow binary was not compiled to use:
tensorflowプログラムを実行すると、「Your CPU supports instructions that this TensorFlow binary was not compiled to use」と表示されます。AVX2 FMA
質問
今日、tensorflowのプログラムを実行していたら、このような問題が
<マーク おそらく、あなたのCPUはAVX拡張をサポートしているが、インストールしたTensorFlowのバージョンはAVX用にコンパイルされていないことを意味します。
理由を教えてください。
最近のCPUには、通常の演算や論理に加えて、SSE2、SSE4、AVXなど、拡張命令と呼ばれる低レベルの命令が多数用意されている。ウィキペディアより
AVX(Advanced Vector Extensions)は、2008年3月にインテルが提案し、2011年第1四半期にインテルがSandy Bridgeプロセッサ、2011年第3四半期にAMDがBulldozerプロセッサを通じて初めて導入した、インテルおよびAMDマイクロプロセッサのx86命令セットアーキテクチャに対する拡張機能であり、新たな機能、新しい命令および新しいエンコーディングスキームを提供します。
特にAVXは、ドット積、行列の乗算、畳み込みなどの線形代数計算を高速化するFMA(fused multiplicative accumulation)演算を導入しています。ほぼすべての機械学習トレーニングは、これらの演算を多く含むため、AVXとFMA(最大300%)をサポートするCPUは高速です。この警告は、お使いのCPUがAVXをサポートしていることを示しています(万歳!)。
ここで強調したいのは
これはCPU専用です。GPUを持っている場合、ほとんどの高価な操作はGPUデバイスに割り当てられるので(明示的に設定しない限り)、AVXのサポートは気にする必要はないでしょう。その場合、この警告を単に無視すればよいのです。
では、なぜこのような警告が表示されるのでしょうか。
デフォルトのtensorflowの配布は、SSE4.1、SSE4.2、AVX、AVX2、FMAなどのCPU拡張を行わずにビルドされているので。デフォルトのバージョン(pip install tensorflowによるもの)は、できるだけ多くのCPUと互換性があるように意図されています。もう一つのポイントは、これらの拡張機能を使っても、CPUはGPUよりずっと遅く、中・大規模な機械学習の学習はGPUで行うことを想定していることです。
解決策
- GPU版がインストールされている場合
GPUを持っている場合、ほとんどの高価な操作はGPUデバイスに割り当てられるので(明示的に設定されていない限り)、AVXサポートについて気にする必要はありません。その場合、この警告を無視すればよいのです。
インポート os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' です。
- CPU版がインストールされている場合(pip install tensorflow)
1. 以下のコードを追加して、警告を無視します。
インポート os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' です。
2. TensorFlowのソースコードをコンパイルします。
GPUを持っておらず、できるだけCPUを活用したい場合、もしCPUがAVX、AVX2、FMAをサポートしているなら、CPUに最適化されたソースからtensorflowをビルドするべきです。これについては、このGitHub issueと同様に、このissueで説明されています。Tensorflowはbazelというアドホックなビルドシステムを使っており、ビルドはそれほど簡単ではありませんが、確実に実行可能です。この後、警告が消えるだけでなく、tensorflowのパフォーマンスも改善されるはずです。
参考ブログ記事
著者 タオは、プログラミングを学ぶためにあなたを取る
出典 CSDN
元の記事
https://blog.csdn.net/hq86937375/article/details/79696023
関連
-
undefined警告 お使いのCPUは、このTensorFlowバイナリが使用するためにコンパイルされていない命令をサポートしています。AVX2
-
undefinedtensorflowお使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX2
-
undefinedエラーを解決してください。お使いのCPUは、このTensorFlowバイナリが使用するためにコンパイルされていない命令をサポートしています。AVX AVX2
-
EnvironmentErrorのため、パッケージをインストールできませんでした。[Errno 13] パーミッションが拒否された問題を解決しました。
-
TensorFlowの問題:AttributeError:'NoneType'オブジェクトには'dtype'という属性がない。
-
Tensorflowのexamples.tutorials.mnistにあるinput_dataデータクラスの簡単な分析
-
tensorflow Solutionに一致するディストリビューションは見つかりませんでした。
-
tf.get_variable_scope() 共通の使用法
-
GPU版TensorFlowの正常なインストールをテストします。
-
TensorFlow学習 - Tensorflowオブジェクト検出API (win10, CPU)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン