python - 有没有办法将 numpy 数组作为 luigi.Parameter 中的默认值?

标签 python numpy luigi

我正在构建一个 luigi 任务,并且我希望有一个 numpy 数组作为输入参数之一的默认值:

import numpy as np
import luigi

class MyLuigiTask(luigi.Task):
    my_array = luigi.Parameter(default=np.array([2, 3]))

然后在运行时我收到以下错误:

Traceback (most recent call last):
  File "/home/dalyag/MyModule/my_nodule.py", line 124, in <module>
    execution_summary = luigi.build([MyLuigiTask()],
  File "/home/dalyag/.local/lib/python3.6/site-packages/luigi/task_register.py", line 88, in __call__
    param_values = cls.get_param_values(params, args, kwargs)
  File "/home/dalyag/.local/lib/python3.6/site-packages/luigi/task.py", line 419, in get_param_values
    if not param_obj.has_task_value(task_family, param_name):
  File "/home/dalyag/.local/lib/python3.6/site-packages/luigi/parameter.py", line 231, in has_task_value
    return self._get_value(task_name, param_name) != _no_value
  File "/home/dalyag/.local/lib/python3.6/site-packages/luigi/parameter.py", line 206, in _get_value
    if value != _no_value:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

据我所知,这是由 Parameter 类试图了解默认值是否存在引起的。

由于默认值保存的不仅仅是值(它保存值的 numpy 数组),因此它无法辨别。

我尝试使用 ListParameter 代替,但得到了相同的错误。

到目前为止我实现的解决方案是使用列表作为默认,然后将其转为数组,但它不是那么优雅......

class MyLuigiTask(luigi.Task):
    my_array = luigi.ListParameter(default=[2, 3])

如果有人有解决方案,我很想听听:)

谢谢!

<小时/>

附:我正在使用 Python3.6.7luigi==2.8.9

最佳答案

Luigi 任务参数不仅仅是函数的参数 - 它们应该从命令行读取(如 luigi --module my_tasks MyLuigiTask --my_array '[2,3]'因此它们仅限于基本类型,如果您需要更专业的类型(例如示例中的 numpy 数组),则无论如何都必须转换它们

关于python - 有没有办法将 numpy 数组作为 luigi.Parameter 中的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59545865/

相关文章:

python - Pandas 合并 300 个数据帧

python - Django re_path 正则表达式不匹配

python - Pandas 根据另一个数据帧的条件划分行

python - Luigi Python 中的资源是什么?

python - 无法从 python 访问 Luigi 服务器

python - 如何在odoo9中传递上下文?

python - 使用 Cython 未获得预期的加速

python - 使用python将 Spring 物理学应用于四元数

python - 从文件夹中的图像序列获取 numpy 数组

python - 访问 AWS 上的 Luigi 可视化工具