使用Yolo 11进行定制化图像识别全流程

news2026/3/30 1:24:03
全流程预览Label Studio标注 → 导出YOLO格式 → 编写data.yaml → 拆分数据集 → 模型训练 → 预测部署步骤工具/技术产出物数据标注Label Studio标注好的图片数据导出YOLO with imagesimages/ labels/配置文件data.yaml数据集配置数据拆分Python脚本train/val/test模型训练ultralyticsbest.pt模型预测部署FastAPIREST API服务二、环境准备2.1 硬件要求配置项最低要求推荐配置GPUNVIDIA 4GB显存若没有则使用CPU训练NVIDIA 8GB显存CPU4核8核内存8GB16GB硬盘20GB可用空间SSD 50GB注意显存不足时可通过降低batch大小解决如从8降到4或2。2.2 软件环境Python版本3.10CUDA安装GPU训练必需没有GPU的不考虑安装NVIDIA CUDA Toolkit最好是12.8版本核心依赖安装pip install ultralytics pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128requirements.txt示例ultralytics8.3.0 torch2.9.0 torchvision0.24.0 torchaudio2.9.0 Pillow10.0.0 opencv-python4.8.0 fastapi0.115.0 uvicorn0.27.0 python-multipart0.0.12 pydantic2.10.0 pydantic-settings2.6.02.3 项目结构训练项目结构photo-check-train/ ├── train.py # 训练脚本 ├── runs/ # 训练输出目录 │ └── train/ # 训练结果 │ └── exp/ # 实验目录 │ ├── weights/ # 模型文件 │ │ ├── best.pt # 最佳模型 │ │ └── last.pt # 最后一个epoch │ └── results.csv # 训练日志 ├── data/ # 数据集目录 ├── models/ # 预训练模型 ├── yolo11n.pt # 基础模型文件 └── requirements.txt预测API项目结构photo-check-predict/ ├── app/ │ ├── main.py # FastAPI入口 │ ├── config.py # 配置管理 │ ├── api/ │ │ └── routes.py # API路由 │ ├── services/ │ │ └── inference.py # 推理服务 │ └── models/ │ └── prediction.py # 数据模型 ├── models/ # 训练好的模型 ├── Dockerfile ├── docker-compose.yml └── .env # 环境变量配置三、数据标注Label Studio3.1 创建标注项目步骤1登录Label Studio访问Label Studio地址使用账号密码登录。步骤2创建项目点击【Create Project】按钮创建新项目。步骤3填写项目信息Project Name项目名称如车照检查标注Description项目描述可选点击【Save】继续。3.2 配置标注模板步骤1选择标注模板在项目设置中选择【Object Detection】目标检测模板。[图片: ]步骤2定义标签类别进入模板根据业务需求定义进行需要训练的标签管理。例如类别名称说明defect缺陷/异常normal正常[图片: ]点击【Save】完成配置。3.3 标注操作步骤1导入待标注图片点击【Import】按钮上传需要标注的图片。[图片: ]支持的图片格式jpg、jpeg、png、bmp注意每次上传的图像数量需要控制一般在40张左右。否则会报错步骤2进行标注选择一张图片进入标注界面选择左侧工具栏的矩形框工具在图片上框选目标区域选择对应的标签类别[图片: ]标注规范框要紧贴目标边缘不要留太大空白每个目标都要标注不要遗漏不确定的目标可以先跳过后续确认后再标注若图像最终无标注请删除该图像四、数据导出与处理4.1 导出数据步骤1进入导出界面标注完成后点击项目页面的【Export】按钮。步骤2选择导出格式选择【YOLO with images】格式这个格式会同时导出图片和YOLO格式的标注文件。[图片: ]步骤3下载并解压下载压缩包并解压得到如下结构export/ ├── images/ # 图片文件 │ ├── img001.jpg │ ├── img002.jpg │ └── ... └── labels/ # 标注文件.txt格式 ├── img001.txt ├── img002.txt └── ...YOLO标注格式说明每行格式class_id x_center y_center width height归一化坐标范围0-10 0.5 0.5 0.3 0.4 1 0.2 0.3 0.1 0.24.2 编写data.yaml在数据集根目录创建data.yaml配置文件# 数据集路径配置 path: ./data # 数据集根目录相对或绝对路径 train: images/train # 训练集图片路径相对于path val: images/val # 验证集图片路径 test: images/test # 测试集图片路径可选 # 类别配置 names: # 类别名称列表 0: defect 1: normal配置说明字段说明示例path数据集根目录./data或E:/datasets/mydatatrain训练集图片目录images/trainval验证集图片目录images/valtest测试集图片目录images/test可选names类别名称映射{0: defect, 1: normal}注意labels目录结构要与images对应如images/train对应labels/train。4.3 数据集拆分推荐比例数据集比例说明train80%训练模型val10%验证调参test10%最终测试拆分脚本示例可让opencode或其他ai-agent进行自主分析数据集自己编写拆分脚本最后自己运行完成数据拆分。import os import shutil import random from pathlib import Path def split_dataset(source_images, source_labels, output_dir, train_ratio0.8, val_ratio0.1, test_ratio0.1): 拆分数据集为训练集、验证集和测试集 Args: source_images: 源图片目录 source_labels: 源标注目录 output_dir: 输出目录 train_ratio: 训练集比例 val_ratio: 验证集比例 test_ratio: 测试集比例 # 获取所有图片文件 image_files [f for f in os.listdir(source_images) if f.lower().endswith((.jpg, .jpeg, .png, .bmp))] random.shuffle(image_files) # 计算拆分点 total len(image_files) train_count int(total * train_ratio) val_count int(total * val_ratio) train_files image_files[:train_count] val_files image_files[train_count:train_count val_count] test_files image_files[train_count val_count:] # 创建目录结构 for split in [train, val, test]: os.makedirs(os.path.join(output_dir, images, split), exist_okTrue) os.makedirs(os.path.join(output_dir, labels, split), exist_okTrue) # 复制文件 def copy_files(file_list, split): for img_file in file_list: # 复制图片 src_img os.path.join(source_images, img_file) dst_img os.path.join(output_dir, images, split, img_file) shutil.copy(src_img, dst_img) # 复制标注同名.txt文件 label_file Path(img_file).stem .txt src_label os.path.join(source_labels, label_file) dst_label os.path.join(output_dir, labels, split, label_file) if os.path.exists(src_label): shutil.copy(src_label, dst_label) copy_files(train_files, train) copy_files(val_files, val) copy_files(test_files, test) print(f拆分完成训练集 {len(train_files)} 张验证集 {len(val_files)} 张测试集 {len(test_files)} 张) # 使用示例 split_dataset( source_imagesexport/images, source_labelsexport/labels, output_dir./data, train_ratio0.8, val_ratio0.1, test_ratio0.1 )拆分后的目录结构data/ ├── images/ │ ├── train/ # 训练图片 │ │ ├── img001.jpg │ │ └── ... │ ├── val/ # 验证图片 │ │ ├── img101.jpg │ │ └── ... │ └── test/ # 测试图片 │ ├── img201.jpg │ └── ... ├── labels/ │ ├── train/ # 训练标注 │ │ ├── img001.txt │ │ └── ... │ ├── val/ # 验证标注 │ │ ├── img101.txt │ │ └── ... │ └── test/ # 测试标注 │ ├── img201.txt │ └── ... └── data.yaml # 配置文件五、模型训练5.1 训练脚本说明train.py是完整的YOLO训练脚本支持命令行参数配置和自动设备检测。脚本核心逻辑解析命令行参数自动检测GPU/CPU设备加载预训练模型构建训练配置包含数据增强、正则化等执行训练并验证完整训练脚本#!/usr/bin/env python3 YOLO11 自定义数据集训练脚本 import os import argparse from ultralytics import YOLO def parse_args(): parser argparse.ArgumentParser(descriptionYOLO11 训练脚本) parser.add_argument(--model, typestr, defaultyolo11n.pt, help预训练模型路径) parser.add_argument(--data, typestr, defaultdata.yaml, help数据集配置文件路径) parser.add_argument(--epochs, typeint, default200, help训练轮数) parser.add_argument(--batch, typeint, default8, help批次大小) parser.add_argument(--imgsz, typeint, default640, help图像大小) parser.add_argument(--device, typestr, defaultNone, help训练设备 (0GPU, cpuCPU)) parser.add_argument(--cache, typestr, defaultfalse, help数据缓存 (true/disk/false)) return parser.parse_args() def train_model(args): # 1. 自动检测设备 device args.device if device is None: import torch device 0 if torch.cuda.is_available() else cpu print(f使用设备: {device}) # 2. 加载模型 print(f加载预训练模型: {args.model}) model YOLO(args.model) # 3. 构建训练配置 train_config { data: args.data, epochs: args.epochs, batch: args.batch, imgsz: args.imgsz, device: device, workers: 0, # Windows 兼容 project: runs/train, name: exp, lr0: 0.003, optimizer: AdamW, patience: 15, cos_lr: True, mosaic: 1.0, mixup: 0.3, dropout: 0.15, verbose: True, plots: True, save: True, } # 缓存配置 if args.cache.lower() true: train_config[cache] True elif args.cache.lower() disk: train_config[cache] disk # 4. 开始训练 results model.train(**train_config) # 5. 输出结果 save_dir model.trainer.save_dir print(f\n✅ 训练完成) print(f模型保存位置: {save_dir}) print(f最佳模型: {save_dir}/weights/best.pt) return results if __name__ __main__: args parse_args() if not os.path.exists(args.data): print(f❌ 错误: 数据集配置文件不存在: {args.data}) exit(1) train_model(args)命令行参数详解参数说明默认值使用示例--model预训练模型路径n最小最快x最大最准yolo11n.pt--model yolo11s.pt--data数据集配置文件路径data.yaml--data ./data.yaml--epochs训练轮数200--epochs 300--batch批次大小显存不足时降低8--batch 4--imgsz输入图像尺寸640--imgsz 416--device训练设备自动检测--device 0--cache数据缓存false--cache disk提示workers0是Windows兼容设置禁用多进程数据加载。5.2 训练配置一览脚本内置的训练参数一般无需修改参数值说明lr00.003初始学习率optimizerAdamW优化器类型patience15早停轮数cos_lrTrue余弦学习率调度mosaic1.0Mosaic数据增强mixup0.3Mixup数据增强dropout0.15Dropout正则化projectruns/train输出根目录nameexp实验名称自动递增5.3 执行训练基础训练命令python train.py --model yolo11n.pt --data data.yaml --epochs 200 --batch 8 --device 0完整训练命令推荐python train.py ^ --model yolo11n.pt ^ --data data.yaml ^ --epochs 200 ^ --batch 8 ^ --imgsz 640 ^ --device 0 ^ --cache diskWindows提示命令行换行使用^PowerShell使用。训练输出文件位于runs/train/exp/目录由脚本中projectruns/train和nameexp决定runs/train/exp/ ├── weights/ │ ├── best.pt # 最佳模型部署用这个 │ └── last.pt # 最后一个epoch的模型 ├── results.csv # 训练指标日志 ├── results.png # 训练曲线图 ├── confusion_matrix.png # 混淆矩阵 ├── F1_curve.png # F1分数曲线 ├── PR_curve.png # PR曲线 └── val_batch0_pred.jpg # 验证集预测样例5.4 训练结果评估查看训练日志日志位置runs/train/exp/results.csv曲线图runs/train/exp/results.png使用大模型分析将训练日志截图或results.csv内容发给元宝、豆包、ChatGPT等大模型提问示例这是我的YOLO模型训练日志请帮我分析mAP是否收敛是否有过拟合迹象有什么优化建议大模型会帮你解读各项指标并给出针对性建议。六、模型预测与部署6.1 本地批量预测测试使用以下脚本对批量图片进行预测并保存结果from ultralytics import YOLO import os # 加载训练好的模型 model YOLO(runs/train/exp/weights/best.pt) # 收集待预测图片 images [] for folder_name, subfolders, filenames in os.walk(./test_images): for filename in filenames: if filename.lower().endswith((.jpg, .jpeg, .png, .bmp)): full_path os.path.join(folder_name, filename) images.append(full_path) # 批量预测 # saveTrue 会自动保存带标注框的结果图 # project 指定保存根目录YOLO会自动在其下创建predict子目录 results model(images, conf0.7, saveTrue, projecttest_result) # 查看结果 for r in results: print(f检测结果: {r.boxes}) print(f保存目录: {r.save_dir})参数说明参数说明示例conf置信度阈值0.7只显示置信度0.7的结果save是否保存结果图Trueproject结果保存根目录test_result说明当saveTrue时YOLO会自动在project目录下创建predict子目录。即projecttest_result时结果实际保存在test_result/predict/目录下。6.2 预测API部署前置步骤部署前需将训练好的模型复制到API项目的models目录# 从训练项目复制到预测项目 cp runs/train/exp/weights/best.pt predict/models/API项目核心代码1. 配置管理app/config.pyfrom pydantic_settings import BaseSettings class Settings(BaseSettings): app_name: str YOLO预测API app_version: str 1.0.0 model_path: str models/best.pt max_upload_size: int 10 * 1024 * 1024 # 10MB allowed_extensions: str .jpg,.jpeg,.png,.bmp class Config: env_file .env settings Settings()2. 响应模型app/models/prediction.pyfrom pydantic import BaseModel from typing import List, Optional class BoundingBox(BaseModel): x1: float y1: float x2: float y2: float class DetectionResult(BaseModel): class_id: int class_name: str confidence: float bbox: BoundingBox class PredictionResponse(BaseModel): success: bool message: str detections: List[DetectionResult] processing_time: float3. 推理服务app/services/inference.pyfrom ultralytics import YOLO from PIL import Image import io import time from typing import List, Tuple class ModelInferenceService: def __init__(self): self.model None self.class_names {} def load_model(self, model_path: str): 加载模型 self.model YOLO(model_path) self.class_names self.model.names if self.model.names else {} def predict(self, image_bytes: bytes, conf_threshold: float 0.7) - Tuple[List[dict], float]: 执行预测 start_time time.time() # 预处理 image Image.open(io.BytesIO(image_bytes)).convert(RGB) # 推理 results self.model.predict(sourceimage, confconf_threshold, verboseFalse) # 提取结果 detections [] result results[0] if result.boxes is not None: for box in result.boxes: xyxy box.xyxy[0].cpu().numpy() confidence float(box.conf[0].cpu().numpy()) class_id int(box.cls[0].cpu().numpy()) detections.append({ class_id: class_id, class_name: self.class_names.get(class_id, fclass_{class_id}), confidence: confidence, bbox: { x1: float(xyxy[0]), y1: float(xyxy[1]), x2: float(xyxy[2]), y2: float(xyxy[3]) } }) processing_time time.time() - start_time return detections, processing_time # 全局服务实例 model_service ModelInferenceService()4. API路由app/api/routes.pyfrom fastapi import APIRouter, File, UploadFile, HTTPException from app.config import settings from app.services.inference import model_service from app.models.prediction import PredictionResponse router APIRouter(prefix/api/v1, tags[预测]) router.post(/predict, response_modelPredictionResponse) async def predict_image(file: UploadFile File(...), conf_threshold: float 0.7): 图片预测接口 # 验证文件类型 if not file.filename.lower().endswith((.jpg, .jpeg, .png, .bmp)): raise HTTPException(status_code400, detail不支持的文件类型) # 读取图片 image_bytes await file.read() # 确保模型已加载 if model_service.model is None: model_service.load_model(settings.model_path) # 执行预测 detections, processing_time model_service.predict(image_bytes, conf_threshold) return PredictionResponse( successTrue, message预测成功, detectionsdetections, processing_timeprocessing_time ) router.get(/health) async def health_check(): 健康检查 return {status: healthy, model_loaded: model_service.model is not None}5. 应用入口app/main.pyfrom fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.config import settings from app.api.routes import router app FastAPI(titlesettings.app_name, versionsettings.app_version) # CORS配置 app.add_middleware( CORSMiddleware, allow_origins[*], allow_methods[*], allow_headers[*], ) # 注册路由 app.include_router(router) app.on_event(startup) async def startup(): 启动时加载模型 from app.services.inference import model_service model_service.load_model(settings.model_path) print(f✅ 模型加载完成: {settings.model_path})启动服务# 开发环境自动重载 uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 # 生产环境 uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4环境变量配置.envMODEL_PATHmodels/best.pt MAX_UPLOAD_SIZE10485760 ALLOWED_EXTENSIONS.jpg,.jpeg,.png,.bmp调用示例Pythonimport requests url http://localhost:8000/api/v1/predict files {file: open(test_image.jpg, rb)} params {conf_threshold: 0.7} response requests.post(url, filesfiles, paramsparams) result response.json() print(f检测到 {len(result[detections])} 个目标) for det in result[detections]: print(f - {det[class_name]}: {det[confidence]:.2f})响应示例{ success: true, message: 预测成功, detections: [ { class_id: 0, class_name: defect, confidence: 0.95, bbox: {x1: 100.0, y1: 200.0, x2: 300.0, y2: 400.0} } ], processing_time: 0.15 }七、常见问题与优化7.1 训练问题显存不足CUDA out of memory降低batch大小--batch 4或--batch 2减小图像尺寸--imgsz 416关闭数据缓存--cache falseloss不收敛检查标注是否正确是否有漏标、错标降低学习率在train.py中修改lr0增加训练轮数--epochs 300过拟合训练loss下降但验证loss上升增加数据量或使用数据增强增大dropout在train.py中修改dropout减小模型规模使用yolo11n代替yolo11l7.2 预测问题检测精度不足提高置信度阈值conf0.8检查测试图片与训练数据是否分布一致增加该类别的训练样本误检/漏检处理误检误报提高置信度阈值漏检漏报降低置信度阈值或补充困难样本重新训练7.3 数据问题样本不平衡某类样本过少时使用数据增强旋转、翻转、调色或复制少数类样本并稍作变换数据增强策略train.py已内置mosaic4张图拼接mixup图像混合hsv色彩抖动fliplr/flipud翻转

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2463321.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…