【tensorflow】常量张量的初始化

tf.ones(),tf,zeros(),tf.ones_like(),tf.zeros_like()等方法可以生成值为常量的张量。

1.全为零或全为一的张量初始化

可以利用tf.zeros()``tf.zeros_like()生成零值张量

"""
其参考语法如下,其中shape为list或者tuple类型
tf.zeros(
    shape,
    dtype=tf.dtypes.float32,
    name=None
)
"""
>>>import tensorflow as tf
>>>sess = tf.Session()
>>>zeros = tf.zeros([3,3,3])
>>>print(sess.run(zeros))
[[[0. 0. 0.]
  [0. 0. 0.]
  [0. 0. 0.]]

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

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

"""
另一个API则会输出与输入张量相同大小的全零张量,用于做mask时候十分有用:
tf.zeros_like(
    input,
    dtype=None,
    name=None
)
"""
>>> tensor2 = tf.constant([[1, 2, 3, 4], [5, 6, 7, 8]])
>>> zeros2 = tf.zeros_like(tensor2)
>>> print(sess.run(zeros2))
[[0 0 0 0]
 [0 0 0 0]]

对于tf.ones()tf.ones_like()也是一样的效果,一个可以输出给定形状的张量,一个可以生成与输入形状相同的全一张量:

>>> ones3 = tf.ones([2,2,2])
>>> print(sess.run(ones3))
[[[1. 1.]
  [1. 1.]]

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

# 生成与输入形状相同的全一张量
>>> tensor4 = tf.constant([1,2,3])
>>> ones4 = tf.ones_like(tensor4)
>>> print(sess.run(ones4))
[1 1 1]

TODO(RJJ, maybe 11.1): tf.fill().,tf.constant(), tf.linspace(),tf.range()
next blog:tf.math()


ref:@Eric_LH, @西之可乐
https://images.pexels.com/photos/3125852/pexels-photo-3125852.jpeg
picture from pexels.com

发布了357 篇原创文章 · 获赞 307 · 访问量 56万+

猜你喜欢

转载自blog.csdn.net/u014636245/article/details/102846224