При декодировании tfrecords выбирает функцию / метки из разных файлов в очереди - PullRequest
0 голосов
/ 03 октября 2018

У меня есть n tfrecord файлов, каждый из которых имеет некоторые функции и соответствующие метки.Когда я их декодирую, я получаю функции из одного файла и метки из другого файла (недетерминированные).Но когда я декодирую каждый файл по отдельности, я получаю ожидаемый результат, поэтому я предполагаю, что моя часть кодирования tfrecord верна.Однако мне нужно использовать очередь для моего приложения.

with tf.Session() as sess:
feature = {'eeg1': tf.FixedLenFeature([], tf.string),
           'stages' : tf.FixedLenFeature([], tf.string)
           }    
filename_queue = tf.train.string_input_producer(filenames)
reader = tf.TFRecordReader()
_, serialized_example = reader.read(filename_queue)    
parsed_features = tf.parse_single_example(serialized=serialized_example, features=feature)   
eeg1 = tf.decode_raw(parsed_features['eeg1'], tf.int16)    
stages = tf.decode_raw(parsed_features['stages'], tf.int64)    
coord = tf.train.Coordinator()    
threads = tf.train.start_queue_runners(sess=sess, coord=coord)
print("_____________________")
print("Stages Shape",sess.run(tf.shape(stages)))
print("eeg1 Shape",sess.run(tf.shape(eeg1)))
coord.request_stop()
coord.join(threads)

Вывод:

_____________________
Stages Shape [1084]
eeg1 Shape [1079 3750]

Формы моих входных данных:

eeg1:  1053 3750
Stages: 1053
_____________________
eeg1:  1049 3750
Stages: 1049
_____________________
eeg1:  1079 3750
Stages: 1079
_____________________
eeg1:  1029 3750
Stages: 1029
_____________________
eeg1:  839 3750
Stages: 839
_____________________
eeg1:  1084 3750
Stages: 1084
_____________________

В примерена выходе объекты (eeg1) читаются из 3-го файла (Dim0 = 1079), а метки (этапы) читаются из последнего файла (Dim0 = 1084).Я ожидаю, что выходные данные будут такими: \

_____________________
Stages Shape [1079]
eeg1 Shape [1079 3750]

Or,
_____________________
Stages Shape [1084]
eeg1 Shape [1084 3750]

Некоторые другие ошибочные выходные данные при разных запусках:

_____________________
Stages Shape [839]
eeg1 Shape [1084 3750]
_____________________
Stages Shape [1084]
eeg1 Shape [1029 3750]
_____________________
Stages Shape [1053]
eeg1 Shape [1084 3750]
_____________________
Stages Shape [1084]
eeg1 Shape [1079 3750]
...