前書き

TensorFlowは、ニューラルネットワークのトレーニングに使用されるオープンソースの機械学習ソフトウェアです。TensorFlowのニューラルネットワークは、https://www.tensorflow.org/programmers_guide/graphs [statefulデータフローグラフ]。 グラフの各ノードは、多次元配列でニューラルネットワークによって実行される操作を表します。 これらの多次元配列は一般に「テンソル」として知られているため、TensorFlowと呼ばれています。

TensorFlowはhttps://en.wikipedia.org/wiki/Deep_learning [ディープラーニング]ソフトウェアシステムです。 Googleが機械学習人工知能システムhttps://en.wikipedia.org/wiki/RankBrain[RankBrain]で検索ランキングを行う方法で実証されているように、情報の取得に適しています。 TensorFlowは、Googleのhttps://arxiv.org/abs/1409.4842[Inception]に示されている画像認識と、人間の言語による音声認識を実行できます。 https://www.tensorflow.org/tutorials/pdes [偏微分方程式]など、機械学習に固有ではない他の問題の解決にも役立ちます。

TensorFlowアーキテクチャにより、デスクトップ、サーバー、またはモバイルデバイス内の複数のCPUまたはGPUに展開できます。 Nvidiaの並列コンピューティングプラットフォームであるhttps://developer.nvidia.com/cuda-zone[CUDA]と統合するための拡張機能もあります。 これにより、GPUにデプロイしているユーザーは、並列計算タスクに必要な仮想命令セットおよびGPUの他の要素に直接アクセスできます。

このチュートリアルでは、TensorFlowの「CPUサポートのみ」バージョンをインストールします。 このインストールは、TensorFlowをインストールして使用したいが、Nvidiaグラフィックカードを持っていないか、パフォーマンスが重要なアプリケーションを実行する必要がない人に最適です。

TensorFlowはいくつかの方法でインストールできます。 各メソッドには、異なるユースケースと開発環境があります。

  • * PythonおよびVirtualenv *:このアプローチでは、TensorFlowおよびPython仮想環境でTensorFlowを使用するために必要なすべてのパッケージをインストールします。 これにより、TensorFlow環境が同じマシン上の他のPythonプログラムから分離されます。

  • *ネイティブpip *:この方法では、システムにTensorFlowをグローバルにインストールします。 これは、マルチユーザーシステム上のすべての人がTensorFlowを利用できるようにする場合に推奨されます。 このインストール方法は、含まれる環境でTensorFlowを分離せず、他のPythonインストールまたはライブラリに干渉する可能性があります。

  • * Docker *:Dockerはコンテナーランタイム環境であり、システム上の既存のパッケージからその内容を完全に分離します。 このメソッドでは、TensorFlowとそのすべての依存関係を含むDockerコンテナーを使用します。 この方法は、Dockerを既に使用しているより大きなアプリケーションアーキテクチャにTensorFlowを組み込むのに理想的です。 ただし、Dockerイメージのサイズは非常に大きくなります。

このチュートリアルでは、 `+ virtualenv +`を使用してTensorFlowをPython仮想環境にインストールします。 このアプローチにより、TensorFlowインストールが分離され、すぐに起動して実行されます。 インストールが完了したら、短いTensorFlowプログラムを実行してインストールを検証し、TensorFlowを使用して画像認識を実行します。

前提条件

