Python 仮想環境を使う
base 仮想環境の TensorFlow 動作確認
/home/yamada/miniconda3 に tensorflow 2.11.0 とその他必要ファイルがインストールされました。
TensorFlow が動作するか確認します。
yamada@********:~$ conda activate
-c コマンド オプションを利用して起動します。
コマンド として渡された Python の文が実行されます。
コマンド の部分には改行で区切られた複数行を指定することもできます。
(base) yamada@********:~$ python3 -c
"import tensorflow as tf; hello = tf.constant('Hello World'); tf.print(hello)"
2023-05-06 11:12:18.765364: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: SSE4.1 SSE4.2 To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. 2023-05-06 11:12:18.767899: I tensorflow/core/common_runtime/process_util.cc:146] Creating new thread pool with default inter op setting: 2. Tune using inter_op_parallelism_threads for best performance. Hello World
info 付きの実行結果が表示されました。
和訳すると
2023-05-06 11:12:18.765364:
I tensorflow/core/platform/cpu_feature_guard.cc:193]
この TensorFlow バイナリは oneAPI Deep Neural Network Library (oneDNN) で最適化され、
パフォーマンスが重要な操作で次の CPU 命令を使用します。
SSE4.1 SSE4.2
他の操作でそれらを有効にするには、適切なコンパイラフラグを使用して TensorFlow を再構築します。
2023-05-06 11:12:18.767899:
I tensorflow/core/common_runtime/process_util.cc:146]
デフォルトの相互運用設定で新しいスレッド プールを作成しています:
2. 最高のパフォーマンスを得るために inter_op_parallelism_threads を使用して調整します。
この info を見ると tensorflow の CPU 命令は AVX ではなく SSE4.1 SSE4.2 を使用していることがわかります。
inter_op_parallelism_threads が何なのかは私にはわかりません。
TensorFlow 動作確認Ⅱ
TensorFlow が動作するか確認します。
base 環境が無効の状態で確認にします。
(base) yasuhiro@yasuhiro-UB-VB:~$ conda deactivate
yamada@********:~$ python3 -c
"import tensorflow as tf; hello = tf.constant('Hello World'); tf.print(hello)"
結果
Illegal instruction (コアダンプ)
となります。
ルート領域の python3 の tensorflow が AVX 命令を使用したからです。
/home/yamada/miniconda3/bin から導入される python3 の tensorflow は AVX 命令を使用していないので、
この tensorflow を使用するよう指示します。
yamada@********:~$
miniconda3/bin/python3 -c
"import tensorflow as tf; hello = tf.constant('Hello World'); tf.print(hello)"
base 環境が無効でも有効状態と同じ結果を得ることができます。
.py ファイルで tensorflow 動作確認
base 環境が有効の状況で
(base) yamada@********:~$ which python3
として python3 がインスト-ルされているディレクトリ-を見つけておきます。
/home/yamada/miniconda3/bin/python3
に python はインスト-ルされています。
簡単な Python3 tensorflow ファイル tensorflow_test_cnd.py を作成します。
ただ単に、'Hello World'と表示するだけです。
自分の PC Windows で以下の内容の Python ファイルを作成します。
このファイル作成に当たっては
さくら VPS RNN tensorflow 動作確認
が参考になります。
INFO メッセージが出ないようにできます。
環境変数の TF_CPP_MIN_LOG_LEVEL を設定すれば出力されるメッセージを調節できます。
設定値は
0:全てのメッセージが出力される(デフォルト)
1:INFO メッセージが出ない
2:INFO と WARNING が出ない
3:INFO と WARNING と ERROR が出ない
今回は1を設定します。
最初の行に
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='1'
を追加します。
# !/miniconda3/bin/python3 # -*- coding: utf-8 -*- #0:全てのメッセージが出力される(デフォルト)。 #1:INFOメッセージが出ない。 #2:INFOとWARNINGが出ない。 #3:INFOとWARNINGとERRORが出ない。 import os os.environ['TF_CPP_MIN_LOG_LEVEL']='1' import tensorflow as tf hello = tf.constant('Hello World') tf.print(hello) # miniconda3/bin/python3 public_html/tensorflow_test_cnd.py
作成できたらファイル名は適当に tensorflow_test_cnd.py とします。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
この tensorflow_test.py を自分の PC Windows フォルダ
c:\vb_public_html に保存します。
このファイルフォルダはユ-ザ-ディレクトリ
/home/yamada/public_html
にリンクしています。
私の場合、VirtualBox に Ubuntu を構築しているからです。
理解に苦しむ方は
ユ-ザ-ごとの公開ディレクトリを用意する
を読んでください。
そして
/home/yamada/public_html/
のなかにある、tensorflow_test_cnd.py の パミッションを
実行可能 705 にします。
$ cd public_html
$ sudo chmod 705 tensorflow_test_cnd.py
端末画面で
yamada@********:~$ miniconda3/bin/python3 public_html/tensorflow_test_cnd.py
または base 環境を有効にして
(base) yamada@********:~$ python3 public_html/tensorflow_test_cnd.py
とすれば、
Hello WORLD
と表示されるはずです。
最初は 10秒ぐらい時間がかかります。
ここまでで Illegal instruction(コアダンプ)問題は回避することができました。
引き続き、Illegal instruction (コアダンプ) 問題を整理します。