1. 程式人生 > >tf.matmul函數

tf.matmul函數

res put initial 權重 div 稀疏矩陣 ria tip 神經元

tf.matmul(a,b,transpose_a=False,transpose_b=False, adjoint_a=False, adjoint_b=False, a_is_sparse=False, b_is_sparse=False, name=None)

參數:

a 一個類型為 float16, float32, float64, int32, complex64, complex128 且張量秩 > 1 的張量
b 一個類型跟張量a相同的張量
transpose_a 如果為真, a則在進行乘法計算前進行轉置
transpose_b 如果為真, b則在進行乘法計算前進行轉置
adjoint_a 如果為真, a則在進行乘法計算前進行共軛和轉置
adjoint_b 如果為真, b則在進行乘法計算前進行共軛和轉置
a_is_sparse 如果為真, a會被處理為稀疏矩陣
b_is_sparse 如果為真, b會被處理為稀疏矩陣

a,b的維數必須相同

import numpy as np
import tensorflow as tf

a = np.array([[1,2],
        [2,2],
        [3,2]])
b= np.array([[3,1,1,4],
        [3,1,1,4]])

with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
Input = tf.matmul(a,b)
result = sess.run(Input)
print(result)

[[ 9 3 3 12]
[12 4 4 16]
[15 5 5 20]]

b在神經網絡中一般用作權重矩陣,shape=[x,y],x為前一層神經網絡的神經元數量,y為後一層神經網絡的神經元數量

tf.multiply(x, y, name=None) ,兩個矩陣中對應元素各自相乘,最後返回數據的維數以最多維數據的維數相同

import numpy as np
import tensorflow as tf

a = np.array([[1,2],
              [2,3],
              [3,4]])
b= np.array([2,3])

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    Input = tf.multiply(a,b)
    result = sess.run(Input)    
    print(result)

[[ 2 6]
[ 4 9]
[ 6 12]]

tf.matmul函數