神经网络学习
模型保存
当我们搭建好神经网络的学习过程,传入训练数据进行训练,那么如何将训练完成的模型保存以备之后预测时直接使用呢?因此,在神经网络的训练框架中我们还需要定义模型的保存模块,使用tensorflow实现程序如下:
saver = tf.train.Saaver()
with tf.Session() as sess:
for i in range(STEPS):
if i%轮数 == 0: //定义一定轮数保存模型
saver.save(sess, os.path.join(MODEL_SAVE_PATH, MODEL_NAME),global_step=global_step)
准确率(Accuracy)计算
如何计算模型的准确率呢?
(1) 比较模型预测结果的最大值所在位置及真实值位置的关系,若相等则为1,否则表示为0
(2) 将比较结果求平均值,即模型准确率
使用tensorflow实现模型准确率计算程序如下:
correct_prediction = tf.equal(tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
断点续训
在实际运用中,训练一个神经网络往往需要很长时间,那么,在训练过程中可能遇到断电等一些情况导致训练终止,重新训练会浪费大量的时间,因此,实现断点续训让模型能够在训练终止后再次训练时恢复到上次训练的位置具有重要的实际意义。
如何实现断点续训呢?使用tensorflow实现程序如下:
ckpt = tf.train.get_checkpoint_state(MODEL_SAVE_PATH) //从模型保存文件夹中查找模型文件
if ckpt and ckpt.model_checkpoint_path:
saver.restore(sess,ckpt.model_checkpoint_path) //若模型文件存在,则加载模型保存数据到当前会话
实际运用中,根据训练数据的规模定义保存模型的频率,配合断点续训程序保证模型的稳健运行。