[[220444]] この記事では、TensorFlowの例をいくつか見て、テンソルまた、テンソルを使用して数学を実行するのがいかに簡単かについて、機械学習に関連する他の例もいくつか紹介します。 TensorFlow とは何ですか? TensorFlow は、複雑な数学計算に時間がかかりすぎるという問題を解決するために Google が開発したライブラリです。 実際、TensorFlow では多くのことが可能です。例えば: - 複雑な数式を解く
- 機械学習技術。トレーニング用のデータ サンプル セットを入力し、別のデータ サンプル セットを指定して、トレーニング データに基づいて結果を予測します。これが人工知能だ!
- GPU サポート。より高速な計算のために、CPU の代わりに GPU (グラフィックス プロセッシング ユニット) を使用できます。 TensorFlow には、CPU バージョンと GPU バージョンの 2 つのバージョンがあります。
例を書き始める前に、いくつかの基本的な知識を理解する必要があります。 テンソルとは何ですか?テンソルこれは TensorFlow が使用するメインのデータ ブロックです。変数に似ており、TensorFlow はこれを使用してデータを処理します。テンソルには次元と型の属性があります。 次元とは、テンソルの行と列の数を指します。これは後で説明します。1次元テンソル、2次元テンソル、3次元テンソルを定義できます。 タイプは、テンソル要素のデータ型を指します。 1次元テンソルを定義するテンソルは次のように定義できます。NumPy 配列 (LCTT 翻訳注: NumPy システムは、大規模な行列を格納および処理するために使用される強力な N 次元配列オブジェクト Array を含む、Python のオープン ソース デジタル拡張機能です) または Python リストを作成し、 tf_convert_to_tensor 関数を使用してそれをテンソルに変換します。 次のように NumPy を使用して配列を作成できます。 -
import numpy as np arr = np . array ([ 1 , 5.5 , 3 , 15 , 20 ]) -
arr = np . array ([ 1 , 5.5 , 3 , 15 , 20 ])
実行結果には、この配列の次元と形状が表示されます。 -
import numpy as np -
arr = np . array ([ 1 , 5.5 , 3 , 15 , 20 ]) -
print ( arr ) -
print ( arr . ndim ) -
print ( arr . shape ) -
print ( arr . dtype )
これは Python リストと非常に似ていますが、ここでは要素間にコンマはありません。 次に、 tf_convert_to_tensor 関数を使用してこの配列をテンソルに変換します。 -
import numpy as np -
import tensorflow as tf -
arr = np . array ([ 1 , 5.5 , 3 , 15 , 20 ]) -
tensor = tf . convert_to_tensor ( arr , tf . float64 ) -
print ( tensor )
今回は実行結果にテンソルの具体的な意味は表示されますが、テンソルの要素は表示されません。 テンソル要素を確認するには、次のようなセッションを実行します。 -
import numpy as np -
import tensorflow as tf -
arr = np . array ([ 1 , 5.5 , 3 , 15 , 20 ]) -
tensor = tf . convert_to_tensor ( arr , tf . float64 ) -
sess = tf . Session () -
print ( sess . run ( tensor )) -
print ( sess . run ( tensor [ 1 ]))
2次元テンソルを定義する2 次元テンソルを定義する方法は 1 次元テンソルを定義する方法と同じですが、配列は次のように定義する必要があります。 -
arr = np . array ([( 1 , 5.5 , 3 , 15 , 20 ),( 10 , 20 , 30 , 40 , 50 ), ( 60 , 70 , 80 , 90 , 100 )])
次にそれをテンソルに変換します。 -
import numpy as np -
import tensorflow as tf -
arr = np . array ([( 1 , 5.5 , 3 , 15 , 20 ),( 10 , 20 , 30 , 40 , 50 ), ( 60 , 70 , 80 , 90 , 100 )]) -
tensor = tf . convert_to_tensor ( arr ) -
sess = tf . Session () -
print ( sess . run ( tensor ))
テンソルを定義する方法はわかりましたが、テンソル間の数学演算はどのように実行するのでしょうか? テンソルに対する数学演算の実行次の 2 つの配列があるとします。 -
arr1 = np . array ([( 1 , 2 , 3 ),( 4 , 5 , 6 )]) -
arr2 = np . array ([( 7 , 8 , 9 ),( 10 , 11 , 12 )])
TenserFlow を使用すると、さまざまな数学演算を実行できます。ここで、これら 2 つの配列を合計する必要があります。 加算関数を使用して合計を計算します。 -
import numpy as np -
import tensorflow as tf -
arr1 = np . array ([( 1 , 2 , 3 ),( 4 , 5 , 6 )]) -
arr2 = np . array ([( 7 , 8 , 9 ),( 10 , 11 , 12 )]) -
arr3 = tf . add ( arr1 , arr2 ) -
sess = tf . Session () -
tensor = sess . run ( arr3 ) -
print ( tensor )
配列を乗算することもできます。 -
import numpy as np -
import tensorflow as tf -
arr1 = np . array ([( 1 , 2 , 3 ),( 4 , 5 , 6 )]) -
arr2 = np . array ([( 7 , 8 , 9 ),( 10 , 11 , 12 )]) -
arr3 = tf . multiply ( arr1 , arr2 ) -
sess = tf . Session () -
tensor = sess . run ( arr3 ) -
print ( tensor )
今、あなたは知っています。 3Dテンソル1 次元テンソルと 2 次元テンソルの使い方はすでにわかっています。次に、3 次元テンソルを見てみましょう。ただし、今回は数値ではなく、RGB 画像を使用します。この画像では、各ピクセルは x、y、z の組み合わせで表されます。 これらが組み合わさって、画像の幅、高さ、色深度が形成されます。 まず、matplotlib ライブラリを使用して画像をインポートします。システムに matplotlib がインストールされていない場合は、pip を使用してインストールできます。 画像を Python ファイルと同じディレクトリに置き、matplotlib を使用して画像をインポートします。 -
import matplotlib . image as img -
myfile = "likegeeks.png" -
myimage = img . imread ( myfile ) -
print ( myimage . ndim ) -
print ( myimage . shape )
実行結果から、この 3D 画像の幅は 150、高さは 150、色深度は 3 であることがわかります。 この写真もご覧いただけます: -
import matplotlib . image as img -
import matplotlib . pyplot as plot -
myfile = "likegeeks.png" -
myimage = img . imread ( myfile ) -
plot . imshow ( myimage ) -
plot . show ()
とてもクール! では、TensorFlow を使用して画像を処理するにはどうすればよいでしょうか?とても簡単です。 TensorFlow を使用して画像を生成または切り取るまず、プレースホルダーに値を割り当てます。 -
myimage = tf . placeholder ( "int32" ,[ None , None , 3 ])
トリミング操作を使用して画像をトリミングします。 -
cropped = tf . slice ( myimage ,[ 10 , 0 , 0 ],[ 16 ,- 1 ,- 1 ])
***、このセッションを実行します: -
result = sess . run ( cropped , feed\_dict ={ slice : myimage })
すると、matplotlib を使用して処理された画像が表示されます。 コード全体は次のとおりです。 -
import tensorflow as tf -
import matplotlib . image as img -
import matplotlib . pyplot as plot -
myfile = "likegeeks.png" -
myimage = img . imread ( myfile ) -
slice = tf . placeholder ( "int32" ,[ None , None , 3 ]) -
cropped = tf . slice ( myimage ,[ 10 , 0 , 0 ],[ 16 ,- 1 ,- 1 ]) -
sess = tf . Session () -
result = sess . run ( cropped , feed_dict ={ slice : myimage }) -
plot . imshow ( result ) -
plot . show ()
すごいですよね? TensorFlow を使用した画像の変換この例では、TensorFlow を使用して簡単な変換を行います。 まず、処理する画像を指定し、TensorFlow 変数の値を初期化します。 -
myfile = "likegeeks.png" -
myimage = img . imread ( myfile ) -
image = tf . Variable ( myimage , name = 'image' ) -
vars = tf . global_variables_initializer ()
次に、入力グリッドの 0 軸と 1 軸を反転するために使用される転置関数を呼び出します。 -
sess = tf . Session () -
flipped = tf . transpose ( image , perm =[ 1 , 0 , 2 ]) -
sess . run ( vars ) -
result = sess . run ( flipped )
すると、matplotlib を使用して処理された画像が表示されます。 -
import tensorflow as tf -
import matplotlib . image as img -
import matplotlib . pyplot as plot -
myfile = "likegeeks.png" -
myimage = img . imread ( myfile ) -
image = tf . Variable ( myimage , name = 'image' ) -
vars = tf . global_variables_initializer () -
sess = tf . Session () -
flipped = tf . transpose ( image , perm =[ 1 , 0 , 2 ]) -
sess . run ( vars ) -
result = sess . run ( flipped ) -
plot . imshow ( result ) -
plot . show ()
上記の例では、TensorFlow の使用がいかに簡単であるかを示しました。 |