Изначально я использовал dataset_from_tensor_slices, но так как данные слишком велики (превышает лимит 2 ГБ), мне пришлось использовать dataset_from_generator. Это моя функция ввода, но я получаю эту ошибку: функции должны быть словарём Tensor
s.Заданный тип: "class'ensorflow.python.framework.ops.Tensor '". До перехода от тензорных срезов к генератору не было выдано никаких ошибок (до предела 2 ГБ). Оба объекта и метки являются панелями данных pandas.
def my_input_fn(features, targets, batch_size=1, shuffle=True, num_epochs=None):
features = {key:np.array(value) for key,value in dict(features).items()}
print(type(features))
print(type(targets))
def gen():
for feature, target in (features, targets):
yield feature, target
ds = Dataset.from_generator(gen,(tf.float32,tf.float32), (tf.TensorShape([]), tf.TensorShape([None])))
ds = ds.batch(batch_size).repeat(num_epochs)
if shuffle:
ds = ds.shuffle(10000)
features, labels = ds.make_one_shot_iterator().get_next()
return features, labels