Llama3本地部署的解决方案

  大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法行业就业。希望和大家一起成长进步。

  本文主要介绍了Llama3本地部署的解决方案,希望对学习大语言模型的同学们有所帮助。
在这里插入图片描述

1. 前言

  之前在[多图详解LLaMA 3的使用方法和进化之路](多图详解LLaMA 3的使用方法和进化之路)主要介绍了LLaMA 3的线上使用方法以及LLaMA 1逐步进化到LLaMA 3的理论分析,有同学提出建议,能否增加一篇本地部署LLaMA 3的博客。恭敬不如从命,这就给大家安排上。
在这里插入图片描述

2. 配置环境

  需要说明的是,本文是在Centos 7+CUDA 12.2+Python

### 使用YOLOv5实现人体运动姿势检测与识别 #### 准备工作 为了使用YOLOv5进行人体运动姿势检测与识别,需准备好相应的环境和数据集。安装必要的库并下载预训练模型文件是必不可少的步骤[^1]。 ```bash pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu pip install yolov5 # 假设YoloV5已打包成可安装的形式 ``` #### 加载预训练模型 加载官方提供的YOLOv5预训练权重来初始化网络结构,这一步骤对于快速启动项目至关重要。通过调用`attempt_load`函数可以轻松完成此操作[^3]。 ```python from pathlib import Path import torch weights_path = 'path/to/yolov5s.pt' # 预训练模型路径 device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') model = attempt_load(weights_path, map_location=device) # 载入模型 ``` #### 图像前处理 图像输入到YOLOv5之前需要做一定的转换处理,比如调整大小、归一化等。这些预处理措施有助于提高预测效果[^4]。 ```python import cv2 from utils.general import non_max_suppression, scale_coords from utils.datasets import letterbox def preprocess_image(image_path): img0 = cv2.imread(image_path) # BGR img = letterbox(img0, new_shape=640)[0] img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB, to 3x416x416 img = np.ascontiguousarray(img) img = torch.from_numpy(img).to(device) img = img.float() # uint8 to fp16/32 img /= 255.0 # 归一化至[0, 1] if img.ndimension() == 3: img = img.unsqueeze(0) return img, img0 ``` #### 执行推理过程 当一切准备就绪之后,就可以利用构建好的YOLOv5实例来进行实际的人体检测任务了。注意设置合适的置信度阈值和其他参数以优化性能表现[^2]。 ```python conf_thres = 0.25 # 置信度阈值 iou_thres = 0.45 # NMS IOU阈值 classes = None # 类别过滤列表,默认不过滤任何类别 agnostic_nms = False # 是否启用类无关NMS with torch.no_grad(): pred = model(img)[0] pred = non_max_suppression(pred, conf_thres, iou_thres, classes=classes, agnostic=agnostic_nms) detected_objects = [] for det in pred: # 每张图片的结果 if len(det): # 将边界框坐标缩放回原始尺寸 det[:, :4] = scale_coords(img.shape[2:], det[:, :4], img0.shape).round() detected_objects.append(det.cpu().numpy()) ``` #### 后处理及可视化 最后,在获取到所有检测结果后,还需要对其进行进一步解析,并可能希望将其直观地展示出来以便于理解和评估。 ```python import matplotlib.pyplot as plt def plot_bboxes(image, bboxes): fig, ax = plt.subplots(1) ax.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)) for bbox in bboxes: x_min, y_min, x_max, y_max = int(bbox[0]), int(bbox[1]), int(bbox[2]), int(bbox[3]) rect = patches.Rectangle((x_min,y_min), (x_max-x_min),(y_max-y_min), linewidth=1, edgecolor='r', facecolor="none") ax.add_patch(rect) plt.show() if detected_objects: plot_bboxes(img0, detected_objects[-1]) # 显示最后一帧中的物体位置 else: print("No objects were found.") ```
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

herosunly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值