tf.constant用法

函数原型

tf.constant(
    value,
    dtype=None,
    shape=None,
    name='Const',
    verify_shape=False
)
  • 第一个值是必须的,可以是一个数值,也可以是一个列表;为查看结果必须创建一个会话,并用取值函数eval()来查看创建的tensor的值;后面四个参数可写可不写
  • 第二个参数表示数据类型,一般可以是tf.float32, tf.float64等
  • 第三个参数表示张量的“形状”,即维数以及每一维的大小。如果指定了第三个参数,当第一个参数value是数字时,张量的所有元素都会用该数字填充;(而当第一个参数value是一个列表时,注意列表的长度必须小于等于第三个参数shape的大小(即各维大小的乘积),否则会报错;);这是因为函数会生成一个shape大小的张量,然后用value这个列表中的值一一填充shape中的元素。这里列表大小为7,而shape大小为2*3=6,无法正确填充,所以发生了错误。而如果列表大小小于shape大小,则会用列表的最后一项元素填充剩余的张量元素:
  • 第四个参数name可以是任何内容,主要是字符串就行。
  • 第五个参数verify_shape默认为False,如果修改为True的话表示检查value的形状与shape是否相符,如果不符会报错。

代码

import tensorflow._api.v2.compat.v1 as tf
tf.disable_v2_behavior()

'''
tf.constant(
    value,
    dtype=None,
    shape=None,
    name='Const',
    verify_shape=False
)
'''

# 第一个参数是一个数值
tmp = tf.constant(1)
sess = tf.Session()
with sess.as_default():
    print(tmp.eval())
# 第一个参数是一个列表
tmp = tf.constant([1, 2])
sess = tf.Session()
with sess.as_default():
    print(tmp.eval())
# 指定第二个参数,指定数据类型
tmp = tf.constant([1, 2], dtype = tf.float32)
sess = tf.Session()
with sess.as_default():
    print(tmp.eval())
# 指定第三个参数: 用于指定张量的"形状"
tmp = tf.constant(3, shape=[2, 2])
sess = tf.Session()
with sess.as_default():
    print(tmp.eval())
# 指定第四个参数: 字符串
tmp = tf.constant([2, 3], dtype = tf.float32, shape=[2,2], name = "LiQuan")
print(tmp)

输出:

'''
[1. 2.]
[[3 3]
 [3 3]]
Tensor("LiQuan:0", shape=(2, 2), dtype=float32)
'''

你可能感兴趣的:(人工智能,tensorflow,python,深度学习)