【问题标题】:avoid serializing objects in map_blocks calls避免在 map_blocks 调用中序列化对象
【发布时间】:2021-04-06 01:12:06
【问题描述】:

我将 Dask 与深度学习模型和大型数组一起使用。特别是,我正在尝试使用 map_blocks 进行预测

array.map_blocks(model.predict)

由于序列化需要时间,有没有办法避免每次调用都序列化模型?

【问题讨论】:

  • 如果你事先将模型分散给工人会发生什么?

标签: python dask


【解决方案1】:

至少有两个广泛的选择:

  1. Scatter(正如上面 cmets 中 @Nick Becker 所建议的那样),粗略的伪代码:
fut_model = client.scatter(model)
array.map_blocks(lambda x: fut_model.predict(x))
  1. 将预测包装在将加载所需组件的函数中,伪代码如下:
def model_predict(X_chunk):
    model = pickle.load(mypath) # or another loading method
    return model.predict(X_chunk)

array.map_blocks(model_predict)

您可能还会发现 these answers 相关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 2018-09-04
    • 1970-01-01
    • 2014-11-21
    • 2014-03-09
    • 1970-01-01
    • 2017-06-29
    相关资源
    最近更新 更多