工业异常检测AnomalyGPT-训练试跑及问题解决

        写在前面,AnomalyGPT训练试跑遇到的坑大部分好解决,只有在保存模型失败的地方卡了一天才解决,本来是个小问题,昨天没解决的时候尝试放弃在单卡的4090上训练,但换一台机器又遇到了新的问题,最后决定还是回来踏踏实实填坑了。

准备数据:(根据官方的提示直接准备就好)

Prerequisites: Before training the model, making sure the environment is properly installed and the checkpoints of ImageBind, Vicuna and PandaGPT are downloaded.

AnomalyGPT训练配置:

 一张4090 24g显存,33g内存,batchsize8,cuda12.2 ,torch2.1.2(安装环境的时候也可以把requirements.txt的版本号都去掉,默认都装最新的)

问题1:报错localhost

    raise ValueError(f"No slot '{slot}' specified on host '{hostname}'")
ValueError: No slot '1' specified on host 'localhost'

解决办法:原因是我电脑只有一张显卡,默认配置是两张,在脚本AnomalyGPT/code/scripts/train_mvtec.sh里改一下就好了;

问题2:scikit-image报没有安装

解决办法:安装一下

pip install scikit-image

问题3:deepseed版本不对

解决办法:requirements.txt里默认deepseed版本为deepspeed==0.9.2,我电脑需要至少0.9.3的版本,重新安装一下

pip install deepspeed==0.9.3

问题4:loraconfig找不到

解决办法:AnomalyGPT/code/model/openllama.py中加

from peft import LoraConfig, TaskType, get_peft_model

问题5:被kill

解决办法:cpu不够的时候不要开浏览器,不用开vscode等一切可能抢cpu的程序或应用,就小心翼翼开个terminal在里面进行训练。

问题6:NameError: name 'LlamaTokenizer' is not defined

解决办法:AnomalyGPT/code/model/openllama.py中加

from transformers import LlamaTokenizer

正常训练起来的样子:

问题7:保存模型的时候报错TypeError: cannot pickle 'torch._C._distributed_c10d.ProcessGroup' object

解决办法:保存出错是因为我cpu内存小,所以加载预训练的时候将模型参数加载到了gpu上(具体操作参考上一篇web_demo.py试跑),保存的时候需要参数在cpu上才行(为什么这样?后面看一下细节再解答)。

正常训练跑成功及模型保存成功的样子:

参考文献:

GitHub - CASIA-IVA-Lab/AnomalyGPT: The first LVLM based IAD method!


工业异常检测AnomalyGPT-Demo试跑-CSDN博客

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

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

相关文章

图像识别与计算机视觉有什么区别?

图像识别和计算机视觉在很多方面存在差异,这些差异主要体现在以下几个方面: 1. 研究范围 图像识别是计算机视觉领域的一个子集。计算机视觉不仅包括图像识别,还涵盖了更广泛的内容,如场景理解、目标跟踪、分割、识别和解释等。简而…

Android12 关机流程

Android12 关机流程 Android 关机流程的意义在于确保系统可以安全地关闭,并且所有用户数据得到妥善保存,以防止数据丢失和损坏。 Android 关机流程确保系统可以安全地关闭,并且所有用户数据得到妥善保存。 保存用户数据:在 Android 关机过程中,系统会通知应用程序和服务进…

jsPlumb、mxGraph和Antv x6实现流程图选型

解决方案 结合我们项目以及主流解决方案,提供以下几种方案: 序号技术栈性质是否开源说明1jsPlumb国外框架社区版、商业版中台项目现有方案2mxGraph国外框架开源比较有名的开源绘图网站draw.io (和processOn类似),使用…

力扣48. 旋转图像