このチュートリアルを始める前に、次のものが必要です。

  • Ubuntu 18.04初期サーバーセットアップガイドに従ってセットアップされた、1GB以上のRAMを備えた1つのUbuntu 18.04サーバー、sudoの非ルートユーザーとファイアウォールを含みます。 このチュートリアルの最後の例を正常に実行するには、少なくとも1GBのRAMが必要です。

  • Python 3.3以降および `+ virtualenv `がインストールされている。 https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-programming-environment-on-an-ubuntu-18-04-server[How Python 18.3をUbuntu 18.04にインストールして、Pythonと ` virtualenv +`を設定します。

  • Gitがインストールされています。これは、https://www.digitalocean.com/community/tutorials/how-to-install-git-on-ubuntu-18-04 [Ubuntu 18.04にGitをインストールする方法]に従って実行できます。 これを使用して、サンプルのリポジトリをダウンロードします。

ステップ1-TensorFlowのインストール

このステップでは、仮想環境を作成し、TensorFlowをインストールします。

まず、プロジェクトディレクトリを作成します。 デモンストレーションのために「+ tf-demo +」と呼びますが、わかりやすいディレクトリ名を選択してください。

mkdir ~/

新しく作成した `+ tf-demo +`ディレクトリに移動します:

cd ~/

次に、たとえば、「+ tensorflow-dev +」という新しい仮想環境を作成します。 次のコマンドを実行して環境を作成します。

python3 -m venv

これにより、この環境がアクティブ化されている間にインストールするすべてのパッケージが含まれる新しい `+ tensorflow-dev `ディレクトリが作成されます。 また、 ` pip +`とスタンドアロンバージョンのPythonも含まれています。

次に、仮想環境をアクティブにします。

source /bin/activate

アクティベートされると、ターミナルに次のようなものが表示されます。

()[email protected]:~/tf-demo $

これで、仮想環境にTensorFlowをインストールできます。

次のコマンドを実行して、https://pypi.python.org/pypi [PyPi]で利用可能なTensorFlowの最新バージョンをインストールしてアップグレードします。

pip install --upgrade tensorflow

TensorFlowがインストールされ、依存パッケージとともにインストールが成功したことを示す出力が表示されます。

Output...
Successfully installed absl-py-0.7.1 astor-0.7.1 gast-0.2.2 grpcio-1.19.0 h5py-2.9.0 keras-applications-1.0.7 keras-preprocessing-1.0.9 markdown-3.0.1 mock-2.0.0 numpy-1.16.2 pbr-5.1.3 protobuf-3.7.0 setuptools-40.8.0 tensorboard-1.13.1 tensorflow-1.13.1 tensorflow-estimator-1.13.0 termcolor-1.1.0 werkzeug-0.15.0 wheel-0.33.1
...

Successfully installed bleach-1.5.0 enum34-1.1.6 html5lib-0.9999999 markdown-2.6.9 numpy-1.13.3 protobuf-3.5.0.post1 setuptools-38.2.3 six-1.11.0 tensorflow-1.4.0 tensorflow-tensorboard-0.4.0rc3 werkzeug-0.12.2 wheel-0.30.0

TensorFlowをインストールしたので、TensorFlowのインストールが機能することを確認しましょう。

ステップ2-インストールの検証

TensorFlowのインストールを検証するために、非ルートユーザーとしてTensorFlowで簡単なプログラムを実行します。 検証の形式として、「Hello、world!」の標準的な初心者の例を使用します。 Pythonファイルを作成するのではなく、https://www.digitalocean.com/community/tutorials/how-to-work-with-the-python-interactive-console [Pythonのインタラクティブコンソール]を使用してこのプログラムを作成します。

プログラムを作成するには、Pythonインタープリターを起動します。

python

端末に次のプロンプトが表示されます。

>>>

これはPythonインタープリターのプロンプトであり、Pythonステートメントの入力を開始する準備ができていることを示しています。

まず、この行を入力してTensorFlowパッケージをインポートし、ローカル変数 `+ tf `として使用できるようにします。 コードの行を入力した後、 ` ENTER`を押します:

import tensorflow as tf

次に、次のコード行を追加して、メッセージ「Hello、world!」を設定します。

hello = tf.constant("Hello, world!")

次に、新しいTensorFlowセッションを作成し、それを変数 `+ sess +`に割り当てます。

sess = tf.Session()

最後に、次のコード行を入力して、前のコード行で作成した + hello + TensorFlowセッションの実行結果を出力します。

Python 3では、 + sess.run()+`はバイト文字列を返し、 `+ print(sess.run(hello))+を実行すると + b’Hello、world! ‘+ `としてレンダリングされます。 `単独。 `+ Hello、world!`を文字列として返すために、 ` decode()+`メソッドを追加しましょう。

print(sess.run(hello).decode())

コンソールに次の出力が表示されます。

OutputHello, world!

これは、すべてが機能しており、TensorFlowの使用を開始できることを示しています。

`+ CTRL + D `を押すか、 ` quit()+`を入力して、Pythonインタラクティブコンソールを終了します。

次に、TensorFlowの画像認識APIを使用して、TensorFlowをさらに理解しましょう。

ステップ3-TensorFlowを使用した画像認識

TensorFlowがインストールされ、簡単なプログラムを実行して検証したので、TensorFlowの画像認識機能を確認できます。

画像を分類するには、モデルをトレーニングする必要があります。 次に、モデルを使用するためのコードを記述する必要があります。 機械学習の概念の詳細については、「https://www.digitalocean.com/community/tutorials/an-introduction-to-machine-learning [機械学習入門]」を読むことを検討してください。

TensorFlowは、https://github.com/tensorflow/models [モデルとサンプルのリポジトリ]を提供します。これには、画像を分類するためのコードとトレーニングモデルが含まれます。

Gitを使用して、TensorFlowモデルリポジトリをGitHubからプロジェクトディレクトリにクローンします。

git clone https://github.com/tensorflow/models.git

Gitがリポジトリを「+ models +」という新しいフォルダーにチェックアウトすると、次の出力が表示されます。

OutputCloning into 'models'...
remote: Enumerating objects: 32, done.
remote: Counting objects: 100% (32/32), done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 24851 (delta 17), reused 12 (delta 6), pack-reused 24819
Receiving objects: 100% (24851/24851), 507.78 MiB | 32.73 MiB/s, done.
Resolving deltas: 100% (14629/14629), done.
Checking out files: 100% (2858/2858), done.

`+ models / tutorials / image / imagenet +`ディレクトリに切り替えます:

cd models/tutorials/image/imagenet

このディレクトリには、TensorFlowを使用して画像を認識する `+ classify_image.py `ファイルが含まれています。 このプログラムは、最初の実行時に訓練されたモデルを ` tensorflow.org +`からダウンロードします。 このモデルをダウンロードするには、ディスク上に200MBの空き容量が必要です。

この例では、https://www.tensorflow.org/images/cropped_pa​​nda.jpg [事前に提供されたパンダの画像]を分類します。 このコマンドを実行して、画像分類プログラムを実行します。

python classify_image.py

次のような出力が表示されます。

Outputgiant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (score = 0.89107)
indri, indris, Indri indri, Indri brevicaudatus (score = 0.00779)
lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (score = 0.00296)
custard apple (score = 0.00147)
earthstar (score = 0.00117)

TensorFlowの画像認識機能を使用して最初の画像を分類しました。

別の画像を使用したい場合は、 `+ python- classify_image.py `コマンドに `-image_file +`引数を追加してこれを行うことができます。 引数には、画像ファイルの絶対パスを渡します。

結論

このチュートリアルでは、Python仮想環境にTensorFlowをインストールし、いくつかの例を実行してTensorFlowが機能することを検証しました。 これで、https://en.wikipedia.org/wiki/Convolutional_neural_network [Convolutional Neural Networks]およびhttps://papers.nips.cc/paper/5021-distributed-単語とフレーズと組成の表現.pdf [単語の埋め込み]。

TensorFlowのhttps://www.tensorflow.org/programmers_guide/[programmer’s guide]は、TensorFlow開発に役立つリソースとリファレンスを提供します。 また、https://www.kaggle.com/ [Kaggle]を探索することもできます。これは、他の機械学習、データサイエンス、および統計愛好家と戦う機械学習の概念を実際に適用するための競争環境です。 堅牢なhttps://www.kaggle.com/wiki/Home[wiki]を使用して、ソリューションを探索および共有できます。その一部は、統計および機械学習技術の最先端にあります。