我有一个在Jupter Notebook中创建的python程序。由于数据量和我使用的优化算法,在一定范围内进行4倍自定义交叉验证需要大约30分钟才能完成。
我的电脑环境:CPU i5 3.3 GHz,8 GB DDR3 RAM,SSD。
我想知道
如果可以将其部署到某个服务器并可能使速度更快一些? (数据文件只有大约30MB,我认为可以上传数据和程序)。这也可能有助于其他想要使用该计划的人。
我可以做任何事情来加速交叉验证吗?这是一种手动过程。我使用sklearn.cross_validation.KFold
来提取火车和测试集。然后我遍历每个折叠以构建模型并测试其结果。我不确定是否可以封装我的模型构建方法并以并行方式执行交叉验证?
答案 0 :(得分:1)
1:有一些付费的HPC服务器,如亚马逊,但这不是SO的主题。
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