We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
main branch (mmpretrain version)
在使用官网提供的 ConvNeXtV2 预训练权重时,加载过程中出现键值对不匹配的问题。这似乎是因为下载的权重文件格式和项目的加载方式不完全一致。 在加载权重时,使用了以下代码:
model = dict( backbone=dict( frozen_stages=4, init_cfg=dict( type="Pretrained", checkpoint="checkpoints/converted_convnext-v2-large.pth", prefix="backbone", ), ) )
加载时出现键值对不匹配,导致无法正常加载权重。
为了使下载的权重文件格式符合项目的加载要求,可以对权重进行后处理,提取其中的 'state_dict' 字段。具体代码如下:
import torch # 加载权重文件并提取 state_dict weight = torch.load("checkpoints/convnext-v2-large.pth", map_location="cpu")['state_dict'] # 打印权重中的键值对 print(weight.keys()) # 将处理后的权重加载到模型 torch.save(weight ,"save_path.pth")
通过上述处理,将权重文件中的 'state_dict' 提取出来,确保模型加载时的键值对匹配,解决了加载失败的问题。
System environment: sys.platform: linux Python: 3.8.20 (default, Oct 3 2024, 15:24:27) [GCC 11.2.0] CUDA available: True MUSA available: False numpy_random_seed: 533839887 GPU 0,1: NVIDIA GeForce RTX 3090 CUDA_HOME: /usr/local/cuda NVCC: Cuda compilation tools, release 12.3, V12.3.107 GCC: gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 PyTorch: 2.0.1 PyTorch compiling details: PyTorch built with: - GCC 9.3 - C++ Version: 201703 - Intel(R) oneAPI Math Kernel Library Version 2023.1-Product Build 20230303 for Intel(R) 64 architecture applications - Intel(R) MKL-DNN v2.7.3 (Git Hash 6dbeffbae1f23cbbeae17adb7b5b13f1f37c080e) - OpenMP 201511 (a.k.a. OpenMP 4.5) - LAPACK is enabled (usually provided by MKL) - NNPACK is enabled - CPU capability usage: AVX2 - CUDA Runtime 11.8 - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_90,code=sm_90;-gencode;arch=compute_37,code=compute_37 - CuDNN 8.7 - Magma 2.6.1 - Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.8, CUDNN_VERSION=8.7.0, CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, CXX_FLAGS= -D_GLIBCXX_USE_CXX11_ABI=0 -fabi-version=11 -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO -DLIBKINETO_NOROCTRACER -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -O2 -fPIC -Wall -Wextra -Werror=return-type -Werror=non-virtual-dtor -Werror=bool-operation -Wnarrowing -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wunused-local-typedefs -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Werror=cast-function-type -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_DISABLE_GPU_ASSERTS=ON, TORCH_VERSION=2.0.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF, TorchVision: 0.15.2 OpenCV: 4.10.0 MMEngine: 0.10.5 Runtime environment: cudnn_benchmark: True mp_cfg: {'mp_start_method': 'fork', 'opencv_num_threads': 0} dist_cfg: {'backend': 'nccl'} seed: 533839887 deterministic: False Distributed launcher: pytorch Distributed training: True GPU number: 2
No response
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Branch
main branch (mmpretrain version)
Describe the bug
描述
在使用官网提供的 ConvNeXtV2 预训练权重时,加载过程中出现键值对不匹配的问题。这似乎是因为下载的权重文件格式和项目的加载方式不完全一致。
在加载权重时,使用了以下代码:
加载时出现键值对不匹配,导致无法正常加载权重。
解决方法
为了使下载的权重文件格式符合项目的加载要求,可以对权重进行后处理,提取其中的 'state_dict' 字段。具体代码如下:
通过上述处理,将权重文件中的 'state_dict' 提取出来,确保模型加载时的键值对匹配,解决了加载失败的问题。
Environment
Other information
No response
The text was updated successfully, but these errors were encountered: