2017-09-24 2 views
0

I die schlanke Bibliothek bin mit meinem eigenen resnet_v2_152 zu trainieren undtf.train.batch Form Fehlpaarung mit sich selbst definiert np.array Daten

mein eigenes Bild numpy Arraydaten konstruieren, die mit 20 Bildern gestapelt ist.

Es bedeutet, dass meine numpy Array-Größe

sein
[224, 224, 20] 

ich nicht Problem, wenn die Daten in tfrecords Umwandlung von Bytes Umwandlung und nutzen Sie die Bildarraydaten nach vorverarbeitet, aber es zeigt immer den Fehler von

mit
INFO:tensorflow:Error reported to Coordinator: 
<class 'tensorflow.python.framework.errors_impl.InvalidArgumentError'>, 
Shape mismatch in tuple component 0. Expected [224,224,3], got [224,224,20] 

und

OutOfRangeError (see above for traceback): FIFOQueue '_5_batch/fifo_queue' 
is closed and has insufficient elements (requested 1, current size 0) 

wenn ich gelten die tf.trai n.batch

Unten ist der Teil meines Codes,

dataset = dataset_factory.get_dataset(
     FLAGS.datasetname, FLAGS.dataset, FLAGS.dataset_dir) 

    network_fn = nets_factory.get_network_fn(
     FLAGS.model_name, 
     num_classes=101, 
     is_training=True) 

    provider = slim.dataset_data_provider.DatasetDataProvider(
      dataset, 
      num_readers=4, 
      common_queue_capacity=20 * FLAGS.batch_size, 
      common_queue_min=10 * FLAGS.batch_size) 
    [image, label] = provider.get(['image', 'label']) 
    label -= 0 

    preprocessing_name = FLAGS.preprocessing_name or FLAGS.model_name 
    image_preprocessing_fn = preprocessing_factory.get_preprocessing(preprocessing_name, is_training=True) 

    eval_image_size = FLAGS.eval_image_size or network_fn.default_image_size 
    image = image_preprocessing_fn(image, eval_image_size, eval_image_size) 

    #Batch size is 1 
    images, labels = tf.train.batch(
      [image, label], 
      batch_size=FLAGS.batch_size, 
      num_threads=4, 
      capacity=5 * FLAGS.batch_size) 

    init_op = tf.group(tf.global_variables_initializer(), 
      tf.local_variables_initializer()) 

    #This part to see the fetched results 
    with tf.Session() as sess: 
     coord = tf.train.Coordinator() 
     threads = tf.train.start_queue_runners(coord=coord) 
     sess.run(init_op) 
     im = sess.run(images) 
     l = sess.run(label) 
     coord.request_stop() 
     coord.join(threads) 

Ich bestehen darauf, den Stil in train_image_classifier.py zu folgen, weil ich die Standard-Trainingsmuster durch die schlanke Bibliothek nutzen möchte .

Ich werde wirklich Ihre Hilfe und Antworten zu schätzen wissen. Dank

Antwort

0

ich mich gerade erlebt und den Fehler herauszufinden, ist auf Grund der Dimension proprocessed Bildgröße in

indem Sie den Code in

vgg_preprocessing.py 

image.set_shape([output_height, output_width, 3]) 

in

image.set_shape([output_height, output_width, channels]) 

jedoch ändern, Ich würde gerne wissen, ob es irgendeinen Effekt gibt, indem ich das ändere, wenn mir jemand antworten kann, würde ich es wirklich schätzen. Danke

Verwandte Themen