【发布时间】:2021-12-03 13:25:40
【问题描述】:
我一直在创建一个使用 ML 来预测一些输出的 API,我需要每 1 分钟更新一次数据集(获取新数据)并每 12 小时重新训练一次数据集,我正在使用多处理来实现这一点,我的应用程序部署在 4 GB 专用服务器上。
我正在为烧瓶应用程序的网络服务器使用 LSTM 模型和 Nginx/gunicorn。
这是我如何调用这两个函数的代码 sn-p:
def fetch():
while True:
#fetching done
time.sleep(60) #runs every 60 minutes
def retrain():
while True:
#training of LSTM model
time.sleep(43200) #runs every 12 hours
multiprocessing.Process(target=fetch).start()
multiprocessing.Process(target=retrain).start()
if __name__ == '__main__':
multiprocessing.Process(target=fetch).start()
multiprocessing.Process(target=retrain).start()
app.run(debug=False, host='0.0.0.0')
我面临的问题是 CPU 使用率,我的 CPU 使用率高达 190%,我的数据集的最大长度是 100k,我想知道应该有更好的方法吗?
谢谢
【问题讨论】:
-
我会使用系统的任务管理器来运行它。在 Linux 上,我会使用程序
cron每 1 分钟运行一次脚本,每 12 小时运行一次其他脚本。然后脚本不必一直运行。
标签: python multithreading flask flask-sqlalchemy