Python 如何恢复初始V3的权重并仅重新训练最后一层?

Python 如何恢复初始V3的权重并仅重新训练最后一层?,python,tensorflow,Python,Tensorflow,我已经成功地学习了本教程()。我对自己的数据进行了培训,这很有效。但是现在我想在我花了一天时间训练的最后一层继续训练。但是,当我简单地重新运行命令时 python -m scripts.retrain \ --bottleneck_dir=tf_files/bottlenecks \ --how_many_training_steps=500 \ --model_dir=tf_files/models/ \ --summaries_dir=tf_files/training_su

我已经成功地学习了本教程()。我对自己的数据进行了培训,这很有效。但是现在我想在我花了一天时间训练的最后一层继续训练。但是,当我简单地重新运行命令时

python -m scripts.retrain \
  --bottleneck_dir=tf_files/bottlenecks \
  --how_many_training_steps=500 \
  --model_dir=tf_files/models/ \
  --summaries_dir=tf_files/training_summaries/"${ARCHITECTURE}" \
  --output_graph=tf_files/retrained_graph.pb \
  --output_labels=tf_files/retrained_labels.txt \
  --architecture="${ARCHITECTURE}" \
  --image_dir=tf_files/flower_photos
训练从0点开始

我想这样做,因为我希望随着学习的继续调整学习率(以及其他可能的值)


尤其是retain.py文件()很有趣。我还尝试将一些代码从label_image.py复制到retain.py,但没有成功

我认为这不是一个好主意,因为整个网络的权重会根据前一层更新。如果我正确理解了TOD,那么在再培训中只会调整最后一层的权重。特别是如果所有的重量都调整了,整个瓶颈系统就没有意义了。哦,对不起,我现在明白了。所以,我认为应该加载整个网络权重,只解冻最后一层。然后你再培训。