Я уже успешно приспособил TFTransformOutput к некоторым данным (в данном случае это набор данных Census из UCI, общий для примеров TF и TFX.) Я пытаюсь применить преобразователь с помощью метода transform_raw_features (raw_features), но продолжаю получатьошибка:
ValueError: Узел 'transform / transform / input / workclass_copy' имеет атрибут _output_shapes, несовместимый с GraphDef для вывода # 0: формы должны иметь одинаковый ранг, но равны 0 и 1
Копаясь в исходном коде, кажется, что ошибка происходит из save_transform_io в методе _partially_apply_saved_transform_impl при выполнении:
saver = tf_saver.import_meta_graph(meta_graph_def, import_scope=import_scope,
input_map=input_map)
Я изучил meta_graph_def, созданный TFX TFTransform и Beam, и заметил, что графикдействительно имеет ряд скопированных переменных с различиями рангов ввода / вывода.Тем не менее, это ничего, что я имею под контролем.
Столбец в сообщении об ошибке - это «рабочий класс», который является простым категориальным столбцом.Что я могу делать неправильно?Каков наилучший способ отладки этого?К этому моменту я уже углубился в исходный код TF, но, похоже, ошибка возникает из-за того, как был написан граф TFTransform, не знаю, какие рычаги мне нужно изменить / исправить.
Используется TF Transform v0.9 и соответствующий TF v1.9
Traceback (последний вызов был последним): File "/ home / sahmed/workspace/ml_playground/TFX-TFT/trainers.py ", строка 449, в файле parse_csv transformed_stuff = xformer.transform_raw_features (raw_features)" /home/sahmed/miniconda3/envs/kml2/lib/python2.7/site-packagestenorflow_transform / output_wrapper.py ", строка 122, в transform_raw_features self.transform_savedmodel_dir, raw_features)) Файл" /home/sahmed/miniconda3/envs/kml2/lib/python2.7/site-packages/tensorflow_tvedform_ranst_formform_rans ", строка 360, в файле частично_apply_saved_transform_internal Сохраненный_модель_данных, файл_интерпрета_цены, файл tenors_replacement_map) /home/sahmed/miniconda3/envs/kml2/lib/python2.7/site-packages/tensorflow_преобразовать / сохраненный / сохраненный_трансформировать_io.py ", строка 218, в _partially_apply_saved_transform_impl input_map = input_map) файл" /home/sahmed/miniconda3/envs/kml2/lib/python2.7/site-packages/tensorflow/python/training/saverpy "", строка 1960, в файле import_meta_graph ** kwargs)" /home/sahmed/miniconda3/envs/kml2/lib/python2.7/site-packages/tensorflow/python/framework/meta_graph.py ", строка 744, в import_scoped_meta_graphprovider_op_list = provider_op_list) Файл "/home/sahmed/miniconda3/envs/kml2/lib/python2.7/site-packages/tensorflow/python/util/deprecation.py", строка 432, в new_func возвращает функцию (* аргументы, ** kwargs) Файл "/home/sahmed/miniconda3/envs/kml2/lib/python2.7/site-packages/tensorflow/python/framework/importer.py", строка 422, в import_graph_def повышает ValueError (str (e))ValueError: Узел 'transform / transform / input / workclass_copy' имеет атрибут _output_shapes, несовместимый с GraphDef для вывода # 0: фигуры должны быть одинакового ранга, но имеют значения 0 и 1