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 製品のリストを選択しました。

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

推薦する

...

2023 年のテクノロジー業界の最高、最悪、そして最も醜い出来事

翻訳者 | ジン・ヤンレビュー | Chonglou 2023 年はテクノロジー業界にとってエキサイ...

...

インテリジェンスの時代: 新たな進歩、新たな傾向、新たな取り組み。第 2 回世界インテリジェンス会議が来月開催されます。

4月18日、北京メディアセンターで第2回世界情報会議の記者会見が開催された。記者会見では、中国共産...

DNS 負荷分散ランキングアルゴリズムの理解

先ほど、DNS 負荷分散の概念をいくつか紹介しました。次に、この負荷分散テクノロジに関連するアルゴリ...

Google、Facebook、Baiduはディープラーニングのフレームワークをめぐって競争している

[[226860]]タイトル画像提供:Visual China最近、海外の多くの企業で興味深い変化が...

...

人工知能の時代にITキャリアを築く方法

人工知能(AI)技術がより高度になるにつれ、ITプロフェッショナルは将来、AIに対して優位に立つため...

人工知能を活用した新しい小売無人店舗の発展展望は?

[[253800]] 2017年にジャック・マーがニューリテールの概念を提唱して以来、雨後の筍のよ...

AIとロボットはどこで使われていますか?お伝えしたいユースケースはたくさんあります

人工知能とロボット工学はテクノロジー分野に大きな変化をもたらしています。 20年前に人々が夢見ていた...

NetEase Fuxi Game AI Botの擬人化と様式化:AIGAはゲーム探索を強化

1. AIGCからAIGAへAIGC は AI によって生成されたコンテンツを指し、すでに広く理解さ...

2018 年の人工知能に関する 10 冊の良書のまとめ

いろいろ検索してみたところ、インターネット上にはまだ人工知能に関する本のリストがないので、自分で作っ...

機械学習に関する7つの誤解

ディープラーニングを学ぶ過程では、私たちが当たり前だと思っているさまざまな噂やさまざまな「こだわり」...

AIと行動科学がワクチン接種への躊躇にどう対処できるか

Fractal Analytics の共同創設者 Ram Prasad 氏は、AI が問題領域の特定...

GPT-4より18倍高速、世界最速の大型モデルGroqが登場!毎秒500トークンが記録を破る、自社開発LPUはNVIDIA GPUの10倍

気がつくと、1 秒あたり 500 トークンを出力できる Groq モデルがインターネット上に広まって...