【发布时间】:2019-04-08 15:57:30
【问题描述】:
我在 AWS 中有一个相对简单的线性回归 lambda。该函数调用的每个实例的日志显示如下:
/opt/python/sklearn/externals/joblib/_multiprocessing_helpers.py:38: UserWarning: [Errno 38] Function not implemented. joblib will operate in serial mode
warnings.warn('%s. joblib will operate in serial mode' % (e,))
我怀疑这是由于 sklearn 在 lambda(即“无服务器”)上运行并试图根据 this question 和 this GH issue 确定它的多处理能力。
我也从 GH 了解到,这不是一个“可修复”的问题,当在此硬件上使用这些依赖项进行部署时,它总是会发生。我正在恢复我的预期结果(尽管我目前正在最大化默认的最小 lambda 内存 128mb)。
我的目标是控制警告,并且会知道是否有办法:
- 停止 sklearn 寻找多处理,从而防止发出警告
- 捕获这个特定的警告并防止它从我的函数传递到 cloudwatch 日志中
- 如果两者都是可能的,从 aws 架构/pythonic 的观点来看,哪一个更可取?
【问题讨论】:
标签: python-3.x lambda scikit-learn warnings joblib