- 机器学习:软件工程方法与实现
- 张春强 张和平 唐振
- 859字
- 2021-01-07 17:12:30
2.5.2 项目工程模板
请读者下载本书附带的cute-datascience-sem,并使用cookiecutter进行构建,根据提示操作,示例如下。
[ ~ ]# cookiecutter /root/pkgs/cute-datascience-sem project_name [project_name]: example_project repo_name [example_project]: author_name [Your name (or your organization/company/team)]: chansonz description [A short description of the project.]: example for readers Select open_source_license: 1 - MIT 2 - BSD-3-Clause 3 - No license file Choose from 1, 2, 3 [1]: Select python_interpreter: 1 - python3 2 - python Choose from 1, 2 [1]: Select use_nvidia_docker: 1 - no 2 - yes Choose from 1, 2 [1]: 1
1.工程目录
上述命令,最终在当前目录生成example_project文件夹。其目录结构如下:
[ example_project ]# tree . ├── data │ ├── external │ ├── processed │ ├── raw │ └── tmp ├── docker-compose_with_build.yml ├── docker-compose.yml ├── Dockerfile ├── docs │ ├── commands.rst │ ├── conf.py │ ├── getting-started.rst │ ├── index.rst │ ├── make.bat │ └── Makefile ├── LICENSE ├── Makefile ├── models ├── notebooks ├── README.md ├── references ├── reports │ └── figures ├── requirements.txt ├── src │ ├── data │ │ └── make_dataset.py │ ├── features │ │ └── build_features.py │ ├── __init__.py │ ├── models │ │ ├── predict_model.py │ │ └── train_model.py │ └── visualization │ └── visualize.py ├── start.sh ├── stop.sh ├── test_environment.py └── tox.ini 16 directories, 23 files
其中主要文件和文件夹解释如下:
1)Dockerfile:可直接在这里指定镜像或构建镜像的指令。示例如下:
FROM chansonz/ml_dev_env:v1.3
2)docker-compose.yml和docker-compose_with_build.yml:Docker Compose的配置文件可使用docker-compose-f指定。内容示例如下:
version: '3' services: notebook-server: build: . ports: - "0.0.0.0:8889:8888" # - "127.0.0.1::8888" volumes: - ./:/mnt entrypoint: bash -c "cd /mnt && jupyter notebook --NotebookApp.token='' --ip=0.0.0.0 --allow-root && /bin/bash" stdin_open: true tty: true
我将解释如下的几个字段,其他内容读者可自行实践理解。
·ports:宿主机开发的端口,此处为8889,也是我们在浏览器中访问的端口。8888为Docker内部端口。0.0.0.0的IP地址表明不限制IP访问,只限本机使用时可使用127.0.0.1。
·volumes:宿主机中当前目录映射到容器中的/mnt目录,实现数据共享。
·entrypoint:进入容器启动点。
·stdin_open和tty:支持shell登录到容器。
3)在docs文件夹中,用户可编写文本rst格式的项目文件,并可使用make html生成相应的项目文档作为报告分享,如图2-5所示。
图2-5 doc文件夹下使用make html生成项目文档
2.环境管理
该模板中包含的环境管理工具是make,支持的命令定义在Makefile中。该环境管理提供如下的make命令,读者可以直接输入make命令查看,如表2-4所示。
表2-4 数据科学工程中常用命令介绍
一个常用的管理流程如下。
·启动:start.sh。
·查看端口信息:make profile。
·停止:stop.sh。
注意:make(GNU Make)是Linux系统中程序构建的工具,可完成具有复杂依赖程序模块的构建工作,Linux系统级开源软件的构建几乎都使用make。make当然也可用于管理建模流程的pipeline,建模流程的依赖关系定义在Makefile即可。读者可自行实践。