首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何定期评估TF-Slim模型的性能?

如何定期评估TF-Slim模型的性能?
EN

Stack Overflow用户
提问于 2017-10-17 11:03:01
回答 2查看 1.6K关注 0票数 2

我正在尝试使用DensNet来解决TF-Slim的回归问题。我的数据包含60000个jpeg图像,每个图像有37个浮动标签。我将我的数据分成三个不同的tfrecords文件,分别是训练集(60%)、验证集(20%)和测试集(20%)。

我需要在训练循环期间评估验证集,并绘制一个类似image的图。在TF-Slim文档中,他们只分别解释了训练循环和评估循环。我只能在训练循环结束后评估验证或测试集。而正如我所说的,我需要在训练期间进行评估。

我试着用slim.evaluation.evaluation_loop函数代替slim.evaluation.evaluate_once。但这并不管用。

代码语言:javascript
复制
slim.evaluation.evaluation_loop(
    master=FLAGS.master,
    checkpoint_dir=checkpoint_path,
    logdir=FLAGS.eval_dir,
    num_evals=num_batches,
    eval_op=list(names_to_updates.values()) + print_ops,
    variables_to_restore=variables_to_restore,
    summary_op = tf.summary.merge(summary_ops),
    eval_interval_secs = eval_interval_secs )

我也尝试过evaluation.evaluate_repeatedly。

代码语言:javascript
复制
from tensorflow.contrib.training.python.training import evaluation

evaluation.evaluate_repeatedly(
    master=FLAGS.master,
    checkpoint_dir=checkpoint_path,
    eval_ops=list(names_to_updates.values()) + print_ops,
    eval_interval_secs = eval_interval_secs )

在这两个函数中,它们只是从checkpoint_dir读取最新的可用检查点,显然是在等待下一个检查点,但是当新检查点生成时,它们根本不执行任何操作。

我在CPU上使用Python 2.7.13和Tensorflow 1.3.0。

任何帮助都将受到高度的感谢。

EN

回答 2

Stack Overflow用户

发布于 2017-10-20 15:08:58

使用evaluate_once与使用睡眠的bash脚本配合使用很好。似乎Tensorboard能够从给定的eval_dir绘制多个单次运行...

所以我使用类似这样的东西:

代码语言:javascript
复制
#!/bin/bash
set -e

# Paths to model and evaluation results
TRAIN_DIR=~/pDL/tensorflow/model/mobilenet_v1_1_224_rp-v1/run0004
TEST_DIR=${TRAIN_DIR}/eval

# Where the dataset is saved to.
DATASET_DIR=/mnt/data/tensorflow/data

# Run evaluation (using slim.evaluation.evaluate_once)
CONTINUE=1

while [ "$CONTINUE" -ne 0 ]
do

python eval_image_classifier.py \
  --checkpoint_path=${TRAIN_DIR} \
  --eval_dir=${TEST_DIR} \
  --dataset_name=master_db \
  --preprocessing_name=preprocess224 \
  --dataset_split_name=valid \
  --dataset_dir=${DATASET_DIR} \
  --model_name=mobilenet_v1 \
  --patch_size=64

echo "sleeping for next run"
sleep 600
done
票数 1
EN

Stack Overflow用户

发布于 2017-11-01 14:09:44

这似乎是在这里解决的正确设置checkpoint_path的问题:https://github.com/tensorflow/tensorflow/issues/13769

其中,答案是通过Ellie68设置:

代码语言:javascript
复制
if tf.gfile.IsDirectory(FLAGS.checkpoint_path):
   if tf.train.latest_checkpoint(FLAGS.checkpoint_path):
       checkpoint_path = tf.train.latest_checkpoint(FLAGS.checkpoint_path)
   else:
       checkpoint_path = FLAGS.checkpoint_path
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46781847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档