Пакет набора данных TensorFlow: Форма пакетного набора данных не отображается после преобразования данных

#tensorflow #input #dataset #pipeline

Вопрос:

Для обучения нейронной сети мы готовим набор данных с помощью TensorFlow, но каким-то образом при создании набора данных размер пакета не добавляется к набору данных.

 def prepare_dataset(images, labels):
          images_placeholder = tf1.compat.v1.placeholder(tf.float32, images.shape)
          labels_placeholder = tf1.compat.v1.placeholder(tf.int64, labels.shape)
          dataset = tf.data.Dataset.from_tensor_slices((images_placeholder, labels_placeholder))
          print("tensor_slice", dataset)
          dataset = dataset.shuffle(buffer_size=10000, seed=config['random_seed']).repeat()
          if config['augment_dataset']:
               dataset = dataset.map(
                        make_data_augmentation_fn(
                            standardization=config['augment_standardization'],
                            flip=config['augment_flip'],
                            padding=config['augment_padding'],
                            is_training=True))
           
          dataset = dataset.batch(batch_size)
          print("dataset:  ", dataset) 
          iterator = tf.compat.v1.data.make_initializable_iterator(dataset)
          print("what comes here!!",iterator)
          return (images_placeholder, labels_placeholder), dataset, iteratorour
 

Вот выходные данные этого набора данных при добавлении пакета с ним. Значение пакета фиксировано и составляет 50. Результат следующий:

 dataset: <BatchDataset shapes: ((?, 32, 32, 3), (?,)), types: (tf.float32, tf.int64)>
            
 
 iterator_handle = tf1.compat.v1.placeholder(tf.string, shape=[])
print("iterator_handle: ",iterator_handle)
input_iterator = tf1.compat.v1.data.Iterator.from_string_handle(iterator_handle,                                                        
                  tf.compat.v1.data.get_output_types(clean_train_dataset_batched),                                                           
                  tf.compat.v1.data.get_output_shapes(clean_train_dataset_batched))

print("input_iterator",input_iterator)
x_input, y_input = input_iterator.get_next()
print(x_input, '', y_input) 
 

Это x_input будет передаваться в сеть, но на выходе получается следующее:

 Tensor("IteratorGetNext:0", shape=(?, 32, 32, 3), dtype=float32)  
Tensor("IteratorGetNext:1", shape=(?,), dtype=int64)