こんにちは、うしまる(@usitubo)です。
今回はVSCodeとPythonを使ってTensorFlowでサンプルを動かすところまでやってみましょう。
TensorFlowとは?
まずは、TensorFlowとはなんぞやというところから見ていきましょう。
TensorFlowは、機械学習向けに開発されたオープンソースプラットフォームで、顔認識・画像認識・音声認識・画像検索・Web検索・自動運転など幅広い分野に利用することが可能となっています。
ニューラルネットワーク、ディープラーニングを用いた計算を行うために使われ、中身はC++でPythonで使えるようなインターフェースが準備されています。
実際に検索エンジンで西洋諸国の首位を独創するGoogleでも使われている人工知能「RankBrain」にもこの技術が使われます。
ちなみに「RankBrain」は、Googleの検索エンジンへ使われています。ユーザが入力した検索キーワードに対して本当にユーザが知りたい情報はなにかを判別し、適切な検索結果を表示されることに寄与しています。
ということで巷でSEO対策って呼ばれているのはこの人工知能に、いかにみんなが検索しそうなワードに対して、自分の記事なりサイトなりが上位へ来るようにすることになりますね。
TensorFlowを使ってみよう!
Step1:前準備をしよう
まずは、下準備をしていきます!
VSCodeとPythonの環境を整えていきましょう。
導入がすでに済んでいる方はこちらはスキップしてください。
手順1:VSCodeをインストールしよう
まずは、VSCodeをインストールしましょう。VSCodeは、マイクロソフトが提供しているプログラミング用の高機能テキストエディタです。
インストール方法はこちらの記事を参考するようにしてください。
手順2:VSCodeへPython環境を設定しよう
続いてVSCodeへPython環境をインストールしていきましょう。
Pythonの導入しているのでは、こちらの記事になりますので参考にしてみてください。
Step2:Anaconda3とCUDAの環境を導入しよう
次はAnacondaとCUDAの環境をWindowsへ導入していきます。
導入がすでに済んでいる方はこちらはスキップしてください。
手順1:Anaconda3をWindowsへインストールしてみよう
WindowsへAnaconda3をインストールしていきます。
インストールの方法はこちらの記事を参考にしてみてください。
Numpyの導入前まで設定してもらえればこの先を進めます。
手順2:CUDA環境をインストールしてみよう
続いてWindowsPCへCUDAの環境を導入してみましょう。CUDAとはNVIDIA製のGPUを使ってより高速な計算処理を行うためのライブラリになります。今回はNVIDIA製GPUのRTX2070Superを使って動作させていくのでこの手順が必須になります。
導入方法をはこちらの記事で解説していますので参考にしてみてください。
ちなみに未検証ではありますが、どうもVSCodeではこのときにインストールされるDLLが必要みたいですのでおそらくどちらにしても必要??
Step3:TensorFlowをインストールする
いよいよTensorFlowをインストールしますよ
ここからが本番です!!
手順1:Anaconda Navigatorを開く
最初にAnaconda Navigatorを開きましょう。Windowsボタンもしくは、画面下部にある”ここに入力して検索”へ「Anaconda Navigator」と入力すると”Anaconda Navigator(anaconda3)”というのが出てきますのでクリックしましょう。
手順2:コンソールを起動する
Anaconda Navigatorを開いたら左サイドのメニューから[Environments]>[準備した環境]の▶>[Open Terminal]をクリックしましょう。
こんな感じの画面が表示されたら完了です。
手順3:pipを使ってTensorFlowをインストール
pip install tensorflow
コマンドラインに上の文言を入れてみてください。
入力が終わったら[Enter]ボタンをクリックします。
こんな感じでインストールが開始されます。
コマンドラインの応答が返ってきたら完了です。
手順4:インストール結果の確認
続いてインストールが正しくできているか確認していきます。画像では先にやっちゃっていますが、確認するときは
python -c “import tensorflow as tf; print(tf.__version__)”
これを実行した結果
2.3.0のようにバージョンが表示されたら成功です。表示されない場合は再度インストールを試してみてください。
Step4:TensorFlowでサンプルプログラムを動かしてみる
これでTensorFlowの実行環境が整いました。
今回は公式のサンプルプログラムを動かしてみましょう。
ソースはこちらから参照しました→https://github.com/tensorflow/docs-l10n/blob/master/site/ja/tutorials/quickstart/beginner.ipynb
import tensorflow as tf #MNISTデータセットをロード mnist = tf.keras.datasets.mnist #サンプルを整数型→浮動小数点数に変換 (x_train, y_train), (x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0 #層を積み重ねてモデルを構築 model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10) ]) #モデルをベースにクラスごとにロジット/対数オッズ比のスコアを算出 predictions = model(x_train[:1]).numpy() #クラス毎にロジットの確率へ変換 tf.nn.softmax(predictions).numpy() #標本についてクラスごとに損失のスカラーを返す loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True) #クラスの正しい確率の対数をとって符号を反転 loss_fn(y_train[:1], predictions).numpy() #未訓練モデルはランダムに近い確率を出力 model.compile(optimizer='adam', loss=loss_fn, metrics=['accuracy']) #損失を最小化するようにモデルのパラメータ調整 model.fit(x_train, y_train, epochs=5) #モデル性能を検査 model.evaluate(x_test, y_test, verbose=2) probability_model = tf.keras.Sequential([ model, tf.keras.layers.Softmax() ]) probability_model(x_test[:5])
では、VSCodeで動かしてみましょう!
訓練した結果、この画像識別機は、データセットにおける正解率97.64%となりました。
最後に
この記事ではPython環境の構築からAnacondaとCUDA、TensorFlowを導入、実施するところまでやってみました。
色々とTensorFlowでできることを試していきたいですね。
では、今回はこのへんでノシ