2018年3月2日 更新

Python × TensorFlow ① ~TensorFlow を扱う上で必要な知識「テンソル」~

画像はwikipediaより

410 view お気に入り 0
TensorFlow とは,Googleが開発・公開している、機械学習に用いるためのライブラリであります.TensorFlow のインストールに関して解説してくれているサイトは多くあるので,今回は省略させて頂きます.※ 同サイト内の「pythonによるtensorflow〜インストール、サンプルの実行〜,https://lp-tech.net/articles/KmV1h でもtensorflow」が参考になるかもしれない.

本記事では,TensorFlow を扱う上で必要な以下3つの知識のうち「テンソル」について解説していきたいと思います.
・テンソル
・変数とプレースホルダ
・セッション

テンソル

A tensor is a generalization of vectors and matrices to potentially higher dimensions. Internally, TensorFlow represents tensors as n-dimensional arrays of base datatypes.
TensorFlow の公式ページを見ると,テンソルとは,「n次元の多次元配列」と解釈して間違いないようです.以下のように記述することで,「n次元の多次元配列」の要素に任意の値を設定することができます.テンソルの中身が見たい場合は,Session(セッション)オブジェクトを作って,実行する必要があります.※ Session の詳細については,別の記事で解説しようと思います.
row = 3
col = 4
constant_tsr = tf.constant(1)  # 定数
zeros_tsr = tf.zeros([row, col])  # 全て 0 の要素からなるテンソル
ones_tsr = tf.ones([row, col])  # 全て 1 の要素からなるテンソル
filled = tf.fill([row, col], 5)  # 全て第二引数で指定した定数の要素からなるテンソル
randunif_tsr = tf.random_uniform([row, col], minval=0, maxval=10)  # 0~10 の一様分布乱数の要素からなるテンソル
randnorm_tsr = tf.random_normal([row, col], mean=0.0, stddev=1.0)  # 平均 0.0,標準偏差 1.0 の正規分布に従う乱数の要素からなるテンソル

# 以下のコードで,Session オブジェクトを作って,実行しています.
with tf.Session() as sess:
    print(sess.run(constant_tsr))
tensor.py
テンソルの計算は以下のように行います.ここでは簡単のため,定数同士の四則演算を実装しました.ここで示した以外にも演算用メソッドは数多く用意されています( https://www.tensorflow.org/api_guides/python/math_ops ).また,計算結果を知るには,先程と同様に,Session(セッション)オブジェクトを作って,グラフを実行する必要があります.
x = tf.constant(6)
y = tf.constant(2)

add_op = tf.add(x, y)  # 足し算
sub_op = tf.subtract(x, y)  # 引き算
mul_op = tf.scalar_mul(x, y)  # 掛け算
div_op = tf.divide(x, y)  # 割り算

with tf.Session() as sess:
    print(sess.run(add_op))  # 足し算結果を表示
    print(sess.run(sub_op))  # 引き算結果を表示
    print(sess.run(mul_op))  # 掛け算結果を表示
    print(sess.run(div_op))  # 割り算結果を表示
calc.py
次回は,変数とプレースホルダについて解説していきたいと思います!
7 件

関連する記事 こんな記事も人気です♪

Python × TensorFlow ② ~TensorFlow を扱う上で必要な知識「定数・変数」~

Python × TensorFlow ② ~TensorFlow を扱う上で必要な知識「定数・変数」~

TensorFlow を扱う上で必要な以下3つの知識のうち「定数と変数」について解説していきたいと思います.
井上 大輝 | 241 view
KaggleチュートリアルTitanicで上位1%に入った話。(0.87081)

KaggleチュートリアルTitanicで上位1%に入った話。(0.87081)

前回書いた「KaggleチュートリアルTitanicで上位3%以内に入るには。(0.82297)」 から久々にやり直した結果上位1%の0.87081を出せたのでどのようにしたのかを書いていきます。
Takumi Ihara | 4,816 view
KaggleチュートリアルTitanicで上位3%以内に入るには。(0.82297)

KaggleチュートリアルTitanicで上位3%以内に入るには。(0.82297)

まだ機械学習の勉強を初めて4ヶ月ですが、色々やってみた結果、約7000人のうち200位ぐらいの0.82297という記録を出せたので、色々振り返りながら書いていきます。
Takumi Ihara | 22,210 view
pythonによるtensorflow〜deepdreamによる画像変換〜

pythonによるtensorflow〜deepdreamによる画像変換〜

今回は前回のtensorflowの記事に引き続き、deepdreamによる画像変換についてご紹介します。
三好 裕之 | 2,000 view

この記事のキーワード

この記事のキュレーター

井上 大輝 井上 大輝