欢迎关注WX公众号:【程序员管小亮】
在读Inception代码的时候,遇到代码,
import tensorflow as tf
slim = tf.contrib.slim
trunc_normal = lambda stddev: tf.truncated_normal_initializer(0.0, stddev)
分享一下它的工作原理。
1、首先是引入TensorFlow模块
2、lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。
add = lambda x, y : x+y
add(1,2) # 结果为3
等价于函数
def a(x, y):
return x + y
print(a(1, 2))
3、tf.truncated_normal_initializer 从截断的正态分布中输出随机值。
生成的值服从具有指定平均值和标准偏差的正态分布,如果生成的值大于平均值2个标准偏差的值则丢弃重新选择。
ARGS:
mean:一个python标量或一个标量张量。(要生成的随机值的均值)
stddev:一个python标量或一个标量张量。(要生成的随机值的标准偏差)
seed:一个Python整数。用于创建随机种子。(查看 tf.set_random_seed 行为)
dtype:数据类型。(只支持浮点类型)
那么这一个函数trunc_normal就是返回 tf.truncated_normal_initializer(0.0, stddev)的值,最后产生一个平均值为0.0,标准差为stddev的截断的正太分布。
4、具体使用这个函数的时候调用tensorflow的tf.contrib.slim就很方便啦。
slim = tf.contrib.slim
python课程推荐。