gpt4 book ai didi

pipeline - Sagemaker 管道 |将字符串列表作为参数传递

转载 作者:行者123 更新时间:2023-12-05 05:32:45 26 4
gpt4 key购买 nike

Sagemaker Pipeline 只有单个值(字符串、 float 等)的参数类,但我如何处理最能用列表表示的参数(例如,从具有许多功能的文件)?

最佳答案

背景:一般来说,遵循使用特征名称(例如,dataframe pandas 的列名称)的最佳实践,它们之间应该没有空格。

基本案例

绕过您的问题,您可以使用字符串作为参数,其中每个元素都是一个特征。

features = "feature_0 feature_1 feature_2"

然后,用 ParameterString 正常使用它.

如果不能那样做,我建议在名称之间插入一个特定的分隔模式而不是空格,然后将整个字符串拆分到功能列表中。

此时,在训练脚本中,您将参数传递给 ArgumentParser,您可以将其配置为将以空格分隔的字符串重新处理为单个单词列表。

import argparse

if __name__ == "__main__":

parser = argparse.ArgumentParser()

parser.add_argument(
"--features",
nargs="*",
type=str,
default=[]
)

args, _ = parser.parse_known_args()

额外案例

如果将参数传递给管道组件(例如,预处理器)时,如果字符串被错误地直接解释为列表,后者可以通过输入重新解释函数进行重新处理。

import itertools

def decode_list_of_strings_input(str_input: str) -> []:
str_input = [s.split() for s in str_input]
return list(itertools.chain.from_iterable(str_input))

这是使用此代码的示例:

features = ['a b c']
features = decode_list_of_strings_input(features)

print(features)
>>> ['a', 'b', 'c']

关于pipeline - Sagemaker 管道 |将字符串列表作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74012546/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com