参看 TensorFlow创建常量(tf.constant)详解
创建TensorFlow常量(tf.constant):
创建TensorFlow矩阵
tf.constant(
value,
dtype=None,
shape=None,
name='Const',
verify_shape=False
)
# 后面四个参数可写可不写,第二个参数表示数据类型,一般可以是tf.float32, tf.float64等
eg:
tensor=tf.constant(1) # 1
tensor=tf.constant([1, 2], dtype=tf.float32) # [1. 2.]
为查看结果必须创建tf.Session()会话
并用取值函数tensor.eval()查看创建的tensor的值:
tensor=tf.constant([1, 2], dtype=tf.float32)
sess=tf.Session()
with sess.as_default():
print('结果是:', tensor.eval())
结果是: [1. 2.]
张量形状:
1.第三个参数表示张量的“形状”,即维数以及每一维的大小。如果指定了第三个参数,当第一个参数value是数字时,张量的所有元素都会用该数字填充:
2.当第一个参数value是一个列表时,注意列表的长度必须小于等于第三个参数shape的大小(即各维大小的乘积),否则会报错:
3.如果列表大小小于shape大小,则会用列表的最后一项元素填充剩余的张量元素:
tensor=tf.constant(-1, shape=[2, 3])
sess=tf.Session()
with sess.as_default():
print('结果是:', tensor.eval())
结果是: [[-1 -1 -1]
[-1 -1 -1]]
tensor=tf.constant([1, 2], shape=[1, 4, 3])
sess=tf.Session()
with sess.as_default():
print('结果是:', tensor.eval())
结果是: [[[1 2 2]
[2 2 2]
[2 2 2]
[2 2 2]]]
参看 tensorflow教程之tf.matmul(a,b)的用法
tensor矩阵相乘 tf.matmul(a,b):
tf.matmul(a,b)与tf.multiply(a,b)的区别,后者是单纯的对应位置数字相乘
import tensorflow as tf
tf.compat.v1.disable_eager_execution() # tensorflow版本2.0无法兼容版本1.0. 这一句必须加在前面,否则无法执行sess.run()
# 2x3矩阵 乘 3x2矩阵 得 2x2矩阵
a = tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3])
b = tf.constant([7, 8, 9, 10, 11, 12], shape=[3, 2])
d=tf.matmul(a,b)
with tf.compat.v1.Session() as sess: # 版本2.0的函数 tf.compat.v1.Session() 版本1.0的函数 tf.compat.v1.Session()
print(sess.run(d))
[[ 58 64]
[139 154]]
tensor矩阵相加 tf.add(a,b):
tf.matmul(a,b)与tf.multiply(a,b)的区别,后者是单纯的对应位置数字相乘
import tensorflow.compat.v1 as tf
#tf.disable_v2_behavior()
x=tf.constant([[1,2],[1,2]])
y=tf.constant([[1,1],[1,2]])
z=tf.add(x,y)
x1=tf.constant(1)
y1=tf.constant(2)
z1=tf.add(x1,y1)
x2=tf.constant(2)
y2=tf.constant([1,2])
z2=tf.add(x2,y2)
x3=tf.constant([[1,2],[1,2]])
y3=tf.constant([[1,2]])
z3=tf.add(x3,y3)
with tf.Session() as sess:
z_result,z1_result,z2_result,z3_result=sess.run([z,z1,z2,z3])
print('z =\n%s'%(z_result))
print('z1 =%s'%(z1_result))
print('z2 =%s'%(z2_result))
print('z3 =%s'%(z3_result))
z =
[[2 3]
[2 4]]
z1 =3
z2 =[3 4]
z3 =[[2 4]
[2 4]]