机器学习令人兴奋,但实际上困难且复杂。它涉及大量手动工作,例如将工作流和管道放在一起、设置数据源以及在本地和云部署资源之间切换。Python是一种强大的工具语言,广泛应用于大数据和机器学习领域。这里推荐5个Python库,帮你梳理机器学习之路。PyWrenPyWren允许您将基于Python的科学计算工作负载作为多个AWSLambda函数运行。之前TheNewStack上对该项目的描述使用了AWSLamba作为一个强大的并行处理系统来处理可以分成多个小任务而不占用大量内存或存储空间的项目。这个项目的一个缺点是lambda函数不能运行超过300秒。但如果是几分钟就可以搞定的工作,需要在数据集中运行上千次,那么PyWren会是一个不错的选择。它可以在一定程度上将不能在用户硬件上运行的工作并行化。云。TfdeployGoogle的TensorFlow框架在1.0版本发布后处于鼎盛时期,当时人们在问:如何在不使用TensorFlow本身的情况下使用在TensorFlow上训练的模型?Tfdeploy可以给你答案。它将经过训练的TensorFlow模型导出为“简单的基于NumPy的可调用”,即该模型可以在Python中使用,Tfdeploy和NumPy数学和统计库作为唯一的依赖项。大多数可以在TensorFlow中执行的操作也可以在Tfdeploy中执行,并且您可以通过标准Python隐喻(例如,重载类)扩展库的行为。在Luigi中编写批处理作业只是处理数据堆过程的一部分,您还需要将所有作业串在一起以生成工作流和管道之类的东西。Luigi由Spotify创建,旨在“解决与长时间运行的批处理作业相关的管道问题”。开发者可以通过Luigi采用多种不同且互不相关的数据处理任务,如Hive查询、Java中的Hadoop任务、Scala中的Spark任务、数据库转储表等,还可以创建一个端到端的运行它们的工作流。任务和依赖项的整个描述被构建为Python模块,而不是XML配置文件或其他数据格式,因此它们可以集成到其他以Python为中心的项目中。Kubelib如果您使用Kubernetes作为机器学习作业的编排系统,您会祈祷Kubernetes不会制造比它解决的问题更多的问题。Kubelib为Kubernetes提供了一套Pythonic接口,最初是为了辅助Jenkins脚本编写工作。但它可以在没有Jenkins的情况下使用,并且它可以处理kubectlCLI或KubernetesAPI公开的所有内容。PyTorchPyTorch是由Torch7团队开源的Python-first深度学习框架,提供两大高级特性:强大的GPU加速Tensor计算(类似于numpy),以及在基于磁带的自动升级系统上构建深度神经网络。您可以在需要时重用您最喜欢的python包,如numpy、scipy和Cython来扩展PyTorch。PyTorch通常用作numpy的替代品以利用强大的GPU功能,或用作提供终极灵活性和速度的深度学习研究平台。
