trunc_normal = lambda stddev:tf.truncated_normal_initializer(0.0、stddev)



Trunc_normal Lambda Stddev



Inception V3コードを書いているときに、このコードに遭遇し、それがどのように機能するかを共有しました

コード:trunc_normal = lambda stddev:tf.truncated_normal_initializer(0.0、stddev)



1.ラムダは無名関数であり、その役割は例で示されています

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], #shape #Parameter initialization 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]]