В настоящее время я пытаюсь наполнить набор данных несколькими столбцами с многовалентными функциями через конвейер TensorFlow Extended (TFX). Вот строка из моих выборочных данных:
user_id 29601
product_id 28
touched_product_id [2435, 28]
liked_product_id [2435, 28]
disliked_product_id []
target 1
Как видите, столбцы (функции) touched_product_id
, liked_product_id
, disliked_product_id
многовалентны.
Теперь, чтобы пропустить эти данные через уровень проверки TFX, я следую приведенному ниже руководству:
https://www.tensorflow.org/tfx/tutorials/tfx/components_keras
В соответствии с руководством я создаю несколько TFRecord
файлов, используя экземпляр CSVExampleGen
, и перехожу к генерации статистики и схемы, как показано ниже:
# create train and eval records
c = CsvExampleGen(input_base='sample_train')
context.run(c)
# generate statistics
statistics_gen = StatisticsGen(
examples=c.outputs['examples']
)
context.run(statistics_gen)
# generate schema
schema_gen = SchemaGen(
statistics=statistics_gen.outputs['statistics'],
infer_feature_shape=False)
context.run(schema_gen)
context.show(schema_gen.outputs['schema'])
Последняя схема, отображаемая приведенным выше кодом:
Type Presence Valency Domain
Feature name
'disliked_product_id' BYTES required single -
'liked_product_id' BYTES required single -
'product_id' INT required single -
'target' INT required single -
'touched_product_id' BYTES required single -
'user_id' INT required single -
Ясно, что многовалентность ошибочно считается однолистной. Пытаясь исправить это, я вручную загрузил Schema
proto и попытался настроить свойство valence
.
schema_path = os.path.join(schema_gen.outputs['schema'].get()[0].uri, 'schema.pbtxt')
schema = schema_pb2.Schema()
contents = file_io.read_file_to_string(schema_path)
schema = text_format.Parse(contents, schema)
# THIS LINE DOES NOT WORK
tfdv.get_feature(schema, 'user_id').valence = 'multiple'
Ясно, что эта последняя строка не работает, потому что, к моему удивлению, отсутствует свойство valence
. Я попытался изучить спецификацию Schema
proto, но не нашел свойства valence
. Кто-нибудь знает, как я могу это решить? Любое руководство было бы невероятным.