Truncated Normal Distribution とNeural Network(ニューラルネットワーク)の初期化(Initialization)

Truncated Normal Distribution とNeural Network(ニューラルネットワーク)の初期化(Initialization)

Tensorflowを利用してもらった初めてに、どうしてもニューラルネットワークの初期化を迷っていることが避けない。
実はルールがあります、そしてやり方は簡単し、ご注意のところが薄がって、なんの困りがありませんはずだ。

まずコードの欠片を見せてください!

import

tensorflow

as

tf

def

get_conv_weights
(
w
,

h
,

chn_in
,

chn_out
):

dim

=

[
w
,

h
,

chn_in
,

chn_out
]

init_op

=

tf
.
truncated_normal
(
dim
,

mean
=
0.0
,

stddev
=
0.1
)

return

tf
.
get_variable
(

name
=
‘weights‘
,

initializer
=
init_op
)

def

get_fc_weights
(
chn_in
,

chn_out
):

dim

=

[
chn_in
,

chn_out
]

init_op

=

tf
.
truncated_normal
(
dim
,

mean
=
0.0
,

stddev
=
0.1
)

return

tf
.
get_variable
(

name
=
‘weights‘
,

initializer
=
init_op
)

ここに書いてあるものはパラメーターの初期化です。stddevはその一番重要なセットだ。普通には0.1ー0.2に限定している。この範囲以外のセットはダメだ。
なぜダメだろうか、実際に運転すればすぐ分かるぞ。
とくにsoftmax-cross-entrophy lossとのお使い場合には立派な程度で役に立つ。

相关文章