-
请问这里一直报错请求参数无效是怎么回事,请求体的参数是用F12中的载荷找的
-
随着业务场景的不断丰富,批量计算也由传统的HPC逐渐扩展到大数据、AI等多种场景,但各领域独立发展将造成技术栈不兼容、资源使用率低等问题。在此背景下,云原生技术以其丰富的生态和灵活的扩展性受到各大厂商的青睐,云原生统一基础设施成为必然选择。Volcano作为CNCF首个云原生批量计算项目,支持几乎所有的主流计算框架,提供丰富的高级调度策略及多元算力支持,可在人工智能、大数据、基因测序等海量数据计算和分析场景得到快速应用,弥补了Kubernetes批处理调度能力的空缺 ,并已构建起完善的上下游生态。项目目前已有450+位来自全球各地的贡献者和50+落地案例。今年6月,Apache Spark 3.3版本正式发布,v3.3选择Volcano作为默认batch调度器,助力大数据平台云原生化。9月29日开始,Volcano即将全面开启技术分享课程,核心技术无保留传授——27节公开课,全网首发!13位批量计算行业大咖亲自教学一门职业技能,轻松get!课程研发团队 本次批量计算课程由CNCF 首个容器批量计算项目Volcano的核心贡献者联合研发。适合人群 计算机相关专业的学生群体云计算应用开发、运维工程师、产品经理云原生开源技术爱好者、Volcano社区用户、贡献者部分课表 课次课程名称1云原生批量计算公开课简介2云原生批量计算的先行者Volcano3Volcano安装部署快速入门4如何在AI场景下使用Volcano?5如何在大数据场景下使用Volcano?6如何在HPC场景下使用Volcano?7云原生批量计算的集大成者Volcano Job8Volcano Job插件机制及使用9手把手教你构建自己的Volcano Job插件10资源调度的基石Queue11Volcano的独门秘籍PodGroup12Volcano技术内幕:架构设计与实现原理13走近Action和Plugin机制14Action和Plugin之资源预匹配与SLA策略15Action和Plugin之资源分配与装箱策略扫码回复Volcano进群 免费领取全部27节课·课表不能错过的第一堂课 9月29日日开启,每周周四晚20:00开课CNCF 大使 Kevin WangVolcano 社区 Maintainer 王雷博为大家率先开启课程后续每周讲师信息,可添加k8s2222进学习群获取成为大家的批量计算导师带大家开启云原生批量计算的学习整个学习期间,你们的大佬级导师,也会在学习群内陪伴大家的课程,监督大家的课程进度哦。从入门到精通,万万不能错过第一课!(扫上方海报码回复Volcano进群)学批量计算,认识批量计算达人技能破局,需要1次体系化的洗礼27节课程规划,理论+实践提升战力每周1小时,轻松为个人职业加码不只是学习,一路结识更多批量计算达人添加助教微信领取开课礼包
-
一、简介 实现计算机视觉任务的过程中,不可避免地需要对图像进行读写操作以及图像预处理操作,下面介绍两个常用的Python图像处理库:OpenCV和Pillow。 OpenCV全称是由英特尔公司资助的开源计算机视觉库。 它由一系列C函数和少量C++类所组成,实现图像处理和计算机视觉方面的很多通用算法,例如特征检测与跟踪、运动分析、目标分割与识别以及3D重建等。 OpenCV作为基于C/C++语言编写的跨平台开源软件,可以运行在Linux、Windows、Android和MacOS操作系统上,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 1.1 图像处理-OpenCV OpenCV是模块结构的,有以下主要模块。 【core】–核心功能模块,包含内容有:OpenCV基本数据结构、动态数据结构、绘图函数、数组操作相关函数、辅助功能与系统函数和宏、与OpenGL的互操作。 【imgproc】–图像处理模块,包含内容有:线性和非线性的图像滤波、图像的几何变换、图像转换、直方图相关、结构分析和形状描述、运动分析和对象跟踪、特征检测、目标检测等内容。 【features2D】–2D功能模块,包含以下内容:特征检测和描述、特征检测器、描述符提取器等内容。 【highGUI】–高层GUI图形用户界面,包含:媒体的I/O输入输出、视频捕捉、图像和视频的编码解码、图形交互界面的接口等内容。 1.2 图像处理- PIL和Pillow 作为Python2的第三方图像处理库是Pillow的前身。随着Python3的更新,PIL移植到Python3更名为Pillow。与OpenCV一样,Pillow也是模块结构,主要包括以下结构。 【Image】–图像功能模块,包含内容有:读写图像、图像混合、图像放缩、图像裁切、图像旋转。 【ImageFilter】–图像滤波功能模块,包含内容有:各类图像滤波核。 【ImageEnhance】–图像增强功能模块,包含内容有:色彩增强、亮度增强、对比度增强、清晰度增强。 【ImageDraw】–图像绘画功能模块,包含内容有:绘制几何形状、绘制文字。 二、 常用图像类型 2.1 二值图像 二值图像只有黑白两种颜色,如图所示。图像中的每个像素只能是黑或白,没有中间的过渡。因此二值图像的像素值只能为0或1,0表示黑色,1表示白色。 2.2 灰度图像 灰度图像只表达图像的亮度信息没有颜色信息,如(a)图所示。 灰度图像的每个像素点上只包含一个量化的灰度级(即灰度值)。 像素点的亮度水平如(b)图所示,通常使用1字节(8位二进制数)来存储灰度值,因此用正整数表示灰度值的范围是0~255。 2.3 RGB图像 RGB(Red、Green、Blue)图像如(a)图,可以看成是由多个RGB像素点组成。 每个彩色像素点分别由R、G、B三种颜色空间组成如(b)图,本质是3维数组。 在RGB颜色空间中,任意色光都可以用R、G、B三色不同分量的相加混合而成。 2.4 常用颜色空间简介 实际应用中常用的颜色空间很多,通常使用3个独立的变量对颜色进行描述,例如RGB、HSV、YUV等。 一个图像的不同的颜色空间是可以转换的,cv2.cvtColor可以实现颜色的转换。 • cv2.COLOR_BGR2GRAY • cv2.COLOR_BGR2RGB • cv2.COLOR_BGR2HSV • cv2.COLOR_BGR2YUV • cv2.COLOR_BGR2HLS 三、OpenCV图像读写与显示 通过OpenCV库对数字图像进行处理时,涉及到的基础操作包括读取、显示、写出图像文件。 在OpenCV库中,图像数据是以NumPy数组的形式存在。 3.1 读入图像 在python的OpenCV中,通过cv2.imread()函数读入图像数据,其基本使用格式如下。 cv2.imread(filename, flags) 在默认情况下通过cv2.imread()函数读入图像数据为3通道的彩色图,像素值为8位的非负整数,图像数据以NumPy中ndarray的方式存在。 如果定义了cv2.imread()读入模式为cv2.IMREAD_GRAYSCALE那么读入图像为单通道的灰度图。 需要注意的是,通过OpenCV读入彩色图像数据的颜色通道顺序为BGR(蓝、绿、红)并非常用的RGB(红、绿、蓝)顺序。 在OpenCV中,读取到的图像数组维度可以表示为: (高,宽,通道数)即(height, width, channel)。OpenCV图像坐标与常规的数学坐标有区别,左上角位置为坐标原点。 • 在Windows【画图】工具中,帽檐红点坐标为(248, 102),但在OpenCV中像素位置应为(102, 248)。 • X轴 == 列位置 == 图像宽 • Y轴 == 行位置 == 图像高 3.2 显示图像 在OpenCV中,通过cv2.imshow()函数显示图像数据,其基本使用格式如下。 cv2.imshow(winname, img) 在OpenCV中,通过cv2.waitKey()函数设置图片窗口显示时长,其基本使用格式如下。 cv2.waitKey([,delay]) waitKey作用是图像显示时等待用户按键触发,如果用户按键触发或时间超过了设置的时间则退出图片展示。 cv2.waitKey(0)的作用是令程序一直停留在显示图像的状态。如果没有增加cv2.waitKey(0),那么程序运行完毕后,图像显示窗口会自动关闭,即一闪而逝。 3.3 写出图像 在OpenCV中,通过cv2.write()函数保存图像数据,其基本使用格式如下。 cv2.imwrite(filename, img) import cv2 import matplotlib.pyplot as plt import numpy # 读写图像 img = cv2.imread(filename='lena.jpg', flags=cv2.IMREAD_GRAYSCALE) img.shape # (377, 373) img.dtype # dtype('uint8') # 图像展示 cv2.imshow(winname='lena', mat=img) cv2.waitKey(0) # 图像保存 cv2.imwrite(filename='test_img.jpg', img=img) 四、图像几何变换 4.1 图像平移 图像平移变换将一幅图像中的所有像素点都按照给定的偏移量在水平方向(沿x轴方向)或垂直方向(沿y轴方向)移动,是图像几何变换中较为简单的一种变换。 图像平移原理示意图如下图所示。 假设对点P_0 (x_0,y_0 )进行平移后得到点P(x,y),其中x方向的平移量为∆x,y方向的平移量为∆y ,则点P(x,y)的坐标如下式。 利用齐次坐标表示图像平移变换前后点P_0 (x_0,y_0 )到点P(x,y)的关系如下式所示。 实现步骤: 1. 定义平移变换矩阵: 例如:np.float32([[1,0,50], [0,1,100]]) • [1,0,50]表示在x轴方向移动50个单位 • [0,1,100]表示在y轴方向移动100个单位 2. 执行转换:cv2.warpAffine (src, M, dsize) 通过OpenCV实现图像平移操作,结果如下图所示,(a)为原图和(b)为平移后图像。 import cv2 import matplotlib.pyplot as plt import numpy as np img = cv2.imread('lena.jpg') height, width, channel = img.shape # 图像平移 # 1、定义平移变换矩阵 M = np.float32([[1,0,50], [0,1,100]]) # 2、执行平移变换 img_tran = cv2.warpAffine(src=img, M=M, dsize=(height, width)) cv2.imshow('image translation', img_tran) cv2.waitKey(0) 4.2 图像旋转 图像旋转(Rotation)是指图像以某一点为中心旋转一定的角度形成一幅新的图像的过程。通常是以图像的中心为圆心旋转,将图像中的所有像素点都旋转一个相同的角度。 图像旋转原理如图所示,将点(x_0,y_0)绕原点o顺时针旋转至点(x_1,y_1 ),其中a为旋转角,r为点(x_0,y_0 )到原点的距离, b为原点o到点(x_0,y_0 )的线段与x轴之间的夹角。在旋转过程中, r保持不变。 设旋转前,x_0、y_0的坐标分别为x_0=r cosb、y_0=r sinb,当旋转a角度后,坐标x_1、y_1的值分别如下式所示。 上式的矩阵的形式如下式所示。 实现步骤: 1. 计算旋转变换矩阵: cv2.getRotationMatrix2D (center, angle, scale) 2. 执行转换:cv2.warpAffine (src, M, dsize) 通过OpenCV实现图像旋转,得到的效果如图所示。 # 图像旋转 # 1、定义旋转变换矩阵 M = cv2.getRotationMatrix2D(center=(height*0.5, width*0.5), # 旋转的中心位置坐标 angle=45, # 旋转的角度 scale=0.8 # 缩放比例 ) # 2、执行旋转变换 img_rotation = cv2.warpAffine(img, M, dsize=(height,width)) cv2.imshow('image_rotation', img_rotation) cv2.waitKey(0) 4.3 图像缩放 图像比例缩放是指将给定的图像在x轴方向按比例缩放f_x倍,在y轴方向按比例缩放f_y倍,从而获得一幅新的图像。如果f_x=f_y,即x轴方向和y轴方向缩放的比率相同,此比例缩放为图像的全比例缩放。如果f_x≠f_y,那么图像的比例缩放会改变原始图像的像素间的相对位置,产生几何畸变。 在OpenCV中cv2.resize(src, dsize, fx, fy, interpolation)可以实现图像缩放。 具体实现图像缩放有多种插值方法,OpenCV的resize函数提供了如下5种常见方法。 • 最邻近插值:cv2.INTER_NEAREST • 双线性插值:cv2.INTER_LINEAR • 区域插值:cv2.INTER_AREA • 三次样条插值:cv2.INTER_CUBIC • Lanczos插值:cv2.INTER_LANCZOS4 # 图像缩放 # 1、直接指定缩放大小 img_res = cv2.resize(img, dsize=(244,244)) img_res.shape # (244, 244, 3) cv2.imshow('image_resize', img_res) cv2.waitKey(0) # 2、最近邻插值 img_near = cv2.resize(img, dsize=None, fx=1.5, fy=1, interpolation=cv2.INTER_NEAREST) cv2.imshow('img_near', img_near) cv2.waitKey(0) ———————————————— 版权声明:本文为CSDN博主「明之季」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/u011125673/article/details/125240315
-
七、赛事交流 1、大赛官方交流论坛:比赛过程中参赛选手可以到ModelArts社区(ModelArts开发讨论板块)发帖,标题命名为:【广西AI+您的问题】,正文详细描述您遇到的问题(可附截图),大赛组委会工作人员将会在工作日工作时间通过社区回复,点击此处查看您提出的所有问题。 说明:为保证大赛公平公正原则,大赛官方仅针对ModelArts使用问题、赛题、数据、评分、大赛安排等问题进行答疑,参赛选手的代码调试问题不做解答。如没有得到及时回复,可以将社区帖链接发至交流群,反馈给工作人员。 2、参赛选手官方交流群(仅作为选手之间讨论和交流):请扫描如下华为云小助手微信二维码,请备注:广西AI大赛,经小助手邀请后进入相应交流群。大赛重要节点通知会在群内第一时间告知。 请与我联系周先生 19897922013 或陈女士
-
一:初识R-CNN R-CNN系列论文(R-CNN,fast-RCNN,faster-RCNN)是使用深度学习进行物体检测的鼻祖论文,其中fast-RCNN 以及faster-RCNN都是沿袭R-CNN的思路。 R-CNN全称region with CNN features,其实它的名字就是一个很好的解释。用CNN提取出Region Proposals中的featues,然后进行SVM分类与bbox的回归。 [网络结构] 接下来我从 训练阶段 和 测试阶段 分别讲解R-CNN中的核心思路。 二:训练步骤 1.RP的确定 首先介绍一下Selective Search算法,训练过程中用于从输入图像中搜索出2000个Region Proposal。Selective Search算法主要步骤: 使用一种过分割手段,将图像分割成小区域 (1k~2k 个) 计算所有邻近区域之间的相似性,包括颜色、纹理、尺度等 将相似度比较高的区域合并到一起 计算合并区域和临近区域的相似度 重复3、4过程,直到整个图片变成一个区域 在每次迭代中,形成更大的区域并将其添加到区域提议列表中。这种自下而上的方式可以创建从小到大的不同scale的Region Proposal,如图所示: 2.模型pre-training 在实际测试的时候,模型需要通过CNN提取出RP中的特征,用于后面的分类与回归。所以,如何训练好CNN成为重中之重。 由于物体标签训练数据少,如果要直接采用随机初始化CNN参数的方法是不足以从零开始训练出一个好的CNN模型。基于此,采用有监督的预训练,使用一个大的数据集(ImageNet ILSVC 2012)来训练AlexNet,得到一个1000分类的预训练(Pre-trained)模型。 3.Fine-Tunning 因为R-CNN模型实际测试时,是通过CNN对VOC测试集中每张输入图像上搜索到的2000个Region Proposal提取特征的。而RP大小都不相同,且AlexNet要求输入图像大小是227×227,所以需要对RP进行resize操作,将它们变形为227×227。变形之前,我们先在候选框周围加上16的padding,再进行各向异性缩放。 这种形变使得mAp提高了3到5个百分点。 而原CNN模型针对ImageNet数据集且无变形的图像来提取特征,现在却是针对VOC检测数据集且变形的图像来提取特征。所以,为了让我们的CNN适应新的任务(即检测任务)和新的领域(变形后的推荐窗口),需要对CNN做特定领域的参数调优,也就是fine-tunning。用的是从每张VOC训练图像中搜索到的Region Proposal进行微调的。 ( 备注:还有一个原因,如果不针对特定任务进行fine-tuning,而是把CNN当做特征提取器,卷积层所学到的特征其实就是基础的共享特征提取层,就类似于SIFT算法一样,可以用于提取各种图片的特征,而f6、f7所学习到的特征是用于针对特定任务的特征。打个比方:对于人脸性别识别来说,一个CNN模型前面的卷积层所学习到的特征就类似于学习人脸共性特征,然后全连接层所学习的特征就是针对性别分类的特征了) 首先对 PASCAL VOC数据集 进行Selective Search,搜索到2000个Region Proposal对Pre-trained模型进行fine-tuning。将原来预训练模型最后的1000-way的全连接层(分类层)换成21-way的分类层(20类物体+背景),然后计算每个region proposal和ground truth 的IoU,对于IoU>0.5的region proposal被视为正样本,否则为负样本(即背景)。另外,由于对于一张图片的多有候选区域来说,负样本是远远大于正样本数,所以需要将正样本进行上采样来保证样本分布均衡。在每次迭代的过程中,选择层次采样,每个mini-batch中采样两张图像,从中随机选取32个正样本和96个负样本组成一个mini-batch(128,正负比:1:3)。我们使用0.001的学习率和SGD来进行训练。 4.提取并保存RP的特征向量 提取特征的CNN网络经过了预训练和微调后不再训练,就固定不变了,只单纯的作为一个提特征的工具了。虽然文中训练了CNN网络对region proposal进行分类,但是实际中,这个CNN的作用只是提取每个region proposal的feature。 所以,我们输入VOC训练数据集,SS搜索出2000个RP后输入进CNN进行前向传播,然后保存AlexNet的FC7层4096维的features,以供后续的SVM分类使用。 5.SVM的训练 作者使用SVM进行分类。对于每一类都会训练一个SVM分类器,所以共有N(21)个分类器,我们来看一下是如何训练和使用SVM分类器的。 在SVM分类过程中,IOU<0.3被作为负例,ground-truth(即完全框住了物体,默认IOU>0.7时)是正例,其余的全部丢弃。然后SVM分类器也会输出一个预测的labels,然后用labels和truth labels比较,计算出loss,然后训练SVM。 其中,有一个细节,就是SVM由于是小样本训练,所以会存在负样本远多于正样本的情况。针对这种情况,作者使用了hard negative mining方法(初始时用所有样本训练,但是这样负样本可能远多王正样本,经过一轮训练后将score最高即最容易被误判的负样本加入新的样本训练集,进行训练,重复以上步骤至达到停止条件比如分类器性能不再提升),使得SVM适用于小样本训练,在样本不平衡时依然可以做到不会发生过拟合。 作者为什么要Hard Negatives?因为,负样本数目巨大,其中Pos样本数目占的比例特别低,负样本太多,直接导致优化过程很慢,因为很多负样本远离分界面对于优化几乎没有帮助(SVM分类最大间隔,只有支持向量比较有用)。Data-minig的作用就是去掉那些对优化作用很小的Easy-examples保留靠近分界面的Hard-examples。 前方核能: 有人会好奇为什么要专门使用SVM分类,而不是CNN最后的21层softmax层分类?这里我来重点讲解一下,仅个人理解: 细心的人会发现,之前在训练CNN提取特征时,设置的IOU是0.5以上为正样本,小于0.5的是负样本。但在SVM分类中,只有bbox完全包围了物体(也可以理解为IOU>0.7时)才是正样本,IOU小于0.3的是负样本。前者是大样本训练,后者是小样本训练。对于CNN的训练,需要大量的数据,不然容易过拟合,所以设置的阈值较低,比如一个bounding box可能只包含物体的一部分,那么我也把它标注为正样本,用于训练cnn;然而svm训练的时候,因为svm适用于少样本训练,所以对于训练样本数据的IOU要求比较严格,我们只有当bounding box把整个物体都包含进去了(IOU>0.7),我们才把它标注为物体类别,IOU<0.3的标注为负样本,然后训练svm。就因为这个特点,只能用低IOU来softmax分类,那么很可能导致最后的bbox框位置不准确(如果bbox和GT差距太大,通过线性回归会无法收敛),同时类识别精度也不高,根据实验MAP会下降几个百分点。如果硬要提高IOU,又会导致训练数据样本太少,发生过拟合。这就是真正的"鱼和熊掌不可得兼"啊,其实罪魁祸首就是Small VOC的训练量太少了,限制了太多优化操作。故最后选择了SVM完成分类,CNN只用来提取特征。 这样做后,精度也会有很大的提升,同时对于后面的bbox回归准确度也提高了。 6.bbox regression的训练 与GT的IOU>0.6的RP作为正样本,做回归训练。具体做法请看這篇文章 其实就是训练 d dd 矩阵向 t tt 矩阵靠齐的过程。 三:测试步骤 讲解完了R-CNN的训练过程,现在我们来讲一讲测试过程。我分以下五个步骤依次进行讲解: step1:Region proposal的确定 VOC测试图像输入后,利用SS搜索方法,根据相似度从大到小排序,筛选出2000个region proposals 。 step2:RP的Features提取 将RP通过resize成227×227,然后分别输入进CNN特征提取网络,得到了2000个4096维features。 step3:SVM分类 将(2000,4096)维矩阵输入进SVM分类器中,最终得到(2000,21)矩阵。每一行的21个列值,分别代表了这个RP属于每一个类的可能性。通过提前设置好的backgroud阈值 α αα 和所属于类的阈值 β ββ,筛选出满足条件的 m mm 个RP区域。 step4:BoundingBox-Regression 将(2000,4096)维矩阵输入进 (4096,4)的回归矩阵 d dd 中,最后输出(2000,4)偏移矩阵。代表RP中心点的位置偏移 和 bbox的尺寸变换。 将SVM筛选出的 m mm 个RP区域对应的特征向量,组成(m,4096)矩阵 代入 (4096,4)的回归矩阵 d dd 中,最后输出(m,4)偏移矩阵。 step5:Non-maximum suppression处理 只画出SVM筛选出的 m mm 个RP区域的修正后的检测框。考虑到bbox的大量累赘重叠,进行非极大值抑制(NMS),得到最终检测结果。 附上每一步处理的示例图,如下: 四:R-CNN存在的问题 训练时间长:主要原因是分阶段多次训练,而且对于每个region proposal都要单独计算一次feature map,导致整体的时间变长。 占用空间大:每个region proposal的feature map都要写入硬盘中保存,以供后续的步骤使用。 multi-stage:文章中提出的模型包括多个模块,每个模块都是相互独立的,训练也是分开的。这会导致精度不高,因为整体没有一个训练联动性,都是不共享分割训练的,自然最重要的CNN特征提取也不会做的太好。 测试时间长,由于不共享计算,所以对于test image,也要为每个proposal单独计算一次feature map,因此测试时间也很长。 至此我对R-CNN全部流程与细节,进行了深度讲解,希望对大家有所帮助,有不懂的地方或者建议,欢迎大家在下方留言评论。 我是努力在CV泥潭中摸爬滚打的江南咸鱼,我们一起努力,不留遗憾! ———————————————— 版权声明:本文为CSDN博主「江南綿雨」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_43702653/article/details/123973629
-
一、系统自带的快捷改名 1、打开对应的图片文件 2、全选后右击重命名 3、输入:Cat 注意: 默认你输入的Cat与(1)之间有一个空格 二、用Python按要求改名 1、代码如下: import os.path def rename(img_folder,num): for img_name in os.listdir(img_folder): # os.listdir(): 列出路径下所有的文件 #os.path.join() 拼接文件路径 src = os.path.join(img_folder, img_name) #src:要修改的目录名 dst = os.path.join(img_folder, 'Cat'+ str(num) + '.jpg') #dst: 修改后的目录名 注意此处str(num)将num转化为字符串,继而拼接 num= num+1 os.rename(src, dst) #用dst替代src def main(): img_folder0 = 'D:/Picture' #图片的文件夹路径 直接放你的文件夹路径即可 num=1 rename(img_folder0,num) if __name__=="__main__": main() 2、结果如下 三、在原有的图片上进行修改 例如将二中改后的图片名字:“Cat+序号”改为“Cat+Cute+序号” 1、代码如下: import os.path def rename(img_folder,num): for img_name in os.listdir(img_folder): # os.listdir(): 列出路径下所有的文件 #os.path.join() 拼接文件路径 src = os.path.join(img_folder, img_name) #src:要修改的目录名 dst = os.path.join(img_folder, img_name.split('t')[0]+'tCute'+str(num) + '.jpg') #dst: 修改后的目录名 注意此处str(num)将num转化为字符串,继而拼接 num= num+1 os.rename(src, dst) #用dst替代src def main(): img_folder0 = 'D:/Picture' #图片的文件夹路径 直接放你的文件夹路径即可 num=1 rename(img_folder0,num) if __name__=="__main__": main() 2、结果如下 3、关键代码:split() 仅修改了dst的代码: dst = os.path.join(img_folder, img_name.split('t')[0]+'tCute'+str(num) + '.jpg')' 在二中修改后 img_name=Cat+序号 例如:Cat1 img_name.split('t')作用:以’t’为分隔符分割img_name 即 img_name.split('t')[0]=Ca img_name.split('t')[1]=序号 t作为分割符被舍弃了 所以修改后的代码中是'tCute' 总结 学会了以上的方法和操作, 你就会随心所欲的批量修改图片名字了,也可推广至其它文件命名,即将最后的.jpg改为其它文件格式的后缀即可。快去试试吧! ❤️❤️❤️忙碌的敲代码也不要忘了浪漫鸭! 👻五一小长假你有什么有趣的事情要分享呢? ———————————————— 版权声明:本文为CSDN博主「怪&」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_21471309/article/details/124537319
-
chrome扩展后显示如下错误,请指导。
yd_280475890
发表于2022-10-02 12:09:02
2022-10-02 12:09:02
最后回复
This is WeAutomate
2022-10-07 19:40:07
84 1 -
Traceback (most recent call last): File "/home/ai/msobj/train.py", line 96, in model_.train(epoch=100, train_dataset=train_loader) File "/opt/anaconda3/envs/ms/lib/python3.7/site-packages/mindspore/train/model.py", line 1049, in train initial_epoch=initial_epoch) File "/opt/anaconda3/envs/ms/lib/python3.7/site-packages/mindspore/train/model.py", line 98, in wrapper func(self, *args, **kwargs) File "/opt/anaconda3/envs/ms/lib/python3.7/site-packages/mindspore/train/model.py", line 623, in _train cb_params, sink_size, initial_epoch, valid_infos) File "/opt/anaconda3/envs/ms/lib/python3.7/site-packages/mindspore/train/model.py", line 701, in _train_dataset_sink_process outputs = train_network(*inputs) File "/opt/anaconda3/envs/ms/lib/python3.7/site-packages/mindspore/nn/cell.py", line 578, in __call__ out = self.compile_and_run(*args) File "/opt/anaconda3/envs/ms/lib/python3.7/site-packages/mindspore/nn/cell.py", line 965, in compile_and_run self.compile(*inputs) File "/opt/anaconda3/envs/ms/lib/python3.7/site-packages/mindspore/nn/cell.py", line 938, in compile jit_config_dict=self._jit_config_dict) File "/opt/anaconda3/envs/ms/lib/python3.7/site-packages/mindspore/common/api.py", line 1137, in compile result = self._graph_executor.compile(obj, args_list, phase, self._use_vm_mode()) RuntimeError: Unsupported expression 'Yield'. More details please refer to syntax support at https://www.mindspore.cn ---------------------------------------------------- - The Traceback of Net Construct Code: ---------------------------------------------------- # In file /opt/anaconda3/envs/ms/lib/python3.7/site-packages/mindspore/nn/cell.py(1301) yield param ^ ---------------------------------------------------- - C++ Call Stack: (For framework developers) ---------------------------------------------------- mindspore/ccsrc/pipeline/jit/parse/parse.cc:749 ParseExprNode
匿名用户
发表于2022-10-01 02:31:21
2022-10-01 02:31:21
最后回复
匿名用户
2022-10-01 02:31:21
57 0 -
大神 机器人正常运行,pop可收到5封邮件,消息窗有显示,邮件存入路径的文件夹也有5封邮件。但是换作imap就收到0封,消息窗显示0封,文件夹里出没有邮件。是哪里的问题呢?折腾我几个小时了
-
eval控件,表达式random.randint(0,50),运行显示:完成执行[原子命令] [playbackScript.xml 第4行] 运行python表达式 [运行python表达式] [NOK] [RobotNameError] [用户输入错误: 变量名未定义,或者该变量为敏感变量,不允许在此使用。详情:name 'random' is not defined]。 我看课程中就是这样填写的,不知我错在了哪里,请高手指导。谢谢!
-
内网Web应用,搜索关键词,返回结果通过Ajax更新到表格。向抓取表格中的数据,用延时可以,但是希望能提速。比较容易想到的是等待元素出现,不过如果搜索结果为空的话,表格实际上没有变化,只能用JS了么?有没有JS可以分享下,谢谢
-
一个测试脚本,使用了自定义扩展,在另一台电脑的执行器上添加脚本失败。这台电脑上也有Studio,在Studio上安装自定义扩展后,执行器顺利添加脚本并运行。Studio上卸载自定义扩展后,该脚本无法再运行,提示如下:在Studio中再次安装自定义扩展,脚本顺利运行。不可能每台计算机都要安装Studio的,只有执行器的计算机上如何安装自定义扩展?
-
在修改was的相关配置后提交数据时,总是提示还没有连接起主从服务器。请问该怎么配置
-
“域见杯”医检人工智能开发者大赛 参赛者经验分享:2022“域见杯”医检人工智能开发者大赛-一等奖赛队“彩虹童子”方案分享2022“域见杯”医检人工智能开发者大赛-二等奖赛队“世界上没有奥特曼”方案分享2022“域见杯”医检人工智能开发者大赛-二等奖赛队“forsuccess”方案分享2022“域见杯”医检人工智能开发者大赛-三等奖赛队“赏金猎人”方案分享2022“域见杯”医检人工智能开发者大赛-三等奖赛队“limzero++”方案分享2022“域见杯”医检人工智能开发者大赛-三等奖赛队“老表,你好hea”方案分享2022“域见杯”医检人工智能开发者大赛-优胜奖赛队“E305”方案分享2022“域见杯”医检人工智能开发者大赛-优胜奖赛队“你好我叫阿卷”方案分享2022“域见杯”医检人工智能开发者大赛-优胜奖赛队“RANK9”方案分享2022“域见杯”医检人工智能开发者大赛-优胜奖赛队“simple”方案分享
-
融 · 智快好省信,启 · 政务新视界 | 华为数字机器人RPA 2022秋季发布会文末下载发布会完整材料! 精 彩 回 顾 华为数字机器人新发布为进一步助力政务新智理、惠民、兴业;同时希望从产品、方案、规范体验设计到RPA人才培养,形成全生态链的产业良性发展,华为数字机器人持续迭代并迎来全方位升级,如AI增强、FasS能力、信创能力提升等,为各位呈现新体验。 政务解决方案实践分享 让“数据多跑路,群众少跑腿”的智慧便捷政务服务模式正不断涌现,当数字机器人走进行政服务中心会带来怎样的突破?届时,华为政务行业高级专家潘军将为各位带来数字机器人政务解决方案的实践分享。 如何提升政务服务能力?数字机器人在其他政务场景中又是如何应用?敬请期待成都西辰软件有限公司的方案总监李建平带领大家共同揭秘“破解行业瓶颈,RPA助力政务智理”。 麒麟协同共建自动化 数智化建设离不开“安全“底座,数字机器人如何融合更多自动化技术,筑牢安全防线?麒麟软件有限公司的自动化负责人楚铁新将为您分享“携手RPA,共建自动化建设之旅”。 详解《政务数字机器人应用及发展观察》 如果您想全面深入理解数字机器人的政务应用及发展前景,那么一定不能错过由中国信息通信研究院云计算与大数据研究所董晓飞带来的权威解读,从智慧政务发展背景出发,全面剖析数字机器人诸多适用场景,为您带来极具前沿性的行业趋势洞察。 揭秘华为WeAutomate体验架构 “用户体验为王”,数字机器人是如何基于打造亲和自然的设计原则,结合技术拉近产品与用户的距离,助力提升政务办理体验?华为UCD高级设计师谈立伟将带领大家一同探秘品牌设计背后的故事,展现WeAutomate体验架构人文情怀及科技魅力! 数字机器人应用能力培养 “以人为本,育才强国”,人才是技术创新的基础,而学习也是每个人终身的事业。如何赋能每个人掌握自动化生产力,实现人手一个数字机器人?无论您是学生、从业人员还是社会人员,由北京航空航天大学计算机学院副院长高小鹏带来的“培养基于RPA的软件应用高效集成能力”重磅讲解,您不容错过! 直播间回顾链接 https://gde.huawei.com/#/group/weautomate_rpa/huawei_weautomate_rpa_launch_202208 - END -
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签