Tensorflow轮毂+;估计器潜在缺陷:训练权重未用于评估/预测

Tensorflow轮毂+;估计器潜在缺陷:训练权重未用于评估/预测,tensorflow,tensorflow-estimator,tensorflow-hub,Tensorflow,Tensorflow Estimator,Tensorflow Hub,在我当前的项目中,我正在使用TF Hub图像模块以及一个分类问题的估计器。根据TF Hub指南,我在训练模式下将标签设置为“训练”,在评估/预测模式下将标签设置为“无”。测试损失/准确度很差,但培训损失一直在减少。经过几天的调试,我了解到不知何故,hub经过训练的模型权重没有被使用(似乎只有hub外的最后一个密集层被重用) 为了确认问题所在,我甚至没有通过“培训”标签(没有其他更改),问题立即得到解决 感谢所有的帮助-非常感谢 #inside model_fn tags_val = None

在我当前的项目中,我正在使用TF Hub图像模块以及一个分类问题的估计器。根据TF Hub指南,我在训练模式下将标签设置为“训练”,在评估/预测模式下将标签设置为“无”。测试损失/准确度很差,但培训损失一直在减少。经过几天的调试,我了解到不知何故,hub经过训练的模型权重没有被使用(似乎只有hub外的最后一个密集层被重用)

为了确认问题所在,我甚至没有通过“培训”标签(没有其他更改),问题立即得到解决

感谢所有的帮助-非常感谢

#inside model_fn
tags_val = None

if is_training:
    tags_val = {"train"}

is_training = (mode == tf.estimator.ModeKeys.TRAIN)

tf_hub_model_spec = "https://tfhub.dev/google/imagenet/inception_v3/feature_vector/1"

img_module = hub.Module(tf_hub_model_spec, trainable=is_training, tags=tags_val)

#Add final dense layer, etc

对于
https://tfhub.dev/google/imagenet/inception_v3/feature_vector/1
,默认标记(表示空集)和
标记={“train”}
之间的区别在于后者在训练模式下操作批处理规范(即使用批处理统计进行规范化)。如果这导致灾难性的质量损失,我的第一个怀疑是:更新操作是否与列车操作一起运行


在其他问题方面讨论了这一点,并使用代码指针。

很抱歉,我花了一点时间进行测试。我在你提到的github线程中尝试了这些解决方案——使用tf.contrib.training.create\u train\u op并不能解决我的问题。还有什么我可以试试的吗?