Я пытаюсь добавить индексы слов в функциональные столбцы пользовательского оценщика.Вот что у меня есть:
Функция модели:
def model_function(features, labels, mode, params):
word_categorical_column = tf.feature_column.categorical_column_with_identity(key="word_column", num_buckets=10000)
feature_columns = [tf.contrib.layers.embedding_column(word_categorical_column, 64)]
input = tf.feature_column.input_layer(features, feature_columns )
...
Оценщик:
estimator = tf.estimator.Estimator(
model_fn=model_function,
model_dir = model_directory,
params={
'n_classes': 5,
})
Функция ввода:
def input_fntn(train_x, train_y, batch_size):
dataset = tf.data.Dataset.from_tensor_slices(({"word_column":train_x}, train_y))
dataset = dataset.shuffle(1000).repeat().batch(batch_size)
return dataset
train_x isмассив numpy [n_samples, n_features], содержащий индексы дополненных слов.
Запуск метода обучения:
estimator.train(
input_fn=lambda:input_fntn(train_x, train_y, 128),
steps=100)
выдает ошибку: AttributeError: '_IdentityCategoricalColumn' объект не имеет атрибута 'length'
Я попытался использовать взамен categoryorical_column_with_vocabulary_list, но это приводит к той же ошибке.Я думаю, что делаю основную ошибку.Любая помощь будет оценена.