#tensorflow #machine-learning #google-cloud-platform #kubeflow-pipelines
#tensorflow #машинное обучение #google-облачная платформа #kubeflow-конвейеры
Вопрос:
В настоящее время я использую Kubeflow в качестве своего оркестратора. Оркестратор на самом деле является экземпляром конвейера платформы искусственного интеллекта, размещенного на GCP. Как мне создать параметры времени выполнения с помощью расширенного SDK Tensorflow? Я подозреваю, что это тот класс, который я должен использовать, однако документация не очень содержательна и не содержит каких-либо примеров. https://www.tensorflow.org/tfx/api_docs/python/tfx/orchestration/data_types/RuntimeParameter
Ответ №1:
Скажем, например, вы хотите добавить местоположение файла модуля в качестве параметра времени выполнения, который передается компоненту преобразования в вашем конвейере TFX.
Начните с настройки вашего setup_pipeline.py и определение параметра файла модуля:
# setup_pipeline.py
from typing import Text
from tfx.orchestration import data_types, pipeline
from tfx.orchestration.kubeflow import kubeflow_dag_runner
from tfx.components import Transform
_module_file_param = data_types.RuntimeParameter(
name='module-file',
default=
'/tfx-src/tfx/examples/iris/iris_utils_native_keras.py',
ptype=Text,
)
Затем определите функцию, которая определяет компоненты, используемые в вашем конвейере, и передает параметр.
def create_pipeline(..., module_file):
# setup components:
...
transform = Transform(
...
module_file=module_file
)
...
components = [..., transform, ...]
return pipeline.Pipeline(
...,
components=components
)
Наконец, настройте модуль Kubeflow DAG runner так, чтобы он передавал параметр create_pipeline
функции. Смотрите Здесь более полный пример.
if __name__ == "__main__":
# instantiate a kfp_runner
...
kfp_runner = kubeflow_dag_runner.KubeflowDagRunner(
...
)
kfp_runner.run(
create_pipeline(..., module_file=_module_file_param
))
Затем вы можете запустить, python -m setup_pipeline
который создаст файл yaml, который определяет конфигурацию конвейера, который затем можно загрузить в интерфейс Kubeflow GCP.