RNN обучаются на последовательностях, которые могут быть различной длины.Размерность одного последовательного элемента составляет (batch_size, time_steps, 1)
.
В рамках предварительной обработки иногда мне требуется масштабировать эту функцию.Например, я хотел бы нормализовать его, используя tft.scale_to_z_score
.
Моя цель заключается в следующем:
Чтение словарей с переменной длиной, например, d = { 'sequential_feature' : [1,2,3,4,5] }, d = { 'sequential_feature' : [15, 4] }
, и предварительная обработка их с использованием preprocessing_fn
.
Анализировать и преобразовывать данные для записи transform_fn
и записывать записи TF.
Преобразовать необработанные словари, например, d = { 'sequential_feature' : [20,40] }
, применяя это transform_fn
при обслуживании, в режиме реального времени, производственных данных.
Я попытался определить схему, используя:
RAW_DATA_FEATURE_SPEC['sequential_feature'] = tf.FixedLenFeature(shape=[1], dtype=tf.float32)
RAW_DATA_METADATA = dataset_metadata.DatasetMetadata(
dataset_schema.from_feature_spec(RAW_DATA_FEATURE_SPEC))
Однако я получаюошибка, связанная с тем, что `DatasetSchema еще не поддерживает 'FixedLenSequenceFeature.'
Я пытался использовать FixedLenFeature()
вместо FixedLenSequenceFeature()
, и я получаю сообщение об ошибке:
ValueError: Cannotзначение подачи формы (1, 21) для Tensor u'transform / input / sequence_feature: 0 ', которая имеет форму' (?, 100) '[во время выполнения AnalyzeAndTransformDataset / AnalyzeDataset / RunPhase [0] / ComputeAnalyzerInputs']
И, наконец, если я использую VarLenFeature()
, я не могу выполнить шаг (3) выше, и я получаю эту проблему .