几何翻转 思路: 顺时针旋转可以拆解成: 先沿着水平中轴线进行翻转: m[i][j] -> m[n - 1 - i][j] (x1 x2) / 2 (n - 1) / 2x1 (n - 1) - x2y 轴不变沿着主对角线进行翻转: m[i][j] -> m[j][i] class Solution { public:…

https 中 ssl/tls 的握手

如果使用了 https 协议,那么在建立 tcp 连接之后,还会进行 tls 握手。也就是 https 的证书验证和密钥传输的过程。简化的流程如下: 客户端发送请求服务端返回证书客户端验证证书,提取公钥,生成对称加密的密钥&#xf…

JavaScript基础02

1 - 运算符(操作符) 1.1 运算符的分类 运算符(operator)也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号。 JavaScript中常用的运算符有: 算数运算符 递增和递减运算符 比较运算符 逻…

GBASE南大通用系统目录表

系统目录由描述数据库结构的表和视图组成。这些表对象有时称为数据字典,它们包含 数据库本身的所有信息。每个系统目录表都包含有关数据库中特定元素的信息。每个数据 库都有它自己的系统目录。 这些主题提供了有关系统目录表的结构、内容和使用的信息。还包含了有关…

第五站:C++的内存解析

目录 C内存分布 变量的四种存储方式 函数返回值使用指针(指针函数) 动态分配内存空间 不能使用外部函数的普通局部变量的地址 通过指针函数返回静态局部变量的地址 动态内存 根据需要分配内存,不浪费(根据用户的需求设置内存的容量) 被调用函数之外需要使用被调用函数内…

2024年1月11日 主题:非枪人生

2024年1月11日15:58:29 2024年1月11日15:35:13 2024年1月11日15:57:51 对物理进行大致预 2024年1月11日20:27:14 结论:不适合进行数据结构的训练和对电路的模拟感受 2024年1月11日20:28:32 今天也平静的结束了 不需要键盘的支持也就这么结束了我也不知道…

应用在LCD显示器电源插头里的氮化镓(GaN)MTC-65W1C

LCD(Liquid Crystal Display)显示器是利用液晶显示技术来进行图像表现的显示装置,从液晶显示器的结构来看,无论是笔记本电脑还是桌面系统,采用的LCD显示屏都是由不同部分组成的分层结构。LCD显示器按照控制方式不同可分…

适配 IOS 安全区域

安全区域指的是一个可视窗口范围,处于安全区域的内容不受圆角(corners)、齐刘海(sensor housing)、小黑条(Home Indicator)影响。 造成这个问题的主要原因就是 iphoneX 之后在屏幕上出现了所谓…

实现STM32烧写程序-(1)获取Bootloader版本信息

简介 如何像ST Flash Loader等工具一样写自己的烧写程序呢?文档 AN3155: USART protocol used in the STM32 bootloader 步骤 Boot模式 将 开发板例如STM32F103C8T6 Boot0->1 & Boo1->0 重启或复位进入系统存储模式 物理连接 将USART1 通过 USB转TTL线连接到…

NLP(十八):LLM 的推理优化技术纵览

原文:NLP(十八):LLM 的推理优化技术纵览 - 知乎 目录 收起 一、子图融合(subgraph fusion) 1.1 FasterTransformer by NVIDIA 1.2 DeepSpeed Inference by Microsoft 1.3 MLC LLM by TVM 二、模型压…

ListPreference详解与使用

ListPreference详解与使用 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,我们将深入探讨Android开发中常用的UI组件之一——“ListPreference”&a…

Windows7共享文档—开启方法及用户权限设置

使用计算机的朋友,在工作中经常需要在局域网中将文件共享给其他用户,这样其他人可以方便的通过局域网查看,甚至修改这些共享文件。当然,根据文件的重要程度,使用等级不同,不同的用户会赋予不同的权限&#…

PPT插件-大珩助手-《提取选中的幻灯片》-选中新建

选中新建 提取选中的幻灯片到新的幻灯文稿中。PDF编辑器可以提取指定的页面到新的PDF文档中,PPT没有这个功能,因此开发。 软件介绍 PPT大珩助手是一款全新设计的Office PPT插件,它是一款功能强大且实用的PPT辅助工具,支持Wps Wo…

js(JavaScript)数据结构之字典

什么是数据结构? 下面是维基百科的解释: 数据结构是计算机存储、组织数据的方式。数据结构意味着接口或封装:一个数据结构可被视为两个函数之间的接口,或者是由数据类型联合组成的存储内容的访问方法封装。 我们每天的编码中都会…

K8S的dashboard使用账号密码登录

原文网址:K8S的dashboard使用账号密码登录-CSDN博客 简介 本文介绍K8S的dashboard使用账号密码登录的方法。 ----------------------------------------------------------------------------------------------- 分享Java真实高频面试题,吊打面试官&…

C语言中的赋值运算、比较运算和逻辑运算详解

在C语言中,赋值运算、比较运算和逻辑运算是常用的操作符,用于进行变量赋值、条件判断和逻辑组合。本文将详细介绍这三种运算符的用法和示例。 1. 赋值运算符 赋值运算符使用等号(),用于将右侧的值赋给左侧的变量。C语…

uniapp中uview组件库丰富的ActionSheet 操作菜单使用方法

目录 #平台差异说明 #基本使用 #配置顶部的提示信息和底部取消按钮 #如何知道点了第几项 #API #Props #Event 本组件用于从底部弹出一个操作菜单,供用户选择并返回结果。 本组件功能类似于uni的uni.showActionSheetAPI,配置更加灵活,所…