代码及分析
"""
Created on Sat Mar 14 09:24:02 2020
@author: 寒火qwer
"""
import tensorflow as tf
m1 = tf.constant([[3, 3]])
m2 = tf.constant([[2], [3]])
product = tf.matmul(m1, m2)
print(product)
sess = tf.Session()
result = sess.run(product)
print(result)
sess.close()
with tf.Session() as sess:
result = sess.run(product)
print(result)
- tf.constant(value, dtype=None, shape=None, name=’Const’, verify_shape=False)
作用:创建一个常量张量
value:是一个必须的值,可以是一个数值,也可以是一个列表;可以是一维的,也可以是多维的;
dtype:数据类型,一般可以是tf.float32, tf.float64等;
shape:表示张量的“形状”,即维数以及每一维的大小;注意:如果列表大小小于shape大小,则会用列表的最后一项元素填充剩余的张量元素。
verify_shape:默认为False,如果修改为True的话表示检查value的形状与shape是否相符,如果不符会报错。 - 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 乘以矩阵 b。
通过将相应的标志之一设置为 True,矩阵可以被转置或 adjointed(共轭和转置).默认情况下,这些都是 False.
如果一个或两个矩阵包含很多的零,则可以通过将相应的 a_is_sparse 或 b_is_sparse 标志设置为 True 来使用更有效的乘法算法,默认为 false.这个优化仅适用于具有数据类型为bfloat16 或 float32 的纯矩阵(rank 为2的张量).
a:类型为 float16,float32,float64,int32,complex64,complex128 和 rank > 1的张量.
b:与 a 具有相同类型和 rank.
transpose_a:如果 True,a 在乘法之前转置.
transpose_b:如果 True,b 在乘法之前转置.
adjoint_a:如果 True,a 在乘法之前共轭和转置.
adjoint_b:如果 True,b 在乘法之前共轭和转置.
a_is_sparse:如果 True,a 被视为稀疏矩阵.
b_is_sparse:如果 True,b 被视为稀疏矩阵.