谁能解释tf.random_normal和tf.truncated_normal shape参数?

时间:2018-10-27 13:35:07

标签: python tensorflow machine-learning neural-network normalization

我正在使用tensorflow,直到并且除非参数是二维的,否则我没有遇到任何问题,但是现在我遇到了语法

tf.Variable(tf.random_normal([5, 5, 32, 64])

tf.Variable(tf.random_normal([7*7*64, 1024]))

还有一个

tf.Variable(tf.random_normal([1024])

类似地,在truncated_normal中也是如此。 谁能解释这些行的工作原理以及如何在代码后实现这些工作?这将非常有帮助。

谢谢。

1 个答案:

答案 0 :(得分:2)

这两个函数分别对正态分布或截断的(正切的)正态分布进行采样,shape参数用于指定所得张量的形状,即。您将从各自的分布中获取多少个样本,它们将处于什么形状。

任何3维尺寸的图片都很容易

tf.Variable(tf.random_normal([7*7*64, 1024]))从正态分布中创建一个形状为3136x1024的2D张量,其随机采样值。

类似地,tf.Variable(tf.random_normal([1024]))将创建一个大小为1024(或大小为1x1024的2D张量)的向量

最后,tf.Variable(tf.random_normal([5, 5, 32, 64]))在思维上难以想象,这导致尺寸为5x5x32x64的4D张量。

这可能表示一批5个3-D张量,其中第一个维度(在本例中为第一个“ 5”)将表示某些输入数据的批量大小

不确定您要寻找多少细节,恐怕这只是我的知识,希望能对您有所帮助。