为什么只有当我使用预训练的苗条模型时才会得到双重信息字符串?
Why do i get double info string only when i use pretrained slim model?
我开始使用来自 slim 的 inception_v2_imagenet_2016_08_28 预训练模型训练 faster_rcnn_inception_v2。
fine_tune_checkpoint: "./pretrained_models/inception_v2_imagenet_2016_08_28/inception_v2.ckpt"
from_detection_checkpoint: false
我收到有关缺少参数 (gamma) 的警告。
比我得到的所有信息都翻了一番。
INFO:tensorflow:global step 435766: loss = 0.7736 (0.27 sec/step)
INFO:tensorflow:global step 435766: loss = 0.7736 (0.27 sec/step)
为什么?有解决办法吗?
谢谢
我找到了解决这个问题的方法!
错误在 https://github.com/tensorflow/models/blob/master/research/object_detection/utils/variables_helper.py 中的函数 get_variables_available_in_checkpoint
中:
def get_variables_available_in_checkpoint(variables, checkpoint_path):
"""Returns the subset of variables available in the checkpoint.
Inspects given checkpoint and returns the subset of variables that are
available in it.
TODO: force input and output to be a dictionary.
Args:
variables: a list or dictionary of variables to find in checkpoint.
checkpoint_path: path to the checkpoint to restore variables from.
Returns:
A list or dictionary of variables.
Raises:
ValueError: if `variables` is not a list or dict.
"""
if isinstance(variables, list):
variable_names_map = {variable.op.name: variable for variable in variables}
elif isinstance(variables, dict):
variable_names_map = variables
else:
raise ValueError('`variables` is expected to be a list or dict.')
ckpt_reader = tf.train.NewCheckpointReader(checkpoint_path)
ckpt_vars = ckpt_reader.get_variable_to_shape_map().keys()
vars_in_ckpt = {}
for variable_name, variable in sorted(variable_names_map.items()):
if variable_name in ckpt_vars:
vars_in_ckpt[variable_name] = variable
else:
logging.warning('Variable [%s] not available in checkpoint',
variable_name)
if isinstance(variables, list):
return vars_in_ckpt.values()
return vars_in_ckpt
我评论了这部分,训练期间的信息只显示一次。
# else:
# logging.warning('Variable [%s] not available in checkpoint',
# variable_name)
我开始使用来自 slim 的 inception_v2_imagenet_2016_08_28 预训练模型训练 faster_rcnn_inception_v2。
fine_tune_checkpoint: "./pretrained_models/inception_v2_imagenet_2016_08_28/inception_v2.ckpt"
from_detection_checkpoint: false
我收到有关缺少参数 (gamma) 的警告。 比我得到的所有信息都翻了一番。
INFO:tensorflow:global step 435766: loss = 0.7736 (0.27 sec/step)
INFO:tensorflow:global step 435766: loss = 0.7736 (0.27 sec/step)
为什么?有解决办法吗? 谢谢
我找到了解决这个问题的方法!
错误在 https://github.com/tensorflow/models/blob/master/research/object_detection/utils/variables_helper.py 中的函数 get_variables_available_in_checkpoint
中:
def get_variables_available_in_checkpoint(variables, checkpoint_path):
"""Returns the subset of variables available in the checkpoint.
Inspects given checkpoint and returns the subset of variables that are
available in it.
TODO: force input and output to be a dictionary.
Args:
variables: a list or dictionary of variables to find in checkpoint.
checkpoint_path: path to the checkpoint to restore variables from.
Returns:
A list or dictionary of variables.
Raises:
ValueError: if `variables` is not a list or dict.
"""
if isinstance(variables, list):
variable_names_map = {variable.op.name: variable for variable in variables}
elif isinstance(variables, dict):
variable_names_map = variables
else:
raise ValueError('`variables` is expected to be a list or dict.')
ckpt_reader = tf.train.NewCheckpointReader(checkpoint_path)
ckpt_vars = ckpt_reader.get_variable_to_shape_map().keys()
vars_in_ckpt = {}
for variable_name, variable in sorted(variable_names_map.items()):
if variable_name in ckpt_vars:
vars_in_ckpt[variable_name] = variable
else:
logging.warning('Variable [%s] not available in checkpoint',
variable_name)
if isinstance(variables, list):
return vars_in_ckpt.values()
return vars_in_ckpt
我评论了这部分,训练期间的信息只显示一次。
# else:
# logging.warning('Variable [%s] not available in checkpoint',
# variable_name)