立个flag,找个工具把代码升级成1.0之后的版本,尽快。
使用tf.get_variable时,initializer的问题
使用zeros_initializer和ones_initializer时,不要加小括号,那是新版本的用法
根据网上的答案,将zeros_initialier换成constant_initialier(0.0)依然报错
去掉括号之后依然有问题,但多试了几遍就不报错了…… 不解
我不知道为什么,多试了几遍就好了……十分不解
所以还是,换新版本。旧版本好多问题查不到。
参考https://github.com/ry/tensorflow-resnet/blob/master/resnet.py,实现微调resnet50时的bn层时,遇到的问题
略………………
moving_mean = _get_variable('moving_mean',
params_shape,
initializer=tf.zeros_initializer,
trainable=False)
moving_variance = _get_variable('moving_variance',
params_shape,
initializer=tf.ones_initializer,
trainable=False)
_get_variable调用了tf.get_variable
def _get_variable(name,
shape,
initializer,
weight_decay=0.0,
dtype='float',
trainable=True):
"A little wrapper around tf.get_variable to do weight decay and add to"
"resnet collection"
if weight_decay > 0:
regularizer = tf.contrib.layers.l2_regularizer(weight_decay)
else:
regularizer = None
collections = [tf.GraphKeys.VARIABLES, RESNET_VARIABLES]
return tf.get_variable(name,
shape=shape,
initializer=initializer,
dtype=dtype,
regularizer=regularizer,
collections=collections,
trainable=trainable)