Python Tensorflow CNN绘图学习率与准确性

Python Tensorflow CNN绘图学习率与准确性,python,tensorflow,tensorboard,Python,Tensorflow,Tensorboard,我想实现循环LR方法(用于寻找最佳学习率边界),这需要我绘制学习率与精度的关系图。但现在,我似乎无法让它工作。当训练模型时,作为下面代码的一部分,它要么绘制一个空图,要么给我空列表,我不确定我是否误解了TF语言中的某些内容 在代码()的基础上进行了一些详细的阐述,在代码的上面,我创建了acc_list=[]和lr_list=[]。这两个列表应该用值填充,包括模型执行的每个全局步骤。所以我想将这些值附加到列表中,当模型完成时,将这两个列表绘制成一个图表,以找到学习率边界。 我需要做更多的“tf编码

我想实现循环LR方法(用于寻找最佳学习率边界),这需要我绘制学习率与精度的关系图。但现在,我似乎无法让它工作。当训练模型时,作为下面代码的一部分,它要么绘制一个空图,要么给我空列表,我不确定我是否误解了TF语言中的某些内容

在代码()的基础上进行了一些详细的阐述,在代码的上面,我创建了
acc_list=[]
lr_list=[]
。这两个列表应该用值填充,包括模型执行的每个全局步骤。所以我想将这些值附加到列表中,当模型完成时,将这两个列表绘制成一个图表,以找到学习率边界。 我需要做更多的“tf编码”吗?现在我认为运行
sess
就足够了,因为这也给出了
当前学习率
当前准确度
,因此这些值是存在的

def run():
#Run the managed session
    with sv.managed_session() as sess:
        for step in range(num_steps_per_epoch * num_epochs):
            #At the start of every epoch, show the vital information:
            if step % num_batches_per_epoch == 0:
                logging.info('Epoch %s/%s', step/num_batches_per_epoch + 1, num_epochs)
                learning_rate_value, accuracy_value = sess.run([lr1, accuracy])
                logging.info('Current Learning Rate: %s', learning_rate_value)
                logging.info('Current Streaming Accuracy: %s', accuracy_value)


            #Log the summaries every 10 steps.
            if step % 10 == 0:
                loss, _ = train_step(sess, train_op, sv.global_step)
                summaries = sess.run(my_summary_op)
                sv.summary_computed(sess, summaries)
                iteration_step += 1

            #Run training if not 10 steps
            else:
                loss, _ = train_step(sess, train_op, sv.global_step)
                iteration_step += 1


            lr_list.append(sess.run([lr1]))
            acc_list.append(sess.run([accuracy]))

        #We log the final training loss and accuracy
        logging.info('Final Loss: %s', loss)
        logging.info('Final Accuracy: %s', sess.run(accuracy))

        plt.plot(lr_list, acc_list)

        #Once all the training has been done, save the log files and checkpoint model
        logging.info('Finished training! Saving model to disk now.')

        sv.saver.save(sess, sv.save_path, global_step = sv.global_step)


if __name__ == '__main__':
    run()

这里没有什么特别的
lr_list.append(sess.run([lr1])
确实会将
lr1
张量的当前值附加到
lr_list
。在这一点上,它是纯Python。如果列表最后为空,请像调试任何常规python代码一样调试它。。。e、 g.确保这条线实际到达的次数与您预期的次数相同,确保在您向列表中添加内容和绘制其值之间没有其他人改变列表。

确实解决了这一问题!必须非常仔细地查看我在何时何地应用sess.run,以及如何确保这些值被保存并在以后可以访问:)