trunc_normal = lambda stddev: tf.truncated_normal_initializer(0.0, stddev)解析

在写Inception V3代码的时候,遇到这一句代码,分享一下它的工作原理

代码:trunc_normal = lambda stddev: tf.truncated_normal_initializer(0.0, stddev)

1. lambda是一个匿名函数,它的作用举例说明

a = lambda x:x*x
print(a(2))

输出为4,等价于函数

def a(x):
    return x*x
print(a(2))

那么这一个函数trunc_normal就是返回 tf.truncated_normal_initializer(0.0, stddev)的值,最后产生一个平均值为0.0,标准差为stddev的截断的正太分布。具体使用这个函数的时候调用tensorflow的tf.contrib.slim就很方便啦

import tensorflow as tf

slim = tf.contrib.slim
trunc_normal = lambda stddev: tf.truncated_normal_initializer(0.0, stddev)
weights = slim.variable('weights',
                             shape=[3 , 3], #形状
                             #参数初始化
                             initializer=trunc_normal(0.1),
                             )
init = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    print(sess.run(weights))

结果如下:

[[ 0.11840882  0.04289966 -0.02131811]
 [ 0.06113978 -0.03785787 -0.00641177]
 [ 0.08828283 -0.01430409  0.02136735]]

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tina姐

我就看看有没有会打赏我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值