我需要运行一个scikit-learn RandomForestClassifier,同时运行多个进程。为此,我正在研究实现一个具有N个工人的Dask调度器,其中调度器和每个工人在一个单独的Docker容器中运行。
客户端应用程序也在一个单独的Docker容器中运行,它将首先连接到调度器,并使用with joblib.parallel_backend('dask'):
启动scikit学习过程。
用于训练机器学习模型的数据存储在客户端应用程序Docker容器中的镶木地板中。让员工访问数据的最佳做法是什么?数据是否应该位于共享目录中的其他位置?
由于Apach Parquet是基于文件系统的,它完全取决于您正在构建的体系结构,这意味着您的项目是在单个服务器上运行,还是分布在多个服务器上。
如果您在单个服务器上运行,那么容器之间的docker volume
的简单共享,甚至通过本地文件存储的公共装载都可以完成这项工作。
另一方面,如果您正试图在多个服务器上设置分布式培训,那么您将需要某种类型的文件服务器来处理这些文件。
共享文件的一种简单方法是通过NFS
服务器,其中一个常用的映像是erichough/nfs服务器。您将需要使用此容器来export
存储文件的本地文件夹,并需要mount
其余服务器上的fs
。