Я написал простую модель TF, используя Estimator. Простая версия работала, но с большим размером ввода во время обучения мой код сталкивался с ошибкой памяти. Для этого я хочу отправить данные в мою функцию поезда в пакетном режиме и выполнить предварительную обработку в пакетном режиме вместо целых данных. У меня есть код ниже, который сталкивается с ошибками. Может кто-то любезно пересмотреть и помочь мне понять, что не так -
def train_fn_custom(features, labels, batch_size):
print(type(features)) // gives <class 'numpy.ndarray'>
print(type(labels))
def _preprocess_function(features, labels):
print(type(features)) // gives <class 'tensorflow.python.framework.ops.Tensor'>
print(type(labels))
features=tokenizer.texts_to_sequences(features, maxlen)
features=sequence.pad_sequences(features, maxlen=maxlen)
features=features.astype(np.float32)
labels=utils.to_categorical(labels, nb_classes)
labels=labels.astype(np.float32)
return features, labels
dataset = tf.data.Dataset.from_tensor_slices((features, labels))
dataset = dataset.map(_preprocess_function)
dataset = dataset.batch(batch_size)
return dataset.make_one_shot_iterator().get_next()
batch_size = 128
customTrain = lambda: train_fn_custom(X1, y_train, batch_size)
estimator_model.train(input_fn=customTrain, steps=10000)
Ошибка:
in texts_to_sequences_generator
for text in texts:
File "/usr/local/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 459, in __iter__
"Tensor objects are only iterable when eager execution is "
TypeError: Tensor objects are only iterable when eager execution is enabled. To iterate over this tensor use tf.map_fn.