【tensorflow】常量张量的初始化

mac2024-10-20  17

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, @西之可乐 picture from pexels.com

最新回复(0)