как мы подаем входные данные в estimator.linear_classifier из памяти, используя make_csv_dataset (), он не принимает тип данных, который возвращает эта функция, я много чего пробовал
ссылка для этого блокнот: ссылка на колаб
def get_dataset(file_path, **kwargs):
dataset = tf.data.experimental.make_csv_dataset(
file_path,
batch_size=5, # Artificially small to make examples easier to show.
label_name=LABEL_COLUMN,
na_value="?",
num_epochs=1,
ignore_errors=True,
**kwargs)
return dataset
raw_train_data = get_dataset(train_file_path)
raw_test_data = get_dataset(test_file_path)
def make_input_fn(train_data, num_epochs=10, shuffle=True, batch_size=32):
def input_function():
ds = train_data
if shuffle:
ds = ds.shuffle(1000)
ds = ds.batch(batch_size).repeat(num_epochs)
return ds
return input_function
linear_est = tf.estimator.LinearClassifier(categorical_columns+numeric_columns)
linear_est.train(train_input_fn)
result = linear_est.evaluate(train_input_fn)
clear_output()
print(result)
train_input_fn = make_input_fn(train_data)