TensorFlowに関する簡単な例

TensorFlowに関する簡単な例

[[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 を使用して配列を作成できます。

  1. import numpy as np arr = np . array ([ 1 , 5.5 , 3 , 15 , 20 ])
  2. arr = np . array ([ 1 , 5.5 , 3 , 15 , 20 ])

実行結果には、この配列の次元と形状が表示されます。

  1. import numpy as np
  2. arr = np . array ([ 1 , 5.5 , 3 , 15 , 20 ])
  3. print ( arr )
  4. print ( arr . ndim )
  5. print ( arr . shape )
  6. print ( arr . dtype )

これは Python リストと非常に似ていますが、ここでは要素間にコンマはありません。

次に、 tf_convert_to_tensor関数を使用してこの配列をテンソルに変換します。

  1. import numpy as np
  2. import tensorflow as tf
  3. arr = np . array ([ 1 , 5.5 , 3 , 15 , 20 ])
  4. tensor = tf . convert_to_tensor ( arr , tf . float64 )
  5. print ( tensor )

今回は実行結果にテンソルの具体的な意味は表示されますが、テンソルの要素は表示されません。

テンソル要素を確認するには、次のようなセッションを実行します。

  1. import numpy as np
  2. import tensorflow as tf
  3. arr = np . array ([ 1 , 5.5 , 3 , 15 , 20 ])
  4. tensor = tf . convert_to_tensor ( arr , tf . float64 )
  5. sess = tf . Session ()
  6. print ( sess . run ( tensor ))
  7. print ( sess . run ( tensor [ 1 ]))

2次元テンソルを定義する

2 次元テンソルを定義する方法は 1 次元テンソルを定義する方法と同じですが、配列は次のように定義する必要があります。

  1. arr = np . array ([( 1 , 5.5 , 3 , 15 , 20 ),( 10 , 20 , 30 , 40 , 50 ), ( 60 , 70 , 80 , 90 , 100 )])

次にそれをテンソルに変換します。

  1. import numpy as np
  2. import tensorflow as tf
  3. arr = np . array ([( 1 , 5.5 , 3 , 15 , 20 ),( 10 , 20 , 30 , 40 , 50 ), ( 60 , 70 , 80 , 90 , 100 )])
  4. tensor = tf . convert_to_tensor ( arr )
  5. sess = tf . Session ()
  6. print ( sess . run ( tensor ))

テンソルを定義する方法はわかりましたが、テンソル間の数学演算はどのように実行するのでしょうか?

テンソルに対する数学演算の実行

次の 2 つの配列があるとします。

  1. arr1 = np . array ([( 1 , 2 , 3 ),( 4 , 5 , 6 )])
  2. arr2 = np . array ([( 7 , 8 , 9 ),( 10 , 11 , 12 )])

TenserFlow を使用すると、さまざまな数学演算を実行できます。ここで、これら 2 つの配列を合計する必要があります。

加算関数を使用して合計を計算します。

  1. import numpy as np
  2. import tensorflow as tf
  3. arr1 = np . array ([( 1 , 2 , 3 ),( 4 , 5 , 6 )])
  4. arr2 = np . array ([( 7 , 8 , 9 ),( 10 , 11 , 12 )])
  5. arr3 = tf . add ( arr1 , arr2 )
  6. sess = tf . Session ()
  7. tensor = sess . run ( arr3 )
  8. print ( tensor )

配列を乗算することもできます。

  1. import numpy as np
  2. import tensorflow as tf
  3. arr1 = np . array ([( 1 , 2 , 3 ),( 4 , 5 , 6 )])
  4. arr2 = np . array ([( 7 , 8 , 9 ),( 10 , 11 , 12 )])
  5. arr3 = tf . multiply ( arr1 , arr2 )
  6. sess = tf . Session ()
  7. tensor = sess . run ( arr3 )
  8. print ( tensor )

今、あなたは知っています。

3Dテンソル

1 次元テンソルと 2 次元テンソルの使い方はすでにわかっています。次に、3 次元テンソルを見てみましょう。ただし、今回は数値ではなく、RGB 画像を使用します。この画像では、各ピクセルは x、y、z の組み合わせで表されます。

これらが組み合わさって、画像の幅、高さ、色深度が形成されます。

まず、matplotlib ライブラリを使用して画像をインポートします。システムに matplotlib がインストールされていない場合は、pip を使用してインストールできます。

画像を Python ファイルと同じディレクトリに置き、matplotlib を使用して画像をインポートします。

  1. import matplotlib . image as img
  2. myfile = "likegeeks.png"
  3. myimage = img . imread ( myfile )
  4. print ( myimage . ndim )
  5. print ( myimage . shape )

実行結果から、この 3D 画像の幅は 150、高さは 150、色深度は 3 であることがわかります。

この写真もご覧いただけます:

  1. import matplotlib . image as img
  2. import matplotlib . pyplot as plot
  3. myfile = "likegeeks.png"
  4. myimage = img . imread ( myfile )
  5. plot . imshow ( myimage )
  6. plot . show ()

とてもクール!

では、TensorFlow を使用して画像を処理するにはどうすればよいでしょうか?とても簡単です。

TensorFlow を使用して画像を生成または切り取る

まず、プレースホルダーに値を割り当てます。

  1. myimage = tf . placeholder ( "int32" ,[ None , None , 3 ])

トリミング操作を使用して画像をトリミングします。

  1. cropped = tf . slice ( myimage ,[ 10 , 0 , 0 ],[ 16 ,- 1 ,- 1 ])

***、このセッションを実行します:

  1. result = sess . run ( cropped , feed\_dict ={ slice : myimage })

すると、matplotlib を使用して処理された画像が表示されます。

コード全体は次のとおりです。

  1. import tensorflow as tf
  2. import matplotlib . image as img
  3. import matplotlib . pyplot as plot
  4. myfile = "likegeeks.png"
  5. myimage = img . imread ( myfile )
  6. slice = tf . placeholder ( "int32" ,[ None , None , 3 ])
  7. cropped = tf . slice ( myimage ,[ 10 , 0 , 0 ],[ 16 ,- 1 ,- 1 ])
  8. sess = tf . Session ()
  9. result = sess . run ( cropped , feed_dict ={ slice : myimage })
  10. plot . imshow ( result )
  11. plot . show ()

すごいですよね?

TensorFlow を使用した画像の変換

この例では、TensorFlow を使用して簡単な変換を行います。

まず、処理する画像を指定し、TensorFlow 変数の値を初期化します。

  1. myfile = "likegeeks.png"
  2. myimage = img . imread ( myfile )
  3. image = tf . Variable ( myimage , name = 'image' )
  4. vars = tf . global_variables_initializer ()

次に、入力グリッドの 0 軸と 1 軸を反転するために使用される転置関数を呼び出します。

  1. sess = tf . Session ()
  2. flipped = tf . transpose ( image , perm =[ 1 , 0 , 2 ])
  3. sess . run ( vars )
  4. result = sess . run ( flipped )

すると、matplotlib を使用して処理された画像が表示されます。

  1. import tensorflow as tf
  2. import matplotlib . image as img
  3. import matplotlib . pyplot as plot
  4. myfile = "likegeeks.png"
  5. myimage = img . imread ( myfile )
  6. image = tf . Variable ( myimage , name = 'image' )
  7. vars = tf . global_variables_initializer ()
  8. sess = tf . Session ()
  9. flipped = tf . transpose ( image , perm =[ 1 , 0 , 2 ])
  10. sess . run ( vars )
  11. result = sess . run ( flipped )
  12. plot . imshow ( result )
  13. plot . show ()

上記の例では、TensorFlow の使用がいかに簡単であるかを示しました。

<<:  6000 以上の Web ページを閲覧した後、個人使用に最適な AI 製品のリストを選択しました。

>>:  サイボーグの時代が到来すると予想される:人間の体が機械に置き換えられる時代

ブログ    

推薦する

企業はデータセンターで人工知能を広く利用する準備ができているでしょうか?

今日、ますます多くのサーバーベンダーが、人工知能を活用したサーバー自動化テクノロジーの開発に取り組ん...

...

NVIDIA の最も強力な汎用大型モデル Nemotron-4 が登場! 15Bが62Bに勝ち、ターゲットはA100/H100です。

最近、NVIDIA チームは、8T トークンでトレーニングされた 150 億のパラメータを持つ新しい...

...

AIRankingsが世界の大学AIランキングを発表

今年も大学入試シーズンがやってきました。私が大学受験をしていた頃には、この言葉が流行っていたのを覚え...

ヘルスケアの革命: アジア太平洋地域におけるスマートホーム技術の台頭

アジア太平洋地域では、スマートホーム技術の登場により、ヘルスケア業界の大きな変革が起こっています。こ...

都市治安分野における人工知能の応用と開発に関する研究

[[360930]]人工知能技術の成熟と応用シナリオの継続的な充実により、人工知能技術は都市の公共安...

HRがAIバイアスを理解し軽減する方法

人工知能 (AI) と機械学習 (ML) がもたらすメリットは広く認識されています。このテクノロジー...

...

投資家心理は安定しており、人工知能への資金流入は続いている

[[274634]] 2019 年の秋が近づき、最初の 2 四半期が終了しようとしている今、今年前半...

2020 年の CIO にとっての 5 つの戦略的優先事項

ヘルスケア、小売、テクノロジー業界の IT リーダーが 2020 年の戦略的優先事項を共有します。ヒ...

AIのジレンマをどう解決するか?

今日の大手企業が AI におけるいくつかの大きな課題をどのように克服しているか。概要:多くの企業はビ...

ByteDance アルゴリズムの面接の質問、解けますか?

数日前、私の友人がByteDanceの面接を受けました。面接官は彼にリンクリストアルゴリズムの質問を...

いくつかの名門大学とAdobeは、このオープンソースアルゴリズムを使用して、300年以上前の手紙を「透視」しました。

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

...