小编Erp*_*p12的帖子

为什么操作/工作流程没有在协作者的拉取请求上运行?

我的帐户在另一个用户的存储库上具有“协作者”状态。当我从分支上的分支创建(或添加提交)到上游存储库的主分支的 PR 时,操作/工作流程不会运行。我不是该存储库的第一次贡献者。

我的理解是,来自分叉的 PR 在未经批准的情况下不会运行(根据这些文档),但我不清楚由所有者在存储库中添加为“协作者”是否应该跳过批准的需要。此外,默认设置似乎是仅首次贡献者才需要批准。

我确实看到我的分叉中的每次提交都会启动工作流程运行,因此我知道我的工作流程是有效的。我只需要工作流也在上游存储库上运行,以便运行的状态/结果显示在“拉取请求”页面上。

造成这种情况的可能原因有哪些?

作为参考,这里是我希望在每次推送时运行的工作流程的前几行。

name: CI

on: [ push ]

jobs:
    ... etc ...
Run Code Online (Sandbox Code Playgroud)

github github-actions

7
推荐指数
1
解决办法
965
查看次数

用于 PySpark 的 Pickling 猴子补丁 Keras 模型

我试图实现的总体目标是将 Keras 模型发送给每个 Spark 工作器,以便我可以在应用于 DataFrame 列的 UDF 中使用该模型。为此,Keras 模型需要是可腌制的。

似乎很多人通过猴子修补 Model 类来成功腌制 keras 模型,如下面的链接所示:

http://zachmoshe.com/2017/04/03/pickling-keras-models.html

但是,我还没有看到任何关于如何与 Spark 一起执行此操作的示例。我的第一次尝试只是make_keras_picklable()在驱动程序中运行该函数,这允许我在驱动程序中腌制和取消腌制模型,但我无法在 UDF 中腌制模型。

def make_keras_picklable():
    "Source: https://zachmoshe.com/2017/04/03/pickling-keras-models.html"
    ...

make_keras_picklable()

model = Sequential() # etc etc

def score(case):
    ....
    score = model.predict(case)
    ...

def scoreUDF = udf(score, ArrayType(FloatType()))
Run Code Online (Sandbox Code Playgroud)

我得到的错误表明在 UDF 中解压模型没有使用猴子修补的模型类。

AttributeError: 'Sequential' object has no attribute '_built'
Run Code Online (Sandbox Code Playgroud)

看起来另一个用户在这篇 SO 帖子中遇到了类似的错误,答案是“make_keras_picklable()也在每个工作人员上运行”。没有给出如何做到这一点的例子。

我的问题是:召集make_keras_picklable()所有工人的适当方式是什么?

我尝试使用broadcast()(见下文)但得到了与上面相同的错误。

def make_keras_picklable():
    "Source: https://zachmoshe.com/2017/04/03/pickling-keras-models.html"
    ...

make_keras_picklable()
spark.sparkContext.broadcast(make_keras_picklable())

model = Sequential() …
Run Code Online (Sandbox Code Playgroud)

monkeypatching pickle apache-spark pyspark keras

5
推荐指数
1
解决办法
1175
查看次数