In [1]:
import numpy as np
import tensorflow as tf
In [2]:
sess = tf.Session()
In [6]:
# 行列の作成
# diag() を使って対角行列を作成する
identity_matrix = tf.diag([1., 1., 1.])
A = tf.truncated_normal([2,3])
B = tf.fill([2,3], 5.0)
C = tf.random_uniform([3,2])
D = tf.convert_to_tensor(np.array(
[[1., 2., 3.], [-3., -7., -1.], [0., 5., -2.]]))
print(sess.run(identity_matrix))
print(sess.run(A))
print(sess.run(B))
print(sess.run(C))
print(sess.run(C))
In [9]:
# 行列の加算、減算
print(sess.run(A+B))
print(sess.run(B-B))
In [12]:
# 行列の乗算
print(sess.run(tf.matmul(B, identity_matrix)))
# 転置の場合、transposeを使う
print(sess.run(tf.matmul(identity_matrix, B, transpose_a=True, transpose_b=True)))
In [14]:
# 転置用の関数もある
print(sess.run(tf.transpose(B)))
In [15]:
# 行列式
print(sess.run(tf.matrix_determinant(D)))
In [16]:
# 逆行列式
print(sess.run(tf.matrix_inverse(D)))
In [18]:
# コレスキー分解
print(sess.run(tf.cholesky(identity_matrix)))
In [19]:
# 固有値と固有ベクトル
eigenvalues, eigenvectors = sess.run(tf.self_adjoint_eig(D))
print(eigenvalues)
print(eigenvectors)
In [ ]: