网站权重一般有几个等级动漫网站源码下载

news/2025/9/23 18:28:34/文章来源:
网站权重一般有几个等级,动漫网站源码下载,北京开公司一年费用,网站建设实现的目标提示#xff1a;RAM模型#xff1a;环境安装、数据准备与说明、模型推理、模型finetune、模型pretrain等 文章目录 前言一、环境安装二、数据准备与解读1.数据下载2.数据标签内容解读3.标签map内容解读 三、finetune训练1.微调训练命令2.load载入参数问题3.权重载入4.数据加载… 提示RAM模型环境安装、数据准备与说明、模型推理、模型finetune、模型pretrain等 文章目录 前言一、环境安装二、数据准备与解读1.数据下载2.数据标签内容解读3.标签map内容解读 三、finetune训练1.微调训练命令2.load载入参数问题3.权重载入4.数据加载问题5.设备不匹配报错6.运行结果 四、pretrain预训练1.预训练命令2.swin_large_patch4_window12_384_22k.pth权重a.下载b.权重加载修改 3.ram_plus_tag_embedding_class_4585_des_51.pth权重a.下载b.权重加载修改 4.变量设备匹配问题5. 预训练成功显示 五、数据加载源码简单解读六、推理 前言 随着SAM模型分割一切大火之后又有RAM模型识别一切RAM模型由来可有三篇模型构成TAG2TEXT为首篇将tag引入VL模型中由tagging、generation、alignment分支构成随后才是RAM模型主要借助CLIP模型辅助与annotation处理trick由tagging、generation分支构成最后才是RAM模型该模型引入semantic concepts到图像tagging训练框架RAM模型能够利用图像-标签-文本三者之间的关系整合image-text alignment 和 image-tagging 到一个统一的交互框架里。作者也将三个模型整合成一套代码本文将介绍RAM模型主要内容包含环境安装、数据准备与说明、模型推理、模型finetune、模型pretrain等内容并逐过程解读也帮读者踩完所有坑只要按照我我步骤将会实现RAM流畅运行。 TAG2TEXT论文链接点击这里 RAM论文链接点击这里 RAM论文链接点击这里 github官网链接点击这里 一、环境安装 说实话环境安装按照官网来没有报什么错可直接推理运行但是训练可能会缺一些东西后续将介绍环境安装如下 Install recognize-anything as a package: pip install githttps://github.com/xinyu1205/recognize-anything.gitOr, for development, you may build from source git clone https://github.com/xinyu1205/recognize-anything.git cd recognize-anything pip install -e .二、数据准备与解读 1.数据下载 图像数据需要根据相应内容去下载而数据标签下载可以去github代码官网链接点击下面红框即可。当然你也可转到下面网页链接。 数据标签下载https://huggingface.co/datasets/xinyu1205/recognize-anything-dataset-14m/tree/main 当进入标签页面如下: 2.数据标签内容解读 当你下载了标签后你能发现标签实际是列表列表中每个数据又是一个字典包含image_path、caption、union_label_id、parse_label_id字典以vg_ram.json标签举列我们取第一个元素如下图所示 我们进一步展开该数据你会重点发现parse_label_id是一个二维列表每一行是对对应caption描述取的tag而union_label_id是一维列表parse_label_id中tag都能在union_label_id找到反之不行。如下图 3.标签map内容解读 我们在上面可看到parse_label_id与union_label_id是数字那么这些数字如何得到必然有一个映射表该表是ram_tag_list_4585_llm_tag_descriptions.json文件中该文件也是一个列表列表中每个元素是一个字典该字典key就是tagvalue是一个列表是对key的描述我查看value的列表有50个描述。其中该文件列表位置(索引)就代表key(tag)这也是parse_label_id与union_label_id的数字。如下 当然RAM模型数据可以一个元素的一张图有多个描述如下左图也可以多个元素表示同一张图进行多个描述如下 三、finetune训练 1.微调训练命令 可看出训练使用finetune.py文件参数配置是finetune.yaml文件模型类型选择是ram_plus文件如下 python -m torch.distributed.run --nproc_per_node8 finetune.py \ --model-type ram_plus \ --config ram/configs/finetune.yaml \ --checkpoint outputs/ram_plus/checkpoint_04.pth \ --output-dir outputs/ram_plus_ft我是直接运行finetune.py文件使用远程链接方式运行的 2.load载入参数问题 当执行微调命令时我遇到yaml载入问题如下图 当然这个是个小问题与环境相关可能你们不会遇到若遇到可尝试我的解决方法 导入包ruamel.yaml更改原有代码 config yaml.load(open(args.config, r), Loaderyaml.Loader)为以下代码即可 import ruamel.yaml yaml ruamel.yaml.YAML(typrt) config yaml.load(open(args.config, r))注该问题pretrain可能也会遇到。 3.权重载入 第二个问题模型权重 模型权重载入需要修改根据你的需求可修改权重路径如下图 我使用ram将model_clip, _ clip.load(/home/notebook/data/group/huangxinyu/clip/ViT-B-16.pt)中的地址替换即可。 权重下载地址如下 _MODELS { RN50:https://openaipublic.azureedge.net/clip/models/afeb0e10f9e5a86da6080e35cf09123aca3b358a0c3e3b6c78a7b63bc04b6762/RN50.pt, RN101:https://openaipublic.azureedge.net/clip/models/8fa8567bab74a42d41c5915025a8e4538c3bdbe8804a470a72f30b0d94fab599/RN101.pt, RN50x4:https://openaipublic.azureedge.net/clip/models/7e526bd135e493cef0776de27d5f42653e6b4c8bf9e0f653bb11773263205fdd/RN50x4.pt, RN50x16: https://openaipublic.azureedge.net/clip/models/52378b407f34354e150460fe41077663dd5b39c54cd0bfd2b27167a4a06ec9aa/RN50x16.pt, RN50x64: https://openaipublic.azureedge.net/clip/models/be1cfb55d75a9666199fb2206c106743da0f6468c9d327f3e0d0a543a9919d9c/RN50x64.pt, ViT-B/32: https://openaipublic.azureedge.net/clip/models/40d365715913c9da98579312b702a82c18be219cc2a73407c4526f58eba950af/ViT-B-32.pt, ViT-B/16: https://openaipublic.azureedge.net/clip/models/5806e77cd80f8b59890b7e101eabd078d9fb84e6937f9e85e4ecb61988df416f/ViT-B-16.pt, ViT-L/14: https://openaipublic.azureedge.net/clip/models/b8cca3fd41ae0c99ba7e8951adf17d267cdb84cd88be6f7c2e0eca1737a03836/ViT-L-14.pt, ViT-L/14336px: https://openaipublic.azureedge.net/clip/models/3035c92b350959924f9f00213499208652fc7ea050643e8b385c2dac08641f02/ViT-L-14-336px.pt, } 4.数据加载问题 需在finetune.yaml文件中设定image_path_root: “” 参数使得该参数与下图image_path合并为图像绝对路径我设定如下 image_path_root: /home/Project/recognize-anything/datasets/train 图像路径如下图所示 5.设备不匹配报错 运行预训练命令依然会报错如下 该问题也是小问题就是变量设备不匹配问题在finetune.py文件为image_tag变量指定设备添加一句代码 image_tag image_tag.to(device,non_blockingTrue) 修改后整体代码如下 for i, (image, image_224, caption, image_tag, parse_tag) in enumerate(metric_logger.log_every(data_loader, print_freq, header)): optimizer.zero_grad() batch_text_embed build_text_embed(model_clip,caption) image image.to(device,non_blockingTrue) image_224 image_224.to(device,non_blockingTrue) image_tag image_tag.to(device,non_blockingTrue) clip_image_feature model_clip.encode_image(image_224) loss_tag, loss_dis, loss_alignment model(image, caption, image_tag, clip_image_feature, batch_text_embed) loss loss_tag loss_dis loss_alignment 6.运行结果 之后运行结果如下 我们进一步可发现使用一张3090显卡batch为20即可满负载如下 注以上微调内容某些在训练时候遇到按其修改即可 四、pretrain预训练 1.预训练命令 可看出预训练使用pretrain.py文件参数配置是pretrain.yaml文件模型类型选择是ram_plus文件如下 python -m torch.distributed.run --nproc_per_node8 pretrain.py \--model-type ram_plus \--config ram/configs/pretrain.yaml \--output-dir outputs/ram_plus2.swin_large_patch4_window12_384_22k.pth权重 a.下载 但你直接使用该命令时候会报如下错误 以上报错是因为缺失相应权重swin_large_patch4_window12_384_22k.pth我们只需通过下面链接点击这里获得如下图权重下载即可如下 b.权重加载修改 对应权重下载实际是pretrain.yaml参数设置的vit: swin_l与image_size: 224共同决定我们将其定位为config_swinl_224.json文件如下图 上面我们已知权重路径更改位置我们将其下载权重绝对路径替换即可如下代码示列 { {ckpt: 绝对路径位置/swin_large_patch4_window12_384_22k.pth,vision_width: 1536,image_res: 224,window_size: 7,embed_dim: 192,depths: [ 2, 2, 18, 2 ],num_heads: [ 6, 12, 24, 48 ]}}3.ram_plus_tag_embedding_class_4585_des_51.pth权重 a.下载 当你再次使用该命令时候会报如下错误 不要慌张依然是权重问题我们只需链接:点击这里可在huggingface下载我们想要的权重文件。 b.权重加载修改 对应权重下载后有2种方法可实现权重正确加载第一将下载权重放到指定路第二将在源码ram_plus.py改成绝对路径如下图 4.变量设备匹配问题 当你很开心再次使用预训练命令时会报如下错误(该错误在finetune也会出现) 该问题也是小问题就是变量设备不匹配问题从上图报错地方可追述到ram_plus.py文件除了问题实际决定该问题是在pretrain.py文件调用那里主要是image_tag是一个传入参数未能给定device我们在pretrain.py下面代码给定即可我也建议在pretrain.py修改而不要动报错地方修改你只需添加image_tag image_tag.to(device, non_blockingTrue)指定设备修改如下 for i, (image, caption, image_tag, parse_tag) in enumerate(metric_logger.log_every(data_loader, print_freq, header)):if epoch0:warmup_lr_schedule(optimizer, i, config[warmup_steps], config[warmup_lr], config[init_lr])optimizer.zero_grad()batch_text_embed build_text_embed(model_clip,caption)image image.to(device,non_blockingTrue)image_tag image_tag.to(device, non_blockingTrue) # 5. 预训练成功显示 如出现下图表示预训练成功如下 我们进一步可发现使用一张3090显卡batch为20即可满负载如下 五、数据加载源码简单解读 标签源码如下可看到图像做了2次加工一次该模型本身使用image,一次为图像特征提取swin模型使用image_224,而caption为一句话若为多句随机选择一句,该句话直接通过clip的文本编码获得特征image_tag 是union_label_id, parse_tag是parse_label_id具体如下代码 def __getitem__(self, index): ann self.ann[index] image_path_use os.path.join(self.root, ann[image_path])image Image.open(image_path_use).convert(RGB) image self.transform(image)image_224 Image.open(image_path_use).convert(RGB) image_224 self.transform_224(image_224)# image_tag 是union_label_idnum ann[union_label_id]image_tag np.zeros([self.class_num])image_tag[num] 1image_tag torch.tensor(image_tag, dtype torch.long)caption_index np.random.randint(0, len(ann[caption])) # 有的数据集有多个描述caption pre_caption(ann[caption][caption_index],30)# parse_tag是parse_label_idnum ann[parse_label_id][caption_index]parse_tag np.zeros([self.class_num])parse_tag[num] 1parse_tag torch.tensor(parse_tag, dtype torch.long)return image, image_224, caption, image_tag, parse_tag 六、推理 推理可直接使用命令,指定权重我在pretrain已给出链接可自行下载 python batch_inference.py \ --model-type ram_plus \ --checkpoint pretrained/ram_plus_swin_large_14m.pth \ --dataset openimages_common_214 \ --output-dir outputs/ram_plus当然你也可以使用我的代码我是将一个文件夹循环推理并将推理结果打印于图上便于查看如下 * The Recognize Anything Plus Model (RAM)* Written by Xinyu Huangimport argparse import osimport numpy as np import randomimport torchfrom PIL import Image from ram.models import ram_plus from ram import inference_ram as inference from ram import get_transformparser argparse.ArgumentParser(descriptionTag2Text inferece for tagging and captioning) parser.add_argument(--image,helppath to dataset,defaultimages/demo/demo1.jpg) parser.add_argument(--pretrained,helppath to pretrained model,default路径位置/ram_plus_swin_large_14m.pth) parser.add_argument(--image-size,default384,typeint,metavarN,helpinput image size (default: 448))import cv2 import numpy as np from PIL import Image, ImageDraw, ImageFontdef cv2ImgAddText(img, text, left, top, textColor(0, 255, 0), textSize20):if (isinstance(img, np.ndarray)): # 判断是否OpenCV图片类型img Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))# 创建一个可以在给定图像上绘图的对象draw ImageDraw.Draw(img)# 字体的格式fontStyle ImageFont.truetype(/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc, textSize, encodingutf-8) # 绘制文本draw.text((left, top), text, textColor, fontfontStyle)# 转换回OpenCV格式return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)def build_dir(out_dir):if not os.path.exists(out_dir):os.makedirs(out_dir,exist_okTrue)return out_dirif __name__ __main__:args parser.parse_args()device torch.device(cuda if torch.cuda.is_available() else cpu)transform get_transform(image_sizeargs.image_size)#######load modelmodel ram_plus(pretrainedargs.pretrained,image_sizeargs.image_size,vitswin_l)model.eval()model model.to(device)total sum(p.numel() for p in model.parameters()) # 统计个数print(模型参数总量: %.2f million\t % (total / 1e6), 以float32模型内存占用:%.2f M % (total * 4 / 1e6))# 下面是推理file_root/推理文件路径/sam_test # 这个是多个文件夹路径save_file_pathbuild_dir(runs)for file_name in os.listdir(file_root):save_pathos.path.join(save_file_path,file_name)img_rootos.path.join(file_root,file_name)for img_name in os.listdir(img_root):img_pathos.path.join(img_root,img_name)image transform(Image.open(img_path)).unsqueeze(0).to(device)res inference(image, model)# print(Image Tags: , res[0])# print(图像标签: , res[1])img cv2.imread(img_path)Nint(len(res[1])/2)r1 res[1][:N]r2 res[1][N:]# r3 res[1][2*N:]img cv2ImgAddText(img, r1, 40, 50, textColor(255, 0, 0), textSize20)img cv2ImgAddText(img, r2, 40, 200, textColor(255, 0, 0), textSize20)# img cv2ImgAddText(img, r2, 40, 300, textColor(255, 0, 0), textSize40)build_dir(save_path)cv2.imwrite(os.path.join(save_path, img_name), img)

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

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

相关文章

VoxCPM:新一代高拟真语音生成模型

一、概述 仅需0.5B参数,VoxCPM就能用你的声音说任何话:这款开源语音模型在音色克隆和情感表达上突破极限,实时生成媲美真人的播报、演讲甚至方言,错误率低至行业新标杆。在语音合成技术快速发展的背景下,面壁智能…

Day20封装的初步认识

封装是面向对象的三大特性之一,通过private这一关键词将类的属性私有化,且为了对私有的属性进行赋值,需要提供公共的get/set方法对外暴露一个安全的操作接口,使外部可以合法的访问与修改属性 封装的作用:1,保护数…

【Qt开发】显示类控件(三)-> QProgressBar - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

完整教程:数据结构与算法-树和二叉树-二叉树的存储结构(Binary Tree)

完整教程:数据结构与算法-树和二叉树-二叉树的存储结构(Binary Tree)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: …

简单的旅游网站代码做视频网站了几百万

前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 微信公众号:创享日记 发送:联合定位 获…

网站销售方案深圳关键词优化

RabbitMQ六种工作模式 RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。 RabbitMQ有六…

音乐电子商务网站的建设太原网站建设的公司

一、概述 嵌合抗原受体(CAR)是经过改造后赋予T细胞靶向特定抗原的新能力的受体蛋白。这些受体是嵌合的,因为它们将抗原结合和T细胞激活功能结合到一个受体中。CAR-T细胞疗法使用经过CAR改造的T细胞来治疗癌症。CAR-T免疫疗法的前提是修改T细…

互联网网站开发用哪个语言开发seo推广技术培训

AJAX 学习 AJAX 2 综合案例黑马 API01 图书管理Bootstrap 官网Bootstrap 弹框图书管理-渲染列表图书管理-添加图书图书管理-删除图书图书管理 - 编辑图书 02 图片上传03 更换图片04 个人信息设置信息渲染头像修改补充知识点:label扩大表单的范围 AJAX 2 综合案例 黑…

网站优化需求wordpress+解密成md5

Microsoft的Scott Hunter发布了Microsoft .NET Core 2.1版本的路线图。Hunter宣布Microsoft .NET Core每天约有五十万开发人员的使用量。根据Microsoft所收集的数据,在2017年9月.NET Core 2的使用量已经超过了.NET Core 1.X。有了之前成功的发布经验,Mic…

有成功案例的网站繁体网站模板

CF1100F Ivan and Burgers 静态区间,选取任意个数使得它们的异或和最大 \(n,\ m\leq5\times10^5,\ a_i\in[0,\ 10^6]\) lxl ST表,线性基 如果暴力维护线性基,线段树时间复杂度为 \(O(n\log^2n)-O(\log^3n)\) 由于重复元素对答案没有影响&…

做百度推广网站得多少钱长春火车站防疫政策

引言:当Spring Cloud遇见GraalVM,启动时间进入秒级时代 传统Spring Cloud应用因动态类加载、反射等机制导致启动缓慢(通常超过30秒),在Serverless和Kubernetes滚动更新场景下成为性能瓶颈。Spring Cloud 2023.x通过**G…

