Python 如何加快在Jupyter笔记本中创建的程序?
我有一个python程序,它是在Jupter笔记本中创建的。由于我使用的数据量和优化算法,在一定范围内进行4倍的自定义交叉验证需要大约30分钟才能完成 我的电脑环境:CPU i5 3.3 GHz,8 GB DDR3 RAM,SSD 我在想Python 如何加快在Jupyter笔记本中创建的程序?,python,jupyter-notebook,Python,Jupyter Notebook,我有一个python程序,它是在Jupter笔记本中创建的。由于我使用的数据量和优化算法,在一定范围内进行4倍的自定义交叉验证需要大约30分钟才能完成 我的电脑环境:CPU i5 3.3 GHz,8 GB DDR3 RAM,SSD 我在想 如果可以将其部署到某个服务器上,并且可以使速度加快一点?(数据文件只有30MB左右,我认为可以同时上传数据和程序)。这也可以帮助其他想要使用该程序的人 我能做些什么来加速交叉验证吗?这是一种手动过程。我使用sklearn.cross_validation.KF
sklearn.cross_validation.KFold
提取训练集和测试集。然后我循环通过每个折叠来构建模型并测试其结果。我不确定是否可以封装我的模型构建方法并在Parralel中执行交叉验证1:有几个付费的HPC服务器,比如亚马逊,但这是离题的 2:交叉验证的迭代可以并行进行 由于交叉验证没有连接,我建议如下:
import multiprocessing
def validation_function(args):
do_validation
...
...
p = multiprocessing.Pool(processes=multiprocessing.cpu_count())
for _ in p.imap_unordered(validation_function, args):
pass
是否有任何文档推荐?我从未使用过多处理,我正在阅读,但它似乎太长了。我想这是一个很好的开始。并行化并不是一件容易的事情,最后,我使用了
joblib
。这是一个非常简单的并行工作。你也可以使用这个功能吗?交叉验证。交叉验证分数(clf、X数字、y数字、cv=kfold、n作业=-1)。然后n_jobs将是指定所用进程/CPU数量的参数。@Ohumeronen但是定制clf
非常困难。在我的自定义交叉验证中,它涉及KDE、优化算法和其他一些?对于您的第一个问题,我建议您租用或设置一台服务器,并熟悉SSH。可能使用-X参数对服务器进行可视间隔。@Ohumeronen,是的,但这只是几个步骤。