Closed madhavajay closed 6 years ago
Same problem here.
I think the problem is related to the fact that evaluation is made single batch, and this is not properly handled for the visualization to keep "state" between batches, that's why they chose to start simple with only one image. I tried to check if it was related to the summary being always overwritten by adding a random suffix to the summary and eval_metrics names (dictionary keys) but without success...
Its annoying because it worked in previous versions. To avoid issues with the GPU Memory I ran the eval.py script with CUDA_VISIBLE_DEVICES=-1 which then ran it on the CPU independently of training. Also changing the NUM_EVAL_STEPS doesnt seem to have the expected effect of increasing or decreasing how often evaluation is ran.
This has been fixed and will go out in next release.
@pkulzc Thanks. When will the next release be pushed?
@pkulzc awesome your a ledge!!! 👍
Thanks a lot. When will the this change be pushed ? I will need this function a lot. ^^
Thank you! I hope it will be released really soon, without it evaluations are useless.
@pkulzc Can you please link to the commit that fixes this? It would be highly appreciated as I couldn't find it. Thanks!
@pkulzc it would be nice to have a walk around until the new release. thanks
I tried to find an easy workaround but I couldn't. Any idea when the update will be released? Thanks.
Running into same issue... it worked fine acouple months ago. @pkulzc any ETA or work around?
@ernstgoyer @ldalzovo @aysark If you are only interested in displaying multiple test images with inferred bounding boxes (and don't need the side-by-side comparison with the ground truth) then you can still use the legacy eval method. I have tested this and it works.
python object_detection/legacy/eval.py --logtostderr \
--pipeline_config_path=<path to pipeline.config for trained model> \
--checkpoint_dir=<directory containing model checkpoints> \
--eval_dir=<output directory for eval files to be read by tensorboard>
@pkulzc This has been a while. When will the next release be out? I wonder could you do a bug fix release instead of a full release, if the later is difficult.
@pkulzc Hope it will come soon.
@pkulzc Hi, any update on the PR ?
@harshini-gadige PR has already been merged into master and the issue is resolved
Hi I am still have the same issue using google ML Engineer, with runtime 1.10 or 1.9. Tried to use 1.11, got the error: "INVALID_ARGUMENT: Field: runtime_version Error: The specified runtime version '1.11' with the Python version '' is not supported or is deprecated. Please specify a different runtime version. See https://cloud.google.com/ml/docs/concepts/runtime-version-list for a list of supported versions"
I've stupid question: the above problem is only a "Display" issue (i.e. Tensorboard only displayed 1 image of evaluation) or is it really a problem of the evaluation (i.e. instead of evaluating on the all images in evaluation folder, the program only evaluates on 1 image !!) Thanks for your answer !
Hi, I am facing same issue i.e. instead of evaluating on the all images in evaluation folder, the program only evaluates on 1 image. Anybody have fixed this?? Thanks
Fixed after updating config files. It should be the num_visualizations parameter in your eval_config, the parameter helps in fetching random images for evaluation in tensorboard.
@ernstgoyer @ldalzovo @aysark If you are only interested in displaying multiple test images with inferred bounding boxes (and don't need the side-by-side comparison with the ground truth) then you can still use the legacy eval method. I have tested this and it works.
python object_detection/legacy/eval.py --logtostderr \ --pipeline_config_path=<path to pipeline.config for trained model> \ --checkpoint_dir=<directory containing model checkpoints> \ --eval_dir=<output directory for eval files to be read by tensorboard>
what should i write to eval_dir?
FYI, this is not found in the tutorial (https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/training.html#evaluating-the-model-optional) It's probably a useful thing to have as it makes it easy to find out early on if you have a problem
System information
NUM_TRAIN_STEPS=50000 NUM_EVAL_STEPS=2000 python ./object_detection/model_main.py \ --pipeline_config_path=${PATH_TO_YOUR_PIPELINE_CONFIG} \ --model_dir=${PATH_TO_TRAIN_DIR} \ --num_train_steps=${NUM_TRAIN_STEPS} \ --num_eval_steps=${NUM_EVAL_STEPS} \ --alsologtostderr
Describe the problem
Evaluation only shows 1 image in Tensorboard, see this image: https://imgur.com/a/ZgUoaFS
I have tried changing the pipeline config variables but nothing seems to matter: I tried, max_evals, num_examples, visualization_export_dir, num_visualizations as per: https://github.com/tensorflow/models/blob/master/research/object_detection/protos/eval.proto
Here is the pipeline.config which is written to the training dir by TF:
I have looked at this and tried making this change but it makes no difference. https://stackoverflow.com/questions/51636600/tensorflow-1-9-object-detection-model-main-py-only-evaluates-one-image
Source code / logs
See above