专门做男装的网站网站建设分金手指专业十四

为便于广大科技工作者更好的了解中国汽车行业首个英文学术期刊《Automotive Innovation》,并更快的定位到自己感兴趣的论文,编辑部把2018-2019年刊出的70篇论文摘要进行集结,并按照节能与环保(Energy-saving & Eco-systems)、智能网联汽车…

单页面网站设计网站欣赏wordpress 收费主题

摘要:很多人想用十全十美来修饰一样东西,比如软件,对于客户来说,当然希望他们的软件能做到完美。虽然很多专家说利用一些规范可以让软件达到更好!但是在现实开发中,真的会有那么完美的软件吗? 最…

安徽住房建设厅网站凡客诚品服装购物网

各位T3学员∶本周VBA技术资料增加391-395讲,看到通知后联络我(微:VBA6337)免费领取资料。成果来之不易,您更新后请说声谢谢,感恩我的成果。 MF391:选择同颜色的单元格 MF392:连接范…

网站改版seo方案国际最新时事新闻热点

目录 第一步先选择合适的证书类型: 第二步在填写自己需要保护的域名信息: 第三步验证域名所有权(或者是单位组织信息、详细组织单位业务详情): 第四步验证完成后证书会正常签发: 第五步将下载完成的证书…

佳木斯 两学一做 网站wordpress windows下载

人工智能在未来会有哪些可能的发展趋势? 答:人工智能在未来将继续迎来许多可能的发展趋势,以下是一些可能的方向: 更强大的算法和模型:人工智能算法和模型将不断改进和优化,为更复杂的数据和问题提供更强大…

织梦 网站首页阿里云免费建站

演示视频: 基于SSM的美容院管理系统演示。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring SpringMvcMybatisVueLayuiElem…

快速建站费用网站排名突然掉了怎么回事

代码中Ci表示候选频繁i项集,Li表示符合条件的频繁i项集    # codingutf-8    def createC1(dataSet): # 构建所有1项候选项集的集合    C1 []    for transaction in dataSet:    for item in transaction:    if [item] not in C1:   …

郑州网站制作开发林州网站建设哪家专业

接上一篇:SpringBoot入门到精通_第3篇 _应用组件分析 https://blog.csdn.net/weixin_40816738/article/details/101096218 文章目录一、SpringBoot 开发三板斧1. 简述2. 案例2.1. 整合springDataJpa2.2. 启动类加注解2.3. 写配置一、SpringBoot 开发三板斧 1. 简述…