使用这些工具加快构建和项目速度
机器学习或数据科学项目非常庞大,它们包含许多类型的文件和许多不同的架构。但令人惊讶的是,我找到了各种项目管理工具,这些工具将帮助您加快项目进度。这些是独立的工具,将帮助您进行库的工作、包管理以及异步工作以加快执行速度。
1. Cookiecutter
Cookiecutter是我们用来切割人们制作的非常硬的饼干的工具。[对我讽刺的抱歉]。让我们详细了解一下cookiecutter。
正如Cookiecutter的官方页面所描述的那样:
Cookiecutter是一个Python包,可以使用pip或其他包管理器轻松安装,它使您能够创建和使用微服务和软件项目的模板。它是一个命令行工具,不需要了解Python即可使用。
当我们开始进行机器学习-深度学习-计算机视觉项目时,我们需要做很多事情来添加到我们的代码库。最初,在构建项目时,很难知道将来我们将需要哪些东西。例如,API、模型、前端、路由、主文件等。在处理复杂项目时,管理所有内容和每种类型文件的路由会变得混乱。Cookiecutter为这类问题提供了解决方案。
当正确执行时,良好的项目组织可以节省时间,但当您开始一个新项目并被迫创建README文件时,它也可能需要时间和精力。您总是可以选择克隆以前的项目并删除或编辑现有的文件和文件夹,但这既不令人愉快,也不比从头开始更快。Cookiecutter提供了内置模板,我们可以使用它们来设置项目结构。
安装Cookiecutter
pip install cookiecutter
使用 conda
conda install -c conda-forge cookiecutter
我们还可以使用内置模板创建项目结构。
# 从cookiecutter-pypackage.git存储库模板创建项目# 您将被提示输入值。# 然后它将在当前工作目录中创建您的Python包,# 基于这些值$ cookiecutter https://github.com/audreyfeldroy/cookiecutter-pypackage# 为简洁起见,GitHub上的存储库可以只使用“gh”前缀$ cookiecutter gh:audreyfeldroy/cookiecutter-pypackage
您可以使用cookiecutter jinja模板创建一个简单的模板,也可以像上面提到的那样导入内置模板。这非常简单,就像安装任何Python库和克隆任何git存储库一样。
cookiecutter文档: 这里
cookiecutter存储库: 这里
我发现了一些对机器学习-深度学习项目有用的模板:
对于数据科学项目: 点击这里
对于计算机视觉: 点击这里
您可以更多地探索cookiecutter,并选择适合您项目的模板。
2. Poetry
诗歌是一种艺术,但不是这里。这里的诗歌是一个包管理器。让我们详细了解一下。
Poetry是一种先进的Python包管理工具,它使创建、管理和发布Python包更加容易。
为管理依赖项、创建软件包并将其上传到PyPI(Python软件包索引),即Python软件包的官方仓库,它提供了一个简单易用的命令行界面。
使用Poetry进行软件包管理的好处[来源]
- 依赖项解析
- 虚拟环境
- 项目脚手架
- 内置构建和打包
- 发布到PyPI
安装Poetry
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
对于Linux、macOS和Windows子系统(WSL)用户,请打开终端并运行以下命令
curl -sSL https://install.python-poetry.org | python3 -
创建新项目
poetry new My Project
这将创建一个名为My Project
的新文件夹,具有以下结构。
My Project├── pyproject.toml├── README.md├── phone_number_validator│ └── __init__.py└── tests └── __init__.py
Poetry将创建如下图所示的文件结构。
![提升您的数据科学、机器学习和计算机视觉项目:有效项目管理的必备工具 四海 第4张-四海吧 使用Poetry后创建的文件结构[作者提供的图像]](https://miro.medium.com/v2/resize:fit:640/format:webp/1*-k7SiVFjJn146QHFv2pT4g.png)
![提升您的数据科学、机器学习和计算机视觉项目:有效项目管理的必备工具 四海 第5张-四海吧 存储各个软件包依赖项的.lock文件[作者提供的图像]](https://miro.medium.com/v2/resize:fit:640/format:webp/1*b-k37ZNy7g05d5f-VarSgg.png)
![提升您的数据科学、机器学习和计算机视觉项目:有效项目管理的必备工具 四海 第6张-四海吧 .toml文件,我们可以像使用pip install一样添加文件[作者提供的图像]](https://miro.medium.com/v2/resize:fit:640/format:webp/1*Zt-mwqFYddQyVPl7zF3SyA.png)
这就是Poetry使用不同的文件来管理项目依赖项的方式。
Poetry文档: 这里
Poetry仓库: 这里
3. FastAPI
FastAPI是一个先进的用于创建Python RESTful API的Web框架。由于它的简洁性、速度和弹性,自2018年首次发布以来,它迅速成为开发者的最爱。对于数据验证、序列化和反序列化,FastAPI使用Pydantic和类型提示。
![提升您的数据科学、机器学习和计算机视觉项目:有效项目管理的必备工具 四海 第7张-四海吧 FastAPI和django、Flask的比较[来源:这里]](https://miro.medium.com/v2/resize:fit:640/format:webp/1*qSAX5cmUAkC7ntv1OtlsaQ.png)
为什么选择FastAPI?因为它具有异步支持,这将使应用程序更快。如果您想要Django或Flask的异步支持,则需要像在Python中薪水一样的东西。
安装
pip install fastapi
您还需要一个ASGI服务器,例如Uvicorn或Hypercorn,用于生产环境。
pip install "uvicorn[standard]"
创建简单的FastAPI。
from typing import Unionfrom fastapi import FastAPIapp = FastAPI()@app.get("/")def read_root(): return {"Hello": "World"}@app.get("/items/{item_id}")def read_item(item_id: int, q: Union[str, None] = None): return {"item_id": item_id, "q": q}
最后来运行FastAPI,
uvicorn main:app --reload
这里我假设 main 是你的 .py 文件名。如果你的文件名不同,你可以使用 uvicorn 你的文件名:app 来运行你的应用程序。
--reload
: 当你进行更改并保存项目时,FastAPI将自动重新加载并获取更改。我们使用这个命令。
如果需要的话,你也可以指定端口和主机。
如何测试FastAPI?使用Postman吗?
我们这里不需要Postman !!!!
FastAPI自带一个内置的 Swagger 接口来处理请求和响应。FastAPI提供了自己的前端来测试API,称为API SWAGGER。

正如名字所暗示的那样,FastAPI非常适合创建用于数据科学、机器学习和深度学习的API用例。
FastAPI文档: 点击这里
FastAPI存储库: 点击这里
这些是我认为对加速你的项目有帮助的各种工具。我简要介绍了这些工具,否则详细阐述会使这篇博客变得很长。但是你肯定可以查看我提供的链接并深入了解这些工具的有效方法。
如果您发现本文有见地
“慷慨使你成为一个更快乐的人”是一个经过验证的事实;因此,如果你喜欢这篇文章,请为它鼓掌。如果你发现这篇文章有见地,请关注我在Linkedin和VoAGI上。您还可以订阅以在我发布文章时收到通知。让我们创建一个社区!感谢您的支持!
此外,VoAGI对我写作没有任何回报,如果你想支持我,可以点击这里给我买杯咖啡。
您可以阅读我与之相关的其他博客
如何过滤泡沫在社交媒体上使您的观点产生偏见
过滤泡沫和回音室:社交媒体如何使我们的观点产生偏见以及AI在其中的作用
VoAGI.com
了解LangChain的理论基础 🦜️🔗: PART 1
链、提示和Langchain中其他重要模块的理论理解
pub.towardsai.net
量化人类行为中的随机性
相信我,人类是世界上最随机的事物
generativeai.pub
全面指南:一篇博客中的顶级计算机视觉资源
保存此博客作为计算机视觉的全面资源
VoAGI.com
祝好!
Chinmay!