[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
質問
TensorFlowの初心者です。最近インストールしたのですが(Windows CPU版)、以下のようなメッセージが表示されました。
tensorflow-1.4.0 tensorflow-tensorboard-0.4.0rc2 のインストールに成功しました。
そして、実行しようとすると
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
sess.run(hello)
'Hello, TensorFlow!'
a = tf.constant(10)
b = tf.constant(32)
sess.run(a + b)
42
sess.close()
(これは、私が https://github.com/tensorflow/tensorflow )
次のようなメッセージが表示されました。
2017-11-02 01:56:21.698935: I C:\tf_jenkins_home_workspace﹑Windows﹑PY36﹑tensorflow﹑cpu_feature_guard.cc:137]. お使いの CPU は、この TensorFlow バイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
しかし、実行すると
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
は正常に実行され、次のように出力されました。
Hello, TensorFlow!
これは、インストールは確かに成功したが、他に何か問題があることを示しています。
何が問題なのか、どうすれば解決するのか、わかりますか?
解決方法は?
この警告は何についてですか?
最近のCPUは、通常の算術演算や論理演算の他に、SSE2、SSE4、AVXなど、拡張命令と呼ばれる低レベルの命令を数多く提供しています。より ウィキペディア :
高度なベクター拡張機能 ( AVX は、x86命令の拡張機能です。 インテルとAMDのマイクロプロセッサ用セット・アーキテクチャで 2008年3月にインテルが発表し、インテルがサンディ・コーポレーションで初めてサポートしました。 ブリッジ・プロセッサは2011年第1四半期に出荷され、その後AMDが出荷しています。 2011年第3四半期に出荷されたBulldozerプロセッサ。AVXは新しい機能を提供します。 新しい命令と新しいコーディングスキーム
特に、AVXは以下のものを導入しています。 フューズド・マルチプル・アキュムレート (FMA)演算は、ドットプロダクト・マトリクスマルチプライス・コンボリューションなどの線形代数計算を高速化するものである。ほぼ全ての機械学習において、これらの演算が多用されるため、AVXとFMAをサポートするCPUでは高速化(最大300%)することが可能です。警告は、あなたのCPUがAVXをサポートしていることを示しています(万歳!)。
ここで強調しておきたいのは、すべては CPUのみ .
では、なぜ使われないのでしょうか?
tensorflowのデフォルトディストリビューションがビルドされているため
CPU拡張なし
SSE4.1、SSE4.2、AVX、AVX2、FMAなどのような。デフォルトのビルドは
pip install tensorflow
) は、できるだけ多くのCPUに対応することを目的としています。また、これらの拡張を行ったとしても、CPUはGPUに比べてかなり遅く、中・大規模な機械学習の学習はGPUで行うことが想定されている、ということもあります。
どうすればいいのか?
GPUをお持ちの場合 なぜなら、ほとんどの高価な処理は GPU デバイスでディスパッチされるからです (明示的にそうしないように設定されている場合を除く)。この場合、次の方法でこの警告を無視することができます。
# Just disables the warning, doesn't take advantage of AVX/FMA to run faster
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
... あるいは
export TF_CPP_MIN_LOG_LEVEL=2
Unixの場合。Tensorflowはいずれにせよ正常に動作していますが、このような煩わしい警告は表示されません。
GPUを搭載していない場合 で、なるべくCPUを活用したい。 に最適化されたソースからtensorflowをビルドする必要があります。 あなたの CPU AVX、AVX2、FMAをサポートしているCPUであれば有効にしてください。これは、以下のサイトで説明されています。 この質問 また このGitHubの課題 . Tensorflow は、以下のようなアドホックなビルドシステムを使用しています。 バゼル で、ビルドはそれほど簡単ではありませんが、確実に実行可能です。この後、警告が消えるだけでなく、tensorflowのパフォーマンスも改善されるはずです。
関連
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み] データ型が理解できない
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み] Tensorflow 2.0 - AttributeError: module 'tensorflow' has no attribute 'Session'.
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Python関数の高度な応用を解説
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
python implement mysql add delete check change サンプルコード
-
Python入門 openを使ったファイルの読み書きの方法
-
PythonによるExcelファイルの一括操作の説明
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].