moxing.tensorflow是否包含整个TensorFlow,如何对生成的checkpoint进行本地Fine Tune?
问题现象
使用MoXing训练模型,“global_step”放在Adam名称范围下,而非MoXing代码中没有Adam名称范围,如图1所示。其中1为使用MoXing代码,2代表非MoXing代码。
处理方法
Fine Tune就是用别人训练好的模型,加上自己的数据,来训练新的模型。相当于使用别人的模型的前几层,来提取浅层特征,然后在最后再落入我们自己的分类中。
由于一般新训练模型准确率都会从很低的值开始慢慢上升,但是Fine Tune能够让我们在比较少的迭代次数之后得到一个比较好的效果。Fine Tune的好处在于不用完全重新训练模型,从而提高效率,在数据量不是很大的情况下,Fine Tune会是一个比较好的选择。
moxing.tensorflow包含所有的接口,对TensorFlow做了优化,里面的实际接口还是TensorFlow的原生接口。
当非MoXing代码中没有Adam名称范围时,需要修改非MoXing代码,在其中增加如下内容:
with tf.variable_scope("Adam"):
在增加代码时不建议使用自定义“global_step”,推荐使用tf.train.get_or_create_global_step()。