In [1]:
import tensorflow as tf
In [2]:
from matplotlib import pyplot as plt
%matplotlib inline
In [3]:
row_dim = 2
col_dim = 5
In [4]:
zero_tsr = tf.zeros([row_dim, col_dim])
with tf.Session() as sess:
print("%s" % sess.run(zero_tsr))
In [5]:
ones_tsr = tf.ones([row_dim, col_dim])
with tf.Session() as sess:
print("%s" % sess.run(ones_tsr))
In [6]:
# 定数で埋められたテンソルを作成
filled_tsr = tf.fill([row_dim, col_dim], 42)
with tf.Session() as sess:
print("%s" % sess.run(filled_tsr))
In [7]:
# 既存の定数からテンソルを作成する
const_tsr = tf.constant([1,2,3])
with tf.Session() as sess:
print("%s" % sess.run(const_tsr))
In [8]:
# 既存の定数からテンソルを作成する
# 行列(2重配列)の場合
const_tsr = tf.constant([[1,2,3],[9,8,7]])
with tf.Session() as sess:
print("%s" % sess.run(const_tsr))
In [9]:
zeros_similar = tf.zeros_like(const_tsr)
ones_similar = tf.ones_like(const_tsr)
# shape=(2,3) の行列が作成される
with tf.Session() as sess:
print("zeros_similar: %s" % sess.run(zeros_similar))
print("ones_similar : %s" % sess.run(ones_similar))
In [10]:
# 分割が少数になる場合、start と stop は float で指定する
# linear_tsr = tf.linspace(start=0, stop=1, num=3)
linear_tsr = tf.linspace(start=0.0, stop=1.0, num=3)
with tf.Session() as sess:
print("%s" % sess.run(linear_tsr))
In [11]:
# 開始点から limit まで(limitは含まない)ところまで delta 間隔で値が含まれる
integer_seq_str = tf.range(start=6, limit=15, delta=3)
with tf.Session() as sess:
print("%s" % sess.run(integer_seq_str))
In [12]:
# float の場合, float として格納される
float_seq_str = tf.range(start=6.0, limit=15, delta=3)
with tf.Session() as sess:
print("%s" % sess.run(float_seq_str))
In [13]:
# 一様分布に基づくテンソル
randunif_tsr = tf.random_uniform([row_dim,col_dim], minval=0, maxval=1)
with tf.Session() as sess:
print("%s" % sess.run(randunif_tsr))
In [14]:
# 正規分布に基づくテンソル
randnorm_tsr = tf.random_normal([row_dim,col_dim], mean=0.0, stddev=1.0)
with tf.Session() as sess:
print("%s" % sess.run(randunif_tsr))
In [15]:
# 正規分布に区間を設定する
# 指定された平均から標準偏差の2倍までの正規分布から値を選ぶ
truncnorm_tsr = tf.truncated_normal([row_dim,col_dim], mean=0.0, stddev=1.0)
with tf.Session() as sess:
print("%s" % sess.run(truncnorm_tsr))
In [16]:
randunif_tsr = tf.random_uniform([10000], minval=-3, maxval=3)
randnorm_tsr = tf.random_normal([10000], mean=0.0, stddev=1.0)
truncnorm_tsr = tf.truncated_normal([10000], mean=0.0, stddev=1.0)
with tf.Session() as sess:
fig, (axL, axC, axR) = plt.subplots(ncols=3, figsize=(10,4))
axL.hist(sess.run(randunif_tsr), bins=100)
axC.hist(sess.run(randnorm_tsr), bins=100)
axR.hist(sess.run(truncnorm_tsr), bins=100)
fig.show()
In [ ]: