31 篇文章带有标签 “machine-learning”

Ultralytics Hub 快速入门

准备数据集

目录结构

data.yaml

train: ../train/images
val: ../valid/images
test: ../test/images

nc: 1
names: ['logo']

压缩成 zip 文件

登录 Ultralytics Hub

Projects

创建项目

Datasets

上传数据集

数据集图像

数据集概貌

Train

选择数据集

选择模型

选择训练参数

Google Colab 训练模型

使用上图的 API key 替换 PASTE_API_KEY_HERE

Done

Models

模型训练的性能指标

模型测试

模型部署

参考资料

在 MacBook Pro M2 Max 上安装 PyTorch

安装 PyTorch

sudo conda create --name pytorch python
conda activate pytorch

conda install pytorch torchvision torchaudio -c pytorch

安装每日构建版本

pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu

升级

pip3 install --upgrade --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu

训练模型 import torch import torchvision import torchvision.transforms as transforms print(f"PyTorch version: {torch.

在 MacBook Pro M2 Max 上安装 TensorFlow

安装 TensorFlow

sudo conda create --name tensorflow python
conda activate tensorflow

# 不指定环境(-n),默认安装到base环境
sudo conda install -c apple -n tensorflow tensorflow-deps
pip install tensorflow-macos
pip install tensorflow-metal
sudo conda install notebook -y

pip install numpy  --upgrade
pip install pandas  --upgrade
pip install matplotlib  --upgrade
pip install scikit-learn  --upgrade
pip install scipy  --upgrade
pip install plotly  --upgrade

验证 import sys import tensorflow.keras import tensorflow as tf import platform print(f"Python Platform: {platform.

学习【机器学习平台】建设的经验

快手技术 VP 王仲远对于 AI、大模型、深度学习的预测 2021-09-02

CV、Speech、NLP,背后主流的模型基本上都是基于 Transformer。在未来可能各方面的技术边界越来越模糊,事实上现在已经逐渐出现越来越多的多模态技术研究。技术融合变得门槛很低,但大家做的事越来越相像。

重要的研究方向

  • 大模型
  • 怎么让黑盒的深度学习跟知识能够进行融合变成可解释,然后增加常识。

近两年模型都已经到万亿级别了

  • Google Switch Transformer
  • OpenAI GPT-3
  • 阿里 M6

搜索系统是先以内容分析为主,再结合了用户行为;而推荐系统则是以用户行为为主,再尝试结合内容理解。 内容理解可以帮助推荐系统为用户做更加个性化的内容分发和匹配,探索如何更好地利用内容理解为推荐系统进一步提升个性化推荐能力。

怎么去考虑 AI 技术布局?(任何新技术都是类似的) 如果我们都只关注于未来三个月或半年就能落地的技术,那么很显然它是不具备可持续发展的。反之,如果只关注中长期才能见效的研究方向和研究项目的话,那么不确定性又会非常大,毕竟业务对于 AI 技术的渴求是非常强烈的。所以技术布局本质上是一个短期项目与长期项目配比的问题。

AI 模型打包发布

工程目录

model-package-release/
├── Dockerfile
├── Dockerfile.ubuntu
├── main.sh
└── .ssh
    ├── id_rsa
    ├── id_rsa.pub
    └── known_hosts

main.sh #!/usr/bin/sh # 模型和配置文件 FILE_CONFIG=config.yaml FILE_MODEL=model.onnx # 用于构建模型压缩包的目录结构 DIR_MODELS=models if [ -z $1 ] then echo "Usage: " echo "Environment variable:" echo " MODEL_SERVER_USERNAME Default: username" echo " MODEL_SERVER_IP Default: ip" echo "" echo "docker run --rm -v /home/ai/models/sign.yaml:/app/config.yaml \" echo " -v /home/ai/models/sign.onnx:/app/model.

AI 数据集打包发布

数据集打包目录结构

ai-project/
├── labelimg
│   ├── 1.jpg
│   ├── 1.xml
│   ├── 2.jpg
│   ├── 2.xml
│   ├── 3.jpg
│   ├── 3.xml
│   ├── 4.jpg
│   └── 4.xml
├── classes.txt
├── data.yaml
├── images
│   ├── train
│   │   ├── 1.jpg
│   │   └── 2.jpg
│   └── val
│       ├── 3.jpg
│       └── 4.jpg
└── labels
    ├── train
    │   ├── 1.txt
    │   └── 2.txt
    └── val
        ├── 3.txt
        └── 4.txt

打包

DATE=$(date '+%Y-%m-%d')
tar cvf sign-yolo-$DATE.tar labelimg/ classes.txt images/ labels data.yaml

上传数据集服务器

DATASET_SERVER_PATH=username@ip:/data/datasets
scp sign-yolo-$DATE.tar $DATASET_SERVER_PATH

Dockerfile ONNXRuntime GPU

FROM nvidia/cuda:11.1-cudnn8-devel-ubuntu20.04 AS builder
LABEL maintainer="wang-junjian@qq.com"

#E: Failed to fetch https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64/by-hash/SHA256/f10fc2a7a0d072ddcf141af2ef28f1e97ab4b3a5c3b9bbe34ed845d174fb4979  404  Not Found [IP: 61.155.167.2 443]
#E: Some index files failed to download. They have been ignored, or old ones used instead.
RUN rm /etc/apt/sources.list.d/cuda.list /etc/apt/sources.list.d/nvidia-ml.list

RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \
    apt-get update && \
    apt-get install language-pack-en git python3 python3-pip -y && \
    DEBIAN_FRONTEND=noninteractive apt-get install cmake -y && \
    locale-gen en_US.UTF-8 && \
    update-locale LANG=en_US.UTF-8

RUN pip3 install numpy -i https://mirrors.aliyun.com/pypi/simple/
// ...

在YOLOv5中运行JupyterLab和TensorBoard

构建可用的JupyterLab和TensorBoard

  • 启动YOLOv5容器
docker run --ipc=host --runtime nvidia -it -p 8888:8888 \
    -v ${dataset_dir}:/usr/src/app/project \
    ultralytics/yolov5:latest
  • 安装版本1的TensorBoard。(解决FAQ1的问题:jupyter-tensorboard 0.2.0不支持高于TensorBoard 2.0的版本。YOLOv5镜像中安装的TensorBoard 2.4的版本。)
pip uninstall tensorboard -y && pip install tensorboard==1.15
  • 运行JupyterLab
jupyter lab --no-browser --ip 0.0.0.0 --port 8888
  • 本地浏览器进行访问
http://ip:8888/lab

FAQ Launcher Error - Invalid response: 500 Internal Server Error Uncaught exception POST /api/tensorboard?1609481325314 (192.168.1.

使用Detectron在自定义数据集上训练MaskRCNN

拉取镜像 Detectron

sudo docker pull gouchicao/detectron:latest

创建工程(COCO格式)

└── helmet          工程目录
    ├── images        样本图片目录
    ├── helmet_train.json 训练的样本标注信息
    ├── helmet_val.json  验证的样本标注信息
    ├── test               测试图片目录
    ├── predict            预测图片目录
    ├── model        模型目录
    └── e2e_mask_rcnn_R-101-FPN_2x.yaml  网络配置文件

运行容器 Detectron,挂载工程目录。

sudo docker run -it --runtime=nvidia --name detectron-helmet \
                -v /helmet-project-realpath:/detectron/project \
                gouchicao/detectron:latest

修复BBOX_XFORM_CLIP错误

nano /detectron/detectron/utils/env.py 
yaml_load = lambda x: yaml.load(x, Loader=yaml.Loader)

工程设置 配置数据集 nano /detectron/detectron/datasets/dataset_catalog.

基于Darknet框架的YOLOv3算法开发的模型训练和部署的容器化产品

基于 Darknet 的容器化产品

  • 模型训练工程化 [darknet]
  • 模型部署服务器 [darknet-serving]

模型训练工程化 [darknet]

  1. 训练前的数据准备
    • 工程目录结构
    project/            # 工程根目录
    ├── cfg             # 配置目录
    │   └── voc.names   # 标签名
    ├── images          # 样本
    │   ├── ...
    │   └── ...
    ├── labels          # YOLO标注格式
    │   ├── ...
    │   └── ...
    └── test            # 训练完后用于测试(非必须)
    ├── ...
    └── ...
    
  • 举例:这里以platen-switch为例
    platen-switch/
    ├── cfg
    │   └── voc.names
    ├── images
    │   ├── IMG_9255.JPG
    │   ├── IMG_9263.JPG
    │   ├── IMG_9266.JPG
    │   └── IMG_9280.JPG
    ├── labels
    │   ├── IMG_9255.txt
    │   ├── IMG_9263.txt
    │   ├── IMG_9266.txt
    │   └── IMG_9280.txt
    └── test
    ├── IMG_9256.JPG
    └── IMG_9271.JPG
    

运行darknet容器 将工程目录作为挂载点绑定到容器 # 使用您的工程绝对路径设置变量 project_dir

使用Darknet在自定义数据集上训练YOLOv3

编译darknet

git clone https://github.com/pjreddie/darknet
cd darknet/
make

创建工程 工程目录结构 ├── darknet53.conv.74 基于imagenet的预训练模型 └── open-close 工程目录 ├── backup 存储模型训练时权重值 ├── cfg 配置目录 │ ├── train.txt 存储用于训练的图像路径 │ ├── valid.txt 存储用于验证的图像路径 │ ├── voc.data 配置文件 │ ├── voc.names 标签名 │ └── yolov3.cfg YOLOv3神经网络文件 ├── data │ └── labels 预测时用于显示标签名字 │ ├── 100_0.png │ ├── 100_1.png │ ├── ...... │ └── make_labels.py ├── images 图像样本集 │ ├── IMG_9255.JPG │ ├── IMG_9263.JPG │ ├── IMG_9266.JPG │ └── IMG_9280.JPG ├── labels PASCAL VOC格式的标注 │ ├── IMG_9255.xml │ ├── IMG_9263.xml │ ├── IMG_9266.xml │ └── IMG_9280.