In [1]:
import numpy as np 
import tensorflow as tf
import tensorboard_jupyter as tb
sess = tf.Session()

# いろんな行列を作る
identity_matrix = tf.diag([1.0, 1.0, 1.0])
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('identity matrix')
print(sess.run(identity_matrix))
print('A')
print(sess.run(A))
print('B')
print(sess.run(B))
print('C')
print(sess.run(C))
print('D')
print(sess.run(D))


identity matrix
[[ 1.  0.  0.]
 [ 0.  1.  0.]
 [ 0.  0.  1.]]
A
[[-0.4195314  -0.29041058 -0.3432287 ]
 [-0.43340036  0.08644856  0.39774364]]
B
[[ 5.  5.  5.]
 [ 5.  5.  5.]]
C
[[ 0.45171082  0.18651092]
 [ 0.51375318  0.20059037]
 [ 0.84401786  0.87051678]]
D
[[ 1.  2.  3.]
 [-3. -7. -1.]
 [ 0.  5. -2.]]

In [2]:
# 加算
print(sess.run(A+B))


[[ 4.67664814  4.06957674  6.48046112]
 [ 4.25395203  5.33610296  4.1054039 ]]

In [3]:
# 減算
print(sess.run(B-B))


[[ 0.  0.  0.]
 [ 0.  0.  0.]]

In [4]:
# 乗算
print(sess.run(tf.matmul(B, identity_matrix)))


[[ 5.  5.  5.]
 [ 5.  5.  5.]]

In [5]:
# 転置
print(sess.run(tf.transpose(C)))


[[ 0.65264297  0.0584234   0.37545955]
 [ 0.0090872   0.87818992  0.42590463]]

In [6]:
# 行列式
print(sess.run(tf.matrix_determinant(D)))


-38.0

In [7]:
# 逆行列
print(sess.run(tf.matrix_inverse(D)))


[[-0.5        -0.5        -0.5       ]
 [ 0.15789474  0.05263158  0.21052632]
 [ 0.39473684  0.13157895  0.02631579]]

In [8]:
# コレスキー分解
print(sess.run(tf.cholesky(identity_matrix)))


[[ 1.  0.  0.]
 [ 0.  1.  0.]
 [ 0.  0.  1.]]

In [9]:
# 固有値
eigenvalues, eigenvectors = sess.run(tf.self_adjoint_eig(D))
print('eigenvalues:', eigenvalues)
print('eigenvectors:', eigenvectors)


eigenvalues: [-10.65907521  -0.22750691   2.88658212]
eigenvectors: [[ 0.21749542  0.63250104 -0.74339638]
 [ 0.84526515  0.2587998   0.46749277]
 [-0.4880805   0.73004459  0.47834331]]

In [ ]: