tkuanlun350 / Tensorflow-SegNet

Implement slightly different caffe-segnet in tensorflow
MIT License
369 stars 164 forks source link

OutOfRangeError #6

Open FarnooshGhadiri opened 7 years ago

FarnooshGhadiri commented 7 years ago

Hi Tseng,

First thank you for your code. I am new in python and deep learning and my question may seems too simple. I run your code with the Camvid data set and it had not any problem. I tried it on my dataset, the problem is if I keep the number of training set and validation set same as CamVid the code work. But If the number of image in the training set and validation set changes, code runs to about 300 step and I got this error: OutOfRangeError (see above for traceback): RandomShuffleQueue '_4_shuffle_batch..

I should mention that, I have changed the following variables NUM_EXAMPLES_PER_EPOCH_FOR_TRAIN = 12500 # Number of training images NUM_EXAMPLES_PER_EPOCH_FOR_TEST = 101 # Number of images in the test set

Should I change the other variables if the size of dataset changes?

tkuanlun350 commented 7 years ago

Hi, Those variables are used to control min_queue_example (in Inputs.py line 112.) It shouldn't caused any error even the number are not matched with your dataset. The path to your own dataset is set correct? You can checked to filenames before feed it into queue.

I think its uses the original CamVid dataset so the min_queue size are larger than CamVid's training set.

I will also look into this problem and make better documentation, thanks

weimin023 commented 6 years ago

@tkuanlun350 Hi, thanks for your segnet code and comments. I also have a problem. The dataset I use is: https://project.inria.fr/aerialimagelabeling/contest/ Because of the different image dimension [5000,5000,3] (height,width,channel), I change layer parameters in the function "inference" in "model.py" correctly. But I got the error: https://imgur.com/9GOGjR4 I seems like dimension elimination?

2500000000 means 5000 x 5000 x 100(batch size) 255 means classes

I print almost all the layer dimensions, but I can not figure out what does "12" means? And why its dimension change into only one.

ManivannanMurugavel commented 6 years ago

@weimin023 "12" means default camvid dataset classes. If you have "255" classes please change into 255 and resize your image to 360*480 accuracy wont get affected. "And why its dimension change into only one." He is basically one hot encoding. Therefore he has to flatten the pixel values to get one hot format.

@LavalPolymtl Solution to this ERROR "RandomShuffleQueue '_4_shuffle_batch.." Please go to Inputs.py and see 83 line and change tf.image.decode_png(labelValue) to tf.image.decode_png(labelValue,1)

Please refer: https://stackoverflow.com/questions/46099109/outofrangeerror-randomshufflequeue-2-shuffle-batch-random-shuffle-queue-is-c/46955407#46955407