我可以使用 TensorFlow 使用新数据重新训练旧模型吗?

Can I retrain an old model with new data using TensorFlow?

我是 TensorFlow 的新手,我只是想看看我的想法是否可行。

我用多个 class classifier 训练了一个模型。现在我可以在输入中class化一个句子,但是我想改变CNN的结果,例如提高class化的分数或者改变class化。

我想尝试在训练好的模型上只训练一个带有 class 的句子,这可能吗?

如果我对你的问题的理解正确,那么你正在尝试通过进一步的迭代将先前训练的模型重新加载到 运行,在新句子上测试它,或者稍微微调模型。如果是这种情况,是的,您可以这样做。查看保存和恢复模型 (https://www.tensorflow.org/api_guides/python/state_ops#Saving_and_Restoring_Variables)。

给你一个粗略的轮廓,当你最初训练你的模型时,在设置网络架构之后,设置一个保护程序:

trainable_var = tf.trainable_variables()
sess = tf.Session()
saver = tf.train.Saver()
sess.run(tf.global_variables_initializer

# Run/train your model until some completion criteria is reached
#....
#....

saver.save(sess, 'model.ckpt')

现在,重新加载您的模型:

saver = tf.train.import_meta_graph('model.ckpt.meta')
saver.restore('model.ckpt')
#Note: if you have already defined all variables before restoring the model, import_meta_graph is not necessary

这将使您能够访问所有经过训练的变量,并且您现在可以输入任何新句子。希望这有帮助。