Я хочу знать, создал ли кто-нибудь свою собственную функцию ввода для оценки тензорного потока? как в ( ссылка ) это изображение:
где говорят, что рекомендуется использовать tf.data.dataset. Но я не хочу использовать этот, так как я хочу написать свой собственный итератор, который выдает данные в пакетном режиме и также перемешивает их.
def data_in(train_data):
data = next(train_data)
ff = list(data)
tf.enable_eager_execution()
imgs = tf.stack([tf.convert_to_tensor(np.reshape(f[0], [img_size[0], img_size[1], img_size[2]])) for f
in ff])
lbls = tf.stack([f[1] for f in ff])
print('TRAIN data: %s %s ' % (imgs.get_shape(), lbls.get_shape()))
return imgs, lbls
вывод: TRAIN data: (10, 32, 32, 3) (10,)
где train_data - это объект-генератор, который проходит через мой набор данных, используя iter и np.reshape (f [0], [img_size [0], img_size 2 , img_size 2 ] в основном изменяет данные, которые я извлекаю, до требуемых размеров, и это пакет всего набора данных. Я использую стек для преобразования списка тензоров, чтобы преобразовать их в сложенные тензоры. Но когда я использую это с оценками, я получаю ошибка для функций, предоставляемых модели, из-за которых функции не имеют get_shape (). Когда я тестирую его без оценщика, он работает хорошо, а get_shape () также работает хорошо.