当前位置: 首页 > news >正文

ubuntu20.04 conda环境配置Mask2former记录

建议先看完再按照步骤安装

代码地址:GitHub - facebookresearch/Mask2Former: Code release for "Masked-attention Mask Transformer for Universal Image Segmentation"

一、配置环境

1、创建虚拟环境

conda create -n mask2former python=3.8conda activate mask2former

2、安装pytorch

在pytorch官网,找到对应版本pytorch

# CUDA 11.3
conda install pytorch==1.9.1 torchvision==0.10.1 torchaudio==0.9.1 cudatoolkit=11.3 -c pytorch -c conda-forge

通过这个命令安装的pytorch在后续使用时出现了问题(后面会讲到),于是后来我换了安装命令,解决了问题,建议直接用下面的命令安装:

# CUDA 11.3 pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113

3、安装opencv-python

pip install -U opencv-python

4、安装detectorn2

如果这些语句下载不下来就直接去网址下载

# under your working directory 
git clone git@github.com:facebookresearch/detectron2.git 
cd detectron2 pip install -e . 
pip install git+https://github.com/cocodataset/panopticapi.git 
pip install git+https://github.com/mcordts/cityscapesScripts.git

5、安装mask2former

cd .. 
git clone git@github.com:facebookresearch/Mask2Former.git 
cd Mask2Former 
pip install -r requirements.txt 
cd mask2former/modeling/pixel_decoder/ops 
sh make.sh

二、准备数据集

ADE20K数据集

数据集文件夹内容如下

ADEChallengeData2016/ images/ annotations/ objectInfo150.txt # 1、下载 instance annotation annotations_instance/ # 2、下面内容由 prepare_ade20k_sem_seg.py 生成 annotations_detectron2/ # 3、下面内容由 prepare_ade20k_pan_seg.py 生成 ade20k_panoptic_{train,val}.json ade20k_panoptic_{train,val}/ # 4、下面内容由 prepare_ade20k_ins_seg.py 生成 ade20k_instance_{train,val}.json

根据以上步骤依次生成数据集所需文件,另外由于我把数据集放在了项目文件夹外,所以在各种py文件中需要修改路径

下载 instance annotation 可以从 MIT Scene Parsing Benchmark,也可以用命令下载

wget http://sceneparsing.csail.mit.edu/data/ChallengeData2017/annotations_instance.tar

然后,运行将语义和实例注释组合为全景注释。

python-datasets/prepare_ade20k_pan_seg.py

并运行提取实例annota

python datasets/prepare_ade20k_ins_seg.py

三、训练

多gpu训练:

python train_net.py --num-gpus 2 --config-file configs/ade20k/panoptic-segmentation/maskformer2_R50_bs16_160k.yaml

以ADE20K数据集为例:

数据集路径在/home/dell/liyan/Mask2Former-main/mask2former/data/datasets/相对应的文件中,最后两行可以设置数据集路径

后续将更新训练的细节和遇到的问题

四、安装遇到问题

1、执行 sh make.sh 后出现问题:

No CUDA runtime is found, using CUDA_HOME='/usr/local/cuda-11.3' Traceback (most recent call last): File "setup.py", line 76, in <module> ext_modules=get_extensions(), File "setup.py", line 54, in get_extensions raise NotImplementedError('No CUDA runtime is found. Please set FORCE_CUDA=1 or test it by running torch.cuda.is_available().')

在 .bashrc 文件中添加

export FORCE_CUDA="1"

然后运行 sh make.sh 后出现

No CUDA runtime is found, using CUDA_HOME='/usr/local/cuda-11.3' running build running build_py running build_ext building 'MultiScaleDeformableAttention' extension Traceback (most recent call last): File "setup.py", line 69, in <module> setup( File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/setuptools/__init__.py", line 103, in setup return distutils.core.setup(**attrs) File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 185, in setup return run_commands(dist) File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 201, in run_commands dist.run_commands() File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands self.run_command(cmd) File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/setuptools/dist.py", line 989, in run_command super().run_command(command) File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/setuptools/_distutils/command/build.py", line 131, in run self.run_command(cmd_name) File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command self.distribution.run_command(command) File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/setuptools/dist.py", line 989, in run_command super().run_command(command) File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 88, in run _build_ext.run(self) File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run self.build_extensions() File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 709, in build_extensions build_ext.build_extensions(self) File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions self._build_extensions_serial() File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial self.build_extension(ext) File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 249, in build_extension _build_ext.build_extension(self, ext) File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/Cython/Distutils/build_ext.py", line 135, in build_extension super(build_ext, self).build_extension(ext) File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 548, in build_extension objects = self.compiler.compile( File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 525, in unix_wrap_ninja_compile cuda_post_cflags = unix_cuda_flags(cuda_post_cflags) File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 424, in unix_cuda_flags cflags + _get_cuda_arch_flags(cflags)) File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1562, in _get_cuda_arch_flags arch_list[-1] += '+PTX' IndexError: list index out of range

检查CUDA是否可用:你可以在终端中运行以下Python命令来测试CUDA在你的系统上是否可用:

import torch print(torch.cuda.is_available())

这将使用PyTorch来检查CUDA是否可用。如果返回

True,表示CUDA已在你的Python环境中安装并可用。如果返回

False,则CUDA可能未正确安装。

换了一个安装渠道:

# CUDA 11.3 pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113

安装成功了,那啥也显示的ture

2、运行时发现PIL库有问题

conda install pillow

解决了

3、训练时报错

AttributeError: module 'numpy' has no attribute 'typeDict'

解决:降低numpy版本到1.21后出现问题

ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject

解决:numpy版本升高到1.22后出现错误:

ImportError: numpy.core.multiarray failed to import
conda install numpy==1.23

4、上一个问题解决后

ImportError: /home/abc/liyan/detectron2-main/detectron2/_C.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZNK2at6Tensor7reshapeEN3c108ArrayRefIlEE

解决:在detactron2-main文件夹下打开终端,进入虚拟环境,删除build文件,重新安装

rm -r build pip install -e .

5、训练时报错

FileNotFoundError: [Errno 2] No such file or directory: 'datasets/ADEChallengeData2016/ade20k_instance_train.json'

原因是数据集路径不对,修改 Mask2Former-main/mask2former/data/datasets 路径下的py文件中的路径,改成绝对路径问题解决

6、上一个问题解决后出现新问题

File "/home/abc/anaconda3/envs/mask2former/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 240, in __init__ assert prefetch_factor > 0 TypeError: '>' not supported between instances of 'NoneType' and 'int'

原因:None 和 int 不能做大小比较,通过print出prefetch_factor的值发现是None,有人说是detectron2安装和torch版本之间的错误,在detectron2的github上有人提问这个问题,他们的解决方法是安装 pytorch 2.1.0 ,但是由于我的cuda版本太低,装不了这么高版本的pytorch,然后我在detectron2-main文件夹中寻找prefetch_factor,发现/detectron2-main/detectron2/data文件夹下的build.py文件中将prefetch_factor设置成了None,于是我把prefetch_factor的值改为2,再次进行训练,这个问题消失,但是消失不代表解决,至于真的解决没有,之后有待考证。

7、上个问题解决后,出现新问题:

dim_t = self.temperature ** (2 * (dim_t // 2) / self.num_pos_feats) Could not load library libcudnn_cnn_train.so.8. Error: /home/abc/anaconda3/envs/mask2former/bin/../lib/libcudnn_ops_train.so.8: undefined symbol: _Z20traceback_iretf_implPKcRKN5cudnn16InternalStatus_tEb, version libcudnn_ops_infer.so.8 Please make sure libcudnn_cnn_train.so.8 is in your library path! 已放弃 (核心已转储)

重新建立软连接

在文件中搜索libcudnn_cnn_train.so.8结果发现在两个路径中存在,一个是anaconda虚拟环境中,一个是/usr/,然后发现,在anaconda中链接的是8.9.1,在usr中链接的是8.2.0,本机中cudnn的版本是8.2.0,所以我觉得,在anaconda环境嗯中的链接应该是链接到8.2.0版本,这两个链接修改之后不报错了,不报错不代表没有错,后续出现问题在解决。

8、

ERROR [11/03 14:48:57 d2.engine.train_loop]: Exception during training: Traceback (most recent call last): File "/home/abc/.local/lib/python3.8/site-packages/tensorboard/compat/__init__.py", line 47, in tf from tensorboard.compat import notf # pylint: disable=g-import-not-at-top ImportError: cannot import name 'notf' from 'tensorboard.compat' (/home/abc/.local/lib/python3.8/site-packages/tensorboard/compat/__init__.py)

这个错误后面还有一个别的错误,应该是缺了一个什么库,安装好了之后,这个错也消失了,所以具体解决方法不详

9、

File "/home/abc/.local/lib/python3.8/site-packages/scipy/optimize/_hungarian.py", line 93, in linear_sum_assignment raise ValueError("matrix contains invalid numeric entries") ValueError: matrix contains invalid numeric entries

待更新

相关文章:

ubuntu20.04 conda环境配置Mask2former记录

建议先看完再按照步骤安装 代码地址&#xff1a;GitHub - facebookresearch/Mask2Former: Code release for "Masked-attention Mask Transformer for Universal Image Segmentation" 一、配置环境 1、创建虚拟环境 conda create -n mask2former python3.8conda …...

Git更新远程分支

当本地仓库无法找到新创建的远程分支时使用。 git fetch 是 Git 中的一个命令&#xff0c;用于从远程仓库获取最新的更改。 git fetch 会从指定的远程仓库中获取所有分支的最新提交&#xff0c;并将这些提交存储在本地的远程分支中。但是&#xff0c;这些更改并不会自动合并到…...

2023年软件工程师工作总结范文

各位领导&#xff1a; 你们好&#xff01;时光飞逝&#xff0c;光阴似箭&#xff0c;转眼间又到了一年的年末。2023年又是一个不平凡的年&#xff0c;今年是国家十四个五年计划的第三年&#xff0c;是全面贯彻党的二十大精神的开局之年。中国XX集团作为中国XX行业中最大的企…...

STM32实战之深入理解I²C通信协议

目录 IC的物理层 IC的协议层 IC特点 IC 总线时序图 软件模拟IC时序分享 软件模拟IIC驱动AT24C02分享 例程简介 例程分享 STM32的IC外设 IIC&#xff08;Inter-Integrated Circuit&#xff09;&#xff0c;也称为IC或TWI&#xff08;Two-Wire Interface&#xff09;&am…...

如何区分ChatGPT 3.5与ChatGPT 4:洞悉智能对话的新时代

如何区分ChatGPT 3.5与ChatGPT 4&#xff1a;洞悉智能对话的新时代 随着人工智能技术的快速发展&#xff0c;OpenAI持续推出更加强大和精准的模型&#xff0c;以改善和扩展用户体验。在聊天机器人领域&#xff0c;特别是OpenAI的ChatGPT系列&#xff0c;每一次迭代都带来了显著…...

blender scripting 编写

blender scripting 编写 一、查看ui按钮对应的代码二、查看或修改对象名称三、案例&#xff1a;渲染多张图片并导出对应的相机参数 一、查看ui按钮对应的代码 二、查看或修改对象名称 三、案例&#xff1a;渲染多张图片并导出对应的相机参数 注&#xff1a;通过ui交互都设置好…...

使用 Elasticsearch 检测抄袭 (二)

我在在之前的文章 “使用 Elasticsearch 检测抄袭 &#xff08;一&#xff09;” 介绍了如何检文章抄袭。这个在许多的实际使用中非常有意义。我在 CSDN 上的文章也经常被人引用或者抄袭。有的人甚至也不用指明出处。这对文章的作者来说是很不公平的。文章介绍的内容针对很多的…...

WPF DataGrid

文章目录 SelectionModeHeaderVisibilityBorderBrush SelectionMode DataGrid 控件的 SelectionMode 属性定义了用户可以如何选择 DataGrid 中的行。它是一个枚举类型的属性&#xff0c;有以下几个选项&#xff1a; Single&#xff08;默认值&#xff09;&#xff1a;只能选择…...

【cesium-5】鼠标交互与数据查询

scene.pick返回的是包含给定窗口位置基元的对象 scene.drillpack返回的是给定窗口位置所有对象的列表 Globe.pick返回的是给光线和地形的交点 Cesium.ScreenSpaceEventType.MIDDLE_CLICK 鼠标中间点击事件 Cesium.ScreenSpaceEventType.MOUSE_MOVE 鼠标移入事件 Cesium.ScreenS…...

Xcode 编译速度慢是什么原因?如何提高编译速度?

作为一个开发者&#xff0c;我们都希望能够高效地开发应用程序&#xff0c;而编译速度是影响开发效率的重要因素之一。然而&#xff0c;有时候我们会发现在使用 Xcode 进行开发时&#xff0c;译速度非常慢&#xff0c;这给我们带来了不少困扰。那么&#xff0c;为什么 Xcode 的…...

Best Arm Identification in Batched Multi-armed Bandit Problems

Q: 这篇论文试图解决什么问题&#xff1f; A: 这篇论文试图解决在批量多臂老虎机问题中进行最佳臂识别&#xff08;BAI&#xff09;的挑战&#xff0c;其中必须成批地对臂进行抽样&#xff0c;因为代理等待反馈的时间有限。这种场景出现在许多现实世界的应用中&#xff0c;例如…...

Unity编辑器紫色

紫色原因是因为编辑器内跑了其他平台的shader兼容性导致的&#xff0c;需要动态的去修改shader&#xff0c;主要用到Unity的api : Shader.Find(shaderName); 具体的工具代码如下&#xff1a; using System.Collections; using System.Collections.Generic; using UnityEngine…...

冒泡排序(C语言)

void BubbleSort(int arr[], int len) {int i, j, temp;for (i 0; i < len; i){for (j len - 1; j > i; j--){if (arr[j] > arr[j 1]){temp arr[j];arr[j] arr[j 1];arr[j 1] temp;}}} } 优化&#xff1a; 设置标志位flag&#xff0c;如果发生了交换flag设置…...

Unity中Shader观察空间推导(在Shader中实现)

文章目录 前言一、观察空间矩阵推导1、求观察空间基向量2、求观察空间的基向量在世界空间中的矩阵 的 逆矩阵2、求平移变换矩阵3、相乘得出 观察空间转化矩阵4、得到顶点的世界空间坐标&#xff0c;然后转化到观察空间5、把观察空间坐标转化为齐次裁剪坐标输出到屏幕 二、最终效…...

Hive04_DDL操作

Hive DDL操作 1 DDL 数据定义 1.1 创建数据库 CREATE DATABASE [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_nameproperty_value, ...)];[IF NOT EXISTS] &#xff1a;判断是否存在 [COMMENT database_c…...

odoo17核心概念view4——view.js

这是view系列的第四篇文章&#xff0c;专门介绍View组件。 作为一个Component&#xff0c;它总共包含js、css、xml三个标准文件&#xff0c;当然最重要的是view.js 首先在setup函数中对传入的参数props做了各种校验&#xff0c;然后扩展了subenv useSubEnv({keepLast: new Kee…...

Centos7 openSSL

阅读时长&#xff1a;10分钟 本文内容&#xff1a; 在阿里云Centos7上部署python3.10.6项目时遇到openSSL协议不支持&#xff0c;导致无法下载第三方包 本文目的&#xff1a; 通过手动编译&#xff0c;升级openssl版本centos7 重编译 python3.10.6github下载缓慢解决镜像源记录…...

Web 安全之文件下载漏洞详解

目录 引言 文件下载漏洞原理 文件下载漏洞的危害 文件下载漏洞类型 文件下载漏洞的利用方法 文件下载漏洞示例 文件下载漏洞的防护措施 漏洞检测与测试 小结 引言 在数字化时代&#xff0c;文件下载是网络应用程序的重要的功能之一&#xff0c;用户可以通过这一功能获…...

搬运机器人RFID传感器CNS-RFID-01|1S的RS485(MODBUS|HS协议)通讯连接方法

搬运机器人RFID传感器CNS-RFID-01|1S支持RS485通信&#xff0c;可支持RS485&#xff08;MODBUS RTU&#xff09;协议、RS485-HS协议&#xff0c;广泛应用于物流仓储&#xff0c;立库 AGV|无人叉车|搬送机器人等领域&#xff0c;常用定位、驻车等&#xff0c;本篇重点介绍CNS-RF…...

使用ZMQ.proxy实现ZMQ PUB消息转发

MQ.proxy 是 ZeroMQ 库中的一个功能&#xff0c;用于创建一个简单的代理服务器。它可以将消息从一个套接字传递到另一个套接字&#xff0c;实现消息的转发和路由。 要使用 ZMQ.proxy&#xff0c;需要按照以下步骤进行操作&#xff1a; 创建两个 ZMQ.Socket 对象&#xff1a;一个…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...

若依登录用户名和密码加密

/*** 获取公钥&#xff1a;前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...

TJCTF 2025

还以为是天津的。这个比较容易&#xff0c;虽然绕了点弯&#xff0c;可还是把CP AK了&#xff0c;不过我会的别人也会&#xff0c;还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...