用Python读取xml文件后,裁剪标注图片和扩容数据

【数据集处理】Python根据xml文件在图片上标注目标 有时候想判断自己数据集标注的是否准确,那么可以根据xml文件中的坐标和图片信息,在图片上把目标框出来,另存到另一个文件夹中。由于数据集一般是很多图片,所以我选择了批量处理的方式进行标注。 # -*- coding: utf-8 -*- #批量处理img和xml文件,根据xml文件中的坐标把img中的目标标记出来,并保存到指定文件夹,方便自己查看目标标记的是否准确。 import xml.etree... 阅读详情

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,,版权归原作者所有,如有问题请及时联系我们以作处理

作者:Gendan

原文  https://segmentfault.com/a/1190000038690313

想要获取更多Python学习资料,了解更多关于Python的知识,可以加Q群630390733踊跃发言,大家一起来学习讨论吧!

因为想用yolov5算法训练自己数据集识别数字“0-9”,一开始用labeling标注了图片,生成了大量的xml文件。因为图片中0,1比较多,而其他数字偏少,标注到后面,就忽略了大量的0,1。后面发现,漏标注会导致训练时把目标识别成背景,严重影响算法识别的准确性。然后,我也不想重新去标注图片了,就想着写个Python程序根据xml文件,按照标注框,把目标都裁剪出来。

1、裁剪图片

首先是根据xml文件把对应标注图片,按标注框,裁剪出来。我在的基础上实现了裁剪图片按类别保存到对应文件夹里面,并在该类别下按顺序编号

导入模块import cv2import xml.etree.ElementTree as ETimport osfrom pathlib import Pathimport numpy as npimport random

原图片、标签文件、裁剪图片路径

img_path = r'D:yolov5-3.1cutc_1'

xml_path = r'D:yolov5-3.1cutxml'

obj_img_path = r'D:yolov5-3.1cutc_3'

声明一个空字典用于储存裁剪图片的类别及其数量

Numpic = {}

把原图片裁剪后,按类别新建文件夹保存,并在该类别下按顺序编号for img_file in os.listdir(img_path):

if img_file[-4:] in ['.png', '.jpg']:  # 判断文件是否为图片格式

img_filename = os.path.join(img_path, img_file)  # 将图片路径与图片名进行拼接

img_cv = cv2.imread(img_filename)  # 读取图片

img_name = (os.path.splitext(img_file)[0])  # 分割出图片名,如“000.png” 图片名为“000”

xml_name = xml_path + '' + '%s.xml' % img_name  # 利用标签路径、图片名、xml后缀拼接出完整的标签路径名

if os.path.exists(xml_name):  # 判断与图片同名的标签是否存在,因为图片不一定每张都打标

root = ET.parse(xml_name).getroot()  # 利用ET读取xml文件

for obj in root.iter('object'):  # 遍历所有目标框

name = obj.find('name').text  # 获取目标框名称,即label名

xmlbox = obj.find('bndbox')  # 找到框目标

x0 = xmlbox.find('xmin').text  # 将框目标的四个顶点坐标取出

y0 = xmlbox.find('ymin').text

x1 = xmlbox.find('xmax').text

y1 = xmlbox.find('ymax').text

obj_img = img_cv[int(y0):int(y1), int(x0):int(x1)]  # cv2裁剪出目标框中的图片

Numpic.setdefault(name, 0)  # 判断字典中有无当前name对应的类别,无则新建

Numpic[name] += 1  # 当前类别对应数量 + 1

my_file = Path(obj_img_path + '' + name)  # 判断当前name对应的类别有无文件夹

if 1 - my_file.is_dir():  # 无则新建

os.mkdir(obj_img_path + '' + str(name))

cv2.imwrite(obj_img_path + '' + name + '' + '%04d' % (Numpic[name]) + '.jpg',

obj_img)  # 保存裁剪图片,图片命名4位,不足补0

2、图片扩容

只是把标注框裁剪出来,跟单网gendan5.com还会有一个问题就是,每个类别的数量不一致,0,1的图片多,其他数字少,作为训练集可能不太好。我想,要是每个类别的图片数量都一致就好了。于是我继续把裁剪图片进行扩容,这里只是通过给图片增加噪点来扩容。

新建一个图片加噪点的函数

def random_noise(image,noise_num):

img_noiseimg = cv2.imread(image) # 读取图片

ows, cols, chn = img_noise.shape

for i in range(noise_num):

x = np.random.randint(0, rows)#随机生成指定范围的整数

y = np.random.randint(0, cols)

img_noise[x, y, :] = 0 # 0代表黑色,255代表白色

return img_noise

图片扩容

max_Numpic = max(Numpic.values()) # 提取裁剪图片中,类别下数量最大值for name in Numpic:# 遍历每一个类别

for i in range (Numpic[name] + 1, max_Numpic + 1):# 把其余类别的图片数量扩充到,与数量值最大的类别相等(我的数据集里面“0”这个类别数量是最多的)

Noisenum = random.randint(1, 20)# 生成随机的噪点数

Num = random.randint(1, Numpic[name])# 随机选择该类别下已存在的一个图片

Noicepic = random_noise(obj_img_path + '' + name + '' + '%04d' % Num + '.jpg', Noisenum)# 给图片加噪点

cv2.imwrite(obj_img_path + '' + name + '' + '%04d' % (i) + '.jpg', Noicepic)# 保存图片

 

python实战1---根据xml中的类别属性划分图片数据集 Python面向对象编程的思想。 阅读详情

相关推荐

大模型毫米级优化:从训练工程到硬件对齐的实战指南

大模型训练已进入算力利用的精细化阶段,核心不再依赖架构创新,而在于对计算、内存与数据流的底层掌控。Transformer结构虽保持稳定,但通过intermediate_size对齐Tensor Core、batch size量子化调度、动态梯度裁剪等毫米级工程调优,可显著提升FLOPs利用率与训练稳定性。这类优化直接受限于GPU显存带宽、NVLink拓扑和CUDA版本兼容性,需结合Nsight、nvidia-smi dmon等工具进行硬件语义级诊断。其技术价值体现在推理吞吐提升、部署成本下降及长上下文支持增

weixin_30550081的博客 428

python读取xml信息和图片,用cv2标注图片

import os import xml.dom.minidom import cv2 as cv ImgPath = '/home/newbee/CODEs/CSRNet-pytorch-master/train/images/' AnnoPath = '/home/newbee/CODEs/CSRNet-pytorch-master/train/xmls/' imagelist = os...

qq_40279508的博客 4980

CentOS 6虚拟服务器部署Joomla 3.10实战指南

Joomla是一款成熟开源的内容管理系统(CMS),依赖LAMP技术栈运行;在老旧但仍在服役的CentOS 6虚拟服务器环境中,其核心挑战并非追求最新版本,而是实现PHP 5.3+、Apache 2.2与MySQL 5.1的精准兼容。Joomla 3.10.x作为最后一个长期支持版,完美适配该环境,无需升级底层组件即可稳定运行。关键技术价值在于规避编译风险、保障IE兼容性、满足最小资源约束,并通过yum安装php-mysql、php-gd等扩展确保功能完整。典型应用场景包括企业官网迁移、内网门户重建及遗留系

weixin_30627341的博客 408

Python读取xml文件后,裁剪标注图片,并扩容数据

写了一个Python程序,根据xml文件,把标注图片,按标注框裁剪出来,并在扩容后保存到相应类别文件夹下

胡乱学点东西 5016

DeepSeek-V4长上下文替代RAG重部署:文档问答新范式

长上下文大模型正重塑企业知识管理的技术路径。传统RAG依赖向量库构建、embedding更新与服务重启,运维成本高、响应延迟大;而具备128K原生上下文的DeepSeek-V4通过结构感知型注意力机制,可直接理解完整PDF/法律条文/医疗规范等高结构化文档,实现单次加载、多轮精准问答。其技术价值在于将‘文档理解’从工程流水线回归模型本体能力,显著降低95%以上的日常查询对RAG的依赖。典型应用场景包括合同条款提取、SOP步骤确认、法规原文定位等单文档强结构化任务。本文基于DMXAPI封装实践,详解如何以零重

weixin_34356555的博客 307

MuleSoft+LangChain企业级AI编排实战:打通数据孤岛与大模型落地断层

AI编排(AI Orchestration)是当前企业智能化转型的核心技术范式,指在异构系统间协调数据流、模型调用与业务逻辑的自动化调度机制。其本质是解决大模型落地中的数据断层、能力断层与治理断层三大难题。技术原理上依赖分层解耦架构:由集成平台保障数据安全流转与企业级治理,由AI框架专注语义理解、RAG检索与结构化输出。该模式显著提升AI服务的可审计性、可降级性与合规性,广泛应用于智能销售助手、NL2SQL分析仪表盘、OCR+语义校验RPA等场景。本文基于医疗器械行业真实项目,详解MuleSoft与Lang

xSTARx 588

xml文件拆分 python_如何用Python读取xml文件后,裁剪标注图片和扩容数据

因为想用yolov5算法训练自己数据集识别数字“0-9”,一开始用labeling标注了图片,生成了大量的xml文件。因为图片中0,1比较多,而其他数字偏少,标注到后面,就忽略了大量的0,1。后面发现,漏标注会导致训练时把目标识别成背景,严重影响算法识别的准确性。然后,我也不想重新去标注图片了,就想着写个Python程序根据xml文件,按照标注框,把目标都裁剪出来。1、裁剪图片首先是根据xml文件...

weixin_42500684的博客 818

【信息科学与工程学】【安全领域】第一百四十二篇 零信任网络解决方案中的算法04

对于节点 i, 有功和无功功率平衡方程为: Pi​=Vi​∑j=1N​Vj​(Gij​cosθij​+Bij​sinθij​), Qi​=Vi​∑j=1N​Vj​(Gij​sinθij​−Bij​cosθij​)。下风向某点 (x,y,z)的浓度 C为: C=2πuσy​σz​Q​exp(−2σy2​y2​)[exp(−2σz2​(z−H)2​)+exp(−2σz2​(z+H)2​)], 其中 Q是源强, u是风速, H是有效源高, σy​,σz​是水平和垂直扩散参数。

weixin_49199313的博客 1409

从零构建图片处理流水线:基于技能化与工作流编排的工程实践

图片处理是现代软件开发中的一项基础且高频的技术需求,其核心在于对图像数据进行一系列可编程的转换操作。其基本原理通常涉及调用底层图形库(如ImageMagick、libvips)或云服务API,通过算法对像素矩阵进行缩放、裁剪、滤镜等计算。这种技术价值在于将复杂的图像算法封装成标准化、可复用的组件,从而实现业务逻辑与处理细节的解耦,提升开发效率和系统可维护性。在应用场景上,它广泛服务于博客配图生成、电商商品图处理、用户头像裁剪以及内容审核等环节。本文聚焦于如何将这一通用概念工程化,通过构建一个基于“技能”(S

weixin_34038293的博客 493

GD32F4 Freertos实战:YT8512以太网PHY驱动移植与RMII模式配置详解

本文详细讲解了在GD32F470微控制器上,基于FreeRTOS系统移植YT8512以太网PHY驱动的实战过程。文章重点剖析了RMII时钟模式的选择与配置、PHY地址的正确设置,并针对YT8512芯片的寄存器差异,提供了核心驱动代码的适配方法与调试技巧,帮助开发者顺利完成从官方例程到特定硬件的驱动移植。

weixin_29162439的博客 608

易智联LM401模块学习(四)——双串口收发

串口的发送和接受有三种方式,分别是阻塞发送和接收(轮询)、中断方式发送和接收、DMA方式发送和接收。这里我使用阻塞+中断的方式实现双串口通信。简单的串口收发。

weixin_46046597的博客 990

UniScene AutoDL部署:构建AI工作流的数据与模型双基座

AI工程化落地的核心挑战在于数据不可追溯、模型不可复用、环境不可复现。本文围绕MLOps基础概念展开,解析数据架构设计原理(如语义化版本目录、元数据驱动路径管理)与模型资产配置机制(如模型注册中心、SHA256指纹校验),阐明二者协同如何支撑可审计、可回滚、可协作的AI研发体系。技术价值体现在提升迭代效率、降低跨环境调试成本、强化团队协作一致性;典型应用场景包括工业缺陷检测、多模态生成、ComfyUI动态模型加载等。全文聚焦UniScene AutoDL平台中‘数据层’与‘模型能力层’的基建实践,直击‘夸克

Coding 174

Android安全支付(1)-整体架构-keymint

(1)接口定义hardware/interfaces/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl。keymint是keymaster v4之后的替代设计。所以android 15上最好采用keymint的接口进行硬件功能的对接。同时,我们会集成一款紫光的芯片。3.可以用keyStore.getKey()来获取存储在keyStore中的数据进行加密和解密。四、关于keymint的接口定义和具体实现。

Android系统开发-VR OS-系统安全隐私 1767

MuleSoft企业级LLM编排:构建可审计、高可靠AI集成流水线

大语言模型(LLM)在企业落地的核心瓶颈,不是算力或模型能力,而是如何与SAP、Salesforce等强契约、多协议、高合规要求的遗留系统安全可靠地协同。其本质是语义理解力与结构化业务系统的对齐问题——需通过API契约治理、实时数据编排与运行时上下文融合来实现。MuleSoft凭借DataWeave数据映射、Runtime Fabric弹性调度、Anypoint平台级治理(密钥管理、PII脱敏、SOX审计)等能力,成为企业AI从POC走向规模化生产的关键中枢。本文聚焦LLM与企业集成平台深度协同的技术路径,

java天气 488

在 SAP BTP 中玩转工厂日历 Maintain Factory Calendars 实战指南

工厂日历是企业关键的时间主数据,基于国家假日历定义工作日与非工作日,广泛应用于生产计划、采购交期、财务结账等业务场景。SAP系统通过三类应用(维护节假日、假日历和工厂日历)实现分层配置。工厂日历作为顶层配置,支持工作日模式设定和例外规则添加。在多系统架构中,工厂日历可通过集成场景同步,确保数据一致性。应用支持创建、编辑和查看功能,包含有效期设置、例外规则管理和多语言文本维护。合理设置工厂日历对业务运营至关重要,需注意命名规范和有效期选择,避免历史数据问题。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 222

Ubuntu 22.04+/WSL2 中解决 `error: externally-managed-environment` 并成功安装 PyTorch + vLLM 的完整指南

Ubuntu 22.04+/WSL2 因遵循 PEP 668 规范,系统 Python 被标记为“外部管理”,导致直接使用 pip install 安装包时报错 externally-managed-environment。解决方案是创建虚拟环境: 通过 python3 -m venv ~/vllm-env 创建隔离环境 激活环境后安装 PyTorch(CUDA 12.1)和 vLLM 避免使用 sudo pip 或 --break-system-packages,防止破坏系统依赖 关键点: 虚拟环

刘一说的IT专栏 296

智能体视频理解:Gemini多模态模型从看懂到执行的系统实践

视频理解技术正在从传统“抽帧+识别”的流水线模式,转向由多模态大模型驱动的Agent式处理。其核心原理是让视频、音频与文本在输入阶段统一编码,使模型不仅捕捉空间细节,还能对时间维度进行推理,理解事件顺序与因果。技术价值在于将“看懂视频”作为下一步行动的起点,而非终点:模型可基于理解结果完成工具调用、事件定位、结构化输出等执行任务,从而支撑视频问答、长视频摘要、自动化质检、视频创作辅助等真实场景。对企业开发者而言,接入这类云端多模态服务后,工程重点从自建多个模型的复杂管线,转变为设计清晰的智能体流程与结果校验

weixin_34401479的博客 366

使用Simulink设计并实现一个可调谐的二阶IIR陷波滤波器,实时去除音频中的工频噪声

《基于Simulink的音频陷波滤波器设计与实现》摘要:本文详细介绍了使用Simulink设计陷波滤波器去除音频工频噪声(如50Hz)的方法。核心内容包括:1)二阶IIR陷波滤波器的原理与传递函数;2)Simulink实现步骤(音频系统搭建、滤波器设计、频率跟踪);3)性能分析(频谱对比、时域波形、听觉测试)。通过精准消除特定频率干扰,同时保留语音信号(200Hz-4kHz),有效提升信噪比(>20dB)。文章还探讨了多陷波级联、自适应算法等高级技巧,为音频处理、语音通信等应用提供实用解决方案。

amy_mhd的博客 152

AI手机订阅付费背后:端云协同与鉴权机制工程解析

随着AI手机普及,语音助手、文档摘要等智能功能背后隐藏着真实的算力成本。手机NPU只能运行轻量端侧模型,复杂任务则依赖云端大模型,而每次云端调用都涉及GPU、带宽与运维支出。因此,厂商通过订阅鉴权机制将AI能力商业化,以覆盖持续服务成本。本文从端云协同架构出发,解析端侧模型与云端大模型的分工逻辑,以及订阅鉴权在服务端如何实现。通过一个基于FastAPI与Android客户端的简化示例,演示从用户令牌校验到接口返回的完整流程,帮助开发者理解AI功能付费的工程本质,并为实现能力分级、成本控制与安全防护提供参考。

weixin_33862993的博客 371

Python全栈入门到实战【进阶篇 1】类与对象:面向对象编程的基石

Python中定义类使用**class关键字**,创建对象使用**类名()**(类似调用函数),语法简洁,我们从最基础的空类开始,逐步拆解。class# 定义空的学生类,pass表示占位,无实际内容 class Student : pass编码规范:类名遵循大驼峰命名法(每个单词首字母大写,无下划线),如StudentCarPhone,这是Python官方推荐的PEP8规范,便于区分类和其他标识符。实例方法必须定义在类内部;实例方法的第一个参数必须是self(名称可自定义,如this。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 3403

〔重庆理工大学〕计算机组成原理课设报告--16位单周期CPU设计

本课程设计的实验平台为Altera Quartus II 软件和Altera Cyclone V Starter 工具箱。(1)Cyclone V是Altera FPGAs家族的一类,它面向低功耗应用。Cyclone V GX 5CGXFC5C6F27C7N 芯片有不同的转换器,按钮,LED灯,七段显示器,HDMI接口,SD卡读卡器以及其他链接等。Cyclone V GX 5CGXFC5C6F27C7N是Starter工具箱的重要组件。(2)测试台包含在测设备(DUT)和用于仿真的模拟输入。

Pretty Boy Fox的博客 1066

Claude Opus 4.7工程落地实战:API调用、性能优化与多模态应用

大语言模型API是现代AI工程的核心基础设施,其稳定性、延迟、token效率与多模态支持能力直接决定生产可用性。Claude Opus 4.7凭借动态计算图剪枝、分层验证机制和上下文锚点技术,在代码审查、日志分析、PDF摘要等工程场景中展现出显著推理优势;结合DMXAPI平台的精算计费、低延迟节点与流式响应优化,可实现首字延迟310ms级响应与98%+结构化输出准确率。本文聚焦真实生产环境中的参数调优(如max_tokens=3982避截断)、安全配置(IP白名单/X-Real-IP透传)、多模态OCR协同

A08110123的博客 495

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【AI Agent】2026年9月 AI Agent 全栈开发最新技术面试宝典(含高频+必背+大厂真题)

本文整理了2026年AI Agent全栈开发最新技术面试题,涵盖基础概念、核心框架和系统设计等关键领域。重点解析了AI Agent与普通Chatbot的本质区别(自主闭环执行能力)、Agentic Loop的完整工作流程(规划-执行-观察-评估循环),以及ReAct范式的原理与适用场景。特别强调面试回答技巧:需结合工程实践中的典型问题、处理方案和量化指标,而非简单背诵定义。内容来自字节、阿里等大厂真实面经,适合3-5年经验开发者准备春招面试,突出考察候选人在复杂场景下的技术决策能力。

小江的记录本 4612

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python读取xml标注坐标_读取xml文件并在图片上面进行标注

读取单张图片import xml.etree.ElementTree as ETimport os, cv2xml_file = '/home/zhaotongdong/data/华录杯广告/训练集/Annotations/train_29641.xml'tree = ET.parse(xml_file)root = tree.getroot()imgfile = '/home/zhaotongd...

weixin_42356162的博客 963

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

利用xml格式标签文件批量裁剪出图片中的目标(可以是多目标)

1 、通过标注工具labelImg,将图片目标进行标注,我所标注的目标只有两类,睡觉(sleep)和看手机(phone).2、批量裁剪代码:(地址:D:\02file\yolov5-master\pic_cj.py)自学之用,只是做简单的测试,为后面数据集做准备。

weixin_42875510的博客 763
上一篇: 用python给朋友发送天气预报,关心一下朋友
下一篇: 干货满满:三种Python排序
pythonputao
博客等级 码龄6年 60粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值