Ich versuche, Daten von einer Komponente in die nächste in Azure ML -Pipeline zu übergeben.
Ich kann es in einem einfachen Code tun. und ich definiere sie wie unten: < /p>
components_dir = "."
prep = load_component(source=f"{components_dir}/preprocessing_config.yml")
middle = load_component(source=f"{components_dir}/middle_config.yml")
< /code>
Dann definiere ich eine Pipeline wie unten: < /p>
@pipeline(
display_name="test_pipeline3",
tags={"authoring": "sdk"},
description="test pipeline to test things just like all other test pipelines."
)
def data_pipeline(
# raw_data: Input,
compute_train_node: str,
):
prep_node = prep()
prep_node.outputs.Y_df= Output(type="uri_folder", mode = 'rw_mount', path="path/testing/")
prep_node.outputs.S_df= Output(type="uri_folder", mode = 'rw_mount', path="path/testing/")
transform_node = middle(Y_df=prep_node.outputs.Y_df,
S_df=prep_node.outputs.S_df)
< /code>
Der Prep -Knoten verfügt über ein Skript, an dem Hydra in die Parameter aus einer Konfigurationsdatei gelangt. Dieses Skript hat auch eine Konfigurationsdatei, die das Skript in die Befehlszeile unten wie unten kickt: < /p>
python preprocessing_script.py
--Y_df ${{outputs.Y_df}}
--S_df ${{outputs.S_df}}
< /code>
Ich versuche, die Werte von y_df.path und s_df.path in der Hauptfunktion des Vorbereitungsskripts wie unten zu erhalten: < /p>
@hydra.main(version_base=None, config_path=".", config_name="config_file")
def main(cfg: DictConfig):
parser = argparse.ArgumentParser("prep")
parser.add_argument("--Y_df", type=str, help="Path of prepped data")
parser.add_argument("--S_df", type=str, help="Path of prepped data")
args = parser.parse_args()
# Call the preprocessing function with Hydra configurations
df1,df2 = processing_func(cfg.data_name,cfg.prod_filter)
df1.to_csv(Path(cfg.Y_df) / "Y_df.csv")
df2.to_csv(Path(cfg.S_df) / "S_df.csv")
< /code>
Wenn ich all dies ausführe, erhalte ich einen Fehler in der Vorbereitungskomponente selbst: < /p>
Execution failed. User process 'python' exited with status code 2. Please check log file 'user_logs/std_log.txt' for error details. Error: /bin/bash: /azureml-envs/azureml_bbh34278yrnrfuehn78340/lib/libtinfo.so.6: no version information available (required by /bin/bash)
usage: data_processing.py [--help] [--hydra-help] [--version]
[--cfg {job,hydra,all}] [--resolve]
[--package PACKAGE] [--run] [--multirun]
[--shell-completion] [--config-path CONFIG_PATH]
[--config-name CONFIG_NAME]
[--config-dir CONFIG_DIR]
[--experimental-rerun EXPERIMENTAL_RERUN]
[--info [{all,config,defaults,defaults-tree,plugins,searchpath}]]
[overrides ...]
data_processing.py: error: unrecognized arguments: --Y_df --S_df /mnt/azureml/cr/j/ffyh7fs984ryn8f733ff3/cap/data-capability/wd/S_df
< /code>
Der Code wird gut ausgeführt und die Daten werden zwischen den Komponenten übertragen, wenn keine Hydra beteiligt ist. Wenn jedoch Hydra beteiligt ist, erhalte ich diesen Fehler. Warum ist das so?$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
type: command
name: preprocessing24
display_name: preprocessing24
outputs:
Y_df:
type: uri_folder
S_df:
type: uri_folder
code: ./preprocessing_final
environment: azureml:datapipeline-environment:4
command: >-
python data_processing.py
< /code>
Die Konfigurationsdatei Datenvorverarbeitung enthält nur eine Reihe von Variablen, aber ich habe 2 weitere hinzugefügt, die: < /p>
Y_df:
random_txt
S_df:
random_txt
Die Hauptfunktion des Datenverarbeitungsskripts wird oben erwähnt.
Ich versuche, Daten von einer Komponente in die nächste in Azure ML -Pipeline zu übergeben. Ich kann es in einem einfachen Code tun. und ich definiere sie wie unten: < /p> [code]components_dir = "." prep = load_component(source=f"{components_dir}/preprocessing_config.yml") middle = load_component(source=f"{components_dir}/middle_config.yml") < /code> Dann definiere ich eine Pipeline wie unten: < /p> @pipeline( display_name="test_pipeline3", tags={"authoring": "sdk"}, description="test pipeline to test things just like all other test pipelines." ) def data_pipeline( # raw_data: Input, compute_train_node: str, ):
transform_node = middle(Y_df=prep_node.outputs.Y_df, S_df=prep_node.outputs.S_df) < /code> Der Prep -Knoten verfügt über ein Skript, an dem Hydra in die Parameter aus einer Konfigurationsdatei gelangt. Dieses Skript hat auch eine Konfigurationsdatei, die das Skript in die Befehlszeile unten wie unten kickt: < /p> python preprocessing_script.py --Y_df ${{outputs.Y_df}} --S_df ${{outputs.S_df}} < /code> Ich versuche, die Werte von y_df.path und s_df.path in der Hauptfunktion des Vorbereitungsskripts wie unten zu erhalten: < /p> @hydra.main(version_base=None, config_path=".", config_name="config_file") def main(cfg: DictConfig):
parser = argparse.ArgumentParser("prep") parser.add_argument("--Y_df", type=str, help="Path of prepped data") parser.add_argument("--S_df", type=str, help="Path of prepped data") args = parser.parse_args()
# Call the preprocessing function with Hydra configurations df1,df2 = processing_func(cfg.data_name,cfg.prod_filter) df1.to_csv(Path(cfg.Y_df) / "Y_df.csv") df2.to_csv(Path(cfg.S_df) / "S_df.csv") < /code> Wenn ich all dies ausführe, erhalte ich einen Fehler in der Vorbereitungskomponente selbst: < /p> Execution failed. User process 'python' exited with status code 2. Please check log file 'user_logs/std_log.txt' for error details. Error: /bin/bash: /azureml-envs/azureml_bbh34278yrnrfuehn78340/lib/libtinfo.so.6: no version information available (required by /bin/bash) usage: data_processing.py [--help] [--hydra-help] [--version] [--cfg {job,hydra,all}] [--resolve] [--package PACKAGE] [--run] [--multirun] [--shell-completion] [--config-path CONFIG_PATH] [--config-name CONFIG_NAME] [--config-dir CONFIG_DIR] [--experimental-rerun EXPERIMENTAL_RERUN] [--info [{all,config,defaults,defaults-tree,plugins,searchpath}]] [overrides ...] data_processing.py: error: unrecognized arguments: --Y_df --S_df /mnt/azureml/cr/j/ffyh7fs984ryn8f733ff3/cap/data-capability/wd/S_df < /code> Der Code wird gut ausgeführt und die Daten werden zwischen den Komponenten übertragen, wenn keine Hydra beteiligt ist. Wenn jedoch Hydra beteiligt ist, erhalte ich diesen Fehler. Warum ist das so?$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json type: command
command: >- python data_processing.py < /code> Die Konfigurationsdatei Datenvorverarbeitung enthält nur eine Reihe von Variablen, aber ich habe 2 weitere hinzugefügt, die: < /p> Y_df: random_txt
S_df: random_txt [/code] Die Hauptfunktion des Datenverarbeitungsskripts wird oben erwähnt.
Ich kann keine Möglichkeit finden, Konfigurationsgruppenoptionen aus übergeordneten Verzeichnissen in Hydra zu laden.
e.g. Hier möchte ich die Konfigurationsgruppenoption von...
Ich habe gerade angefangen, Python zu lernen. Ich habe gelesen, dass Sie nicht zwei Variablen mit demselben Namen im selben Bereich haben können.
Aber wenn ja:
a = 10
print(a)
C# 8.0 führte schreibgeschützte-Mitglieder in einer Struktur ein (wie hier erklärt). So können Sie zum Beispiel diese Methode verwenden:
public readonly override string ToString() => $ ({X}, {Y}) is...