首页 > 其他分享 >Debug Log - ModuleNotFoundError: No module named 'timm.models.layers.patch_embed'

Debug Log - ModuleNotFoundError: No module named 'timm.models.layers.patch_embed'

时间:2024-08-11 11:06:08浏览次数:10  
标签:layers named lingdu Log deit models home model timm

运行代码:

import timm
import torch

model = timm.create_model(
    'deit_small_patch16_224',
    pretrained=True, 
    num_classes=6,
    pretrained_cfg_overlay = dict(file='/home/lingdu/zyt/works/pretrained_models/deit_small_patch16_224-cd65a155.pth'))

torch.save(model, 'timm_models/deit_small.pth')

目的是想通过本地的权重文件,通过timm库来创建一个deit_small_patch16_224模型。

报错信息:

File "/home/lingdu/zyt/works/PD_6/get_model.py", line 10, in <module>
    model = timm.create_model(
  File "/home/lingdu/.conda/envs/codiff/lib/python3.8/site-packages/timm/models/_factory.py", line 117, in create_model
    model = create_fn(
  File "/home/lingdu/.conda/envs/codiff/lib/python3.8/site-packages/timm/models/deit.py", line 258, in deit_small_patch16_224
    model = _create_deit('deit_small_patch16_224', pretrained=pretrained, **dict(model_args, **kwargs))
  File "/home/lingdu/.conda/envs/codiff/lib/python3.8/site-packages/timm/models/deit.py", line 123, in _create_deit
    model = build_model_with_cfg(
  File "/home/lingdu/.conda/envs/codiff/lib/python3.8/site-packages/timm/models/_builder.py", line 418, in build_model_with_cfg
    load_pretrained(
  File "/home/lingdu/.conda/envs/codiff/lib/python3.8/site-packages/timm/models/_builder.py", line 168, in load_pretrained
    state_dict = load_state_dict(pretrained_loc)
  File "/home/lingdu/.conda/envs/codiff/lib/python3.8/site-packages/timm/models/_helpers.py", line 54, in load_state_dict
    checkpoint = torch.load(checkpoint_path, map_location=device)
  File "/home/lingdu/.conda/envs/codiff/lib/python3.8/site-packages/torch/serialization.py", line 1025, in load
    return _load(opened_zipfile,
  File "/home/lingdu/.conda/envs/codiff/lib/python3.8/site-packages/torch/serialization.py", line 1446, in _load
    result = unpickler.load()
  File "/home/lingdu/.conda/envs/codiff/lib/python3.8/site-packages/torch/serialization.py", line 1439, in find_class
    return super().find_class(mod_name, name)
ModuleNotFoundError: No module named 'timm.models.layers.patch_embed'

Deit作为一个Transformer系列的模型,毫无疑问会使用到patch_embed这个模块,这里的bug主要是由于路径错误
查看github中timm的源码可以看到,在新版本的timm中,patch_embed位于timm.layers.patch_embed路径下。
这里报错是因为环境中的timm是旧版本的,但下载的模型与最新版本的timm适配,造成了路径的不匹配。

image

解决方法:
卸载旧版本timm,
pip uninstall timm

安装最新版。
pip install timm==1.0.8

最新版本号我是在pypi上查看的。
https://pypi.org/project/timm/
image

标签:layers,named,lingdu,Log,deit,models,home,model,timm
From: https://www.cnblogs.com/lingdu98/p/18353157

相关文章

  • Log4j2中RollingFile的文件滚动更新机制
    一、什么是RollingFileRollingFileAppender是Log4j2中的一种能够实现日志文件滚动更新(rollover)的Appender。rollover的意思是当满足一定条件(如文件达到了指定的大小,达到了指定的时间)后,就重命名原日志文件进行归档,并生成新的日志文件用于log写入。如果还设置了一定时间内......
  • SQL Server数据库Owner导致事务复制log reader job无法启动的解决办法
    问题场景SQLServer事务复制在正常创建发布和订阅之后,logreaderJob启动异常,出现“Theprocesscouldnotexecute‘sp_replcmds’onxxx”等异常日志导致代理服务无法正常启动。 异常现象参考下图,异常日志如下Errormessages:Theprocesscouldnotexecute‘sp_re......
  • 脚本执行报错 cp: cannot stat '/home/dar/app/log_back'$'\r''/nohup.out': No
    背景针对线上nohup日志较大,需要进行拆分,所以写了一个脚本文件,用来定时执行(或者手动执行)脚本一log_dir="/home/dar/app/log_back"#拷贝日志文件到昨天的log中cp$log_dir/nohup.out$log_dir/nohup-$(date+"%Y%m%d_%H%M%S").log#清空nohup.out日志truncate-s0$log_d......
  • Springboot+logback+druid +密码加密 实现业务日志入库
    springboot配置spring:datasource:type:com.alibaba.druid.pool.DruidDataSourcedruid:#主库数据源master:driverClassName:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://xxx:3306/dbName?useUnicode=true&characterEncoding=u......
  • graylog长日志丢日志的问题
    graylog长日志丢日志的问题环境:C#.NET使用UDP发送给graylog。当日志内容(full_message)超过 21790个汉字时,就报错:一个在数据报套接字上发送的消息大于内部消息缓冲区或其他一些网络限制,或该用户用于接收数据报的缓冲区比数据报小。 21780个汉字正常。 可能尝试的......
  • BossPlayersCTF靶机笔记
    BossPlayersCTF靶机靶机概述这是vulnhub上的一个简单的linux靶机,适合初级渗透测试人员,同时也告诉我们在渗透测试过程中要有耐心,要允许有兔子洞。靶机整体思路:主机端口探测,发现web服务。在web服务中进行信息收集,发现命令注入,反弹shell利用SUID进行提权,拿到rootflag靶机下......
  • 常见的中间件漏洞:WebLogic
     WebLogic        WebLogic是美国Oracle公司出品的⼀个applicationserver,确切的说是⼀个基于JAVAEE架构的中间件,默认端⼝:7001WebLogic是⽤于开发、集成、部署和管理⼤型分布式Web应⽤、⽹络应⽤和数据库应⽤的Java应⽤服务器。将Java的动态功能和JavaEnterprise......
  • crictllog执行命令报错:ContainerStatus from runtime service failed“
    执行crictl有pod、但是crictllogs容器id有报错 解决方式:因crictllog查看的是container容器、这个容器是查看ctr中的容器见截图信息:查看容器信息:-n指定命名空间(k8s.容器默认是运行在k8s.io这个namespace下、所以需要指定)ctrpods 查看的只是头部信息、所以获取......
  • laravel: 用中间件把请求和响应log下来
    一,代码:1,中间件<?phpnamespaceApp\Http\Middleware;useClosure;useIlluminate\Http\Request;useSymfony\Component\HttpFoundation\Response;useApp\extend\LogEs;classLogSearch{/***Handleanincomingrequest.**@par......
  • 删库了不用跑路!binlog恢复数据实操
    各位道友大家好呀!想必道友们或多或少都听说过MySQL的binlog的作用,它记录了数据库整个的生命周期,可用于恢复数据或者从库同步数据。那么如果发生了数据库误删,具体该怎样恢复数据呢?下面就以一个例子来给道友们演示一下,让我们开始吧!doit!数据备份首先,数据库要定时进行备份,因为如......