[LC] 66. Plus One

本文介绍了一种针对数组表示的非负整数加一的算法实现,通过遍历数组并进行适当的进位处理,实现了对给定数字的加一操作。文章提供了两种简洁高效的实现方法,并探讨了如何将该思路应用于加任意整数的情况。

一、问题描述

Given a non-negative integer represented as a non-empty array of digits, plus one to the integer.

You may assume the integer do not contain any leading zero, except the number 0 itself.

The digits are stored such that the most significant digit is at the head of the list.


二、我的思路

就像列竖式做加法一样,一个int add记录当前位是否要加,如果add位是0的话,就停止加法。

代码如下,在最高位进位的地方借鉴了discuss里的技巧:

class Solution {
    public int[] plusOne(int[] digits) {
        int add = 1;
        for(int i = digits.length - 1; i >= 0; i --){
            if(add != 1){
                break;
            }
            if(digits[i] == 9){
                digits[i] = 0;
                add = 1;
            }
            else{
                digits[i] += 1;
                add = 0;
            }
        }
        if (digits[0] == 0) {
            int[] res = new int[digits.length+1];
            res[0] = 1;
            return res;
        }
        return digits;
    }
}


三、淫奇技巧

1)

public int[] plusOne(int[] digits) {
    for (int i = digits.length - 1; i >=0; i--) {
        if (digits[i] != 9) {
            digits[i]++;
            break;
        } else {
            digits[i] = 0;
        }
    }
    if (digits[0] == 0) {
        int[] res = new int[digits.length+1];
        res[0] = 1;
        return res;
    }
    return digits;
}
很好的利用了题目假设。题目假设最高位不会是0,除非这个数就是0。

在做完加法以后,判断最高位是否进位了。如果最高位是0,说明之前这个数是9999...9, 加一以后后面的数字全部是0. 所以只需要在最高位补1即可。

另外相比我的加法计算方法,人家写的太简洁了!!

2)和上面的相同的思路,不过更绝~

public int[] plusOne(int[] digits) {
        
    int n = digits.length;
    for(int i=n-1; i>=0; i--) {
        if(digits[i] < 9) {
            digits[i]++;
            return digits;
        }
        
        digits[i] = 0;
    }
    
    int[] newNumber = new int [n+1];
    newNumber[0] = 1;
    
    return newNumber;
}

四、举一反三

如果不是加1而是加n呢?加法运算部分if判断条件也要改变一下。最后的淫奇技巧就不能用了。是否可以改变下条件继续神奇呢?如果动态调整的话怎么办呢?(to be continued。。。)


五、碎碎念

简单的题目,还是能看出很大的差距呀~继续加油!

(Navagent) lixing@DESKTOP-2PJK7EV:~/vlm/Grounded-Segment-Anything$ pip install --no-build-isolation -e GroundingDINO Obtaining file:///home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO Checking if build backend supports build_editable ... done Preparing editable metadata (pyproject.toml) ... done Requirement already satisfied: torch in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from groundingdino==0.1.0) (2.0.1) Requirement already satisfied: torchvision in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from groundingdino==0.1.0) (0.15.2) Requirement already satisfied: transformers in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from groundingdino==0.1.0) (4.33.2) Requirement already satisfied: addict in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from groundingdino==0.1.0) (2.4.0) Requirement already satisfied: yapf in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from groundingdino==0.1.0) (0.40.2) Requirement already satisfied: timm in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from groundingdino==0.1.0) (0.4.12) Requirement already satisfied: numpy in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from groundingdino==0.1.0) (1.24.1) Requirement already satisfied: opencv-python in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from groundingdino==0.1.0) (4.9.0.80) Requirement already satisfied: supervision in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from groundingdino==0.1.0) (0.18.0) Requirement already satisfied: pycocotools in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from groundingdino==0.1.0) (2.0.7) Requirement already satisfied: matplotlib>=2.1.0 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from pycocotools->groundingdino==0.1.0) (3.7.5) Requirement already satisfied: defusedxml<0.8.0,>=0.7.1 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from supervision->groundingdino==0.1.0) (0.7.1) Requirement already satisfied: opencv-python-headless>=4.5.5.64 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from supervision->groundingdino==0.1.0) (4.9.0.80) Requirement already satisfied: pyyaml>=5.3 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from supervision->groundingdino==0.1.0) (6.0.1) Requirement already satisfied: scipy==1.10.0 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from supervision->groundingdino==0.1.0) (1.10.0) Requirement already satisfied: filelock in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from torch->groundingdino==0.1.0) (3.9.0) Requirement already satisfied: typing-extensions in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from torch->groundingdino==0.1.0) (4.12.2) Requirement already satisfied: sympy in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from torch->groundingdino==0.1.0) (1.12) Requirement already satisfied: networkx in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from torch->groundingdino==0.1.0) (3.1) Requirement already satisfied: jinja2 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from torch->groundingdino==0.1.0) (3.1.2) Requirement already satisfied: requests in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from torchvision->groundingdino==0.1.0) (2.32.3) Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from torchvision->groundingdino==0.1.0) (10.2.0) Requirement already satisfied: huggingface-hub<1.0,>=0.15.1 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from transformers->groundingdino==0.1.0) (0.25.0) Requirement already satisfied: packaging>=20.0 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from transformers->groundingdino==0.1.0) (23.2) Requirement already satisfied: regex!=2019.12.17 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from transformers->groundingdino==0.1.0) (2023.12.25) Requirement already satisfied: tokenizers!=0.11.3,<0.14,>=0.11.1 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from transformers->groundingdino==0.1.0) (0.13.3) Requirement already satisfied: safetensors>=0.3.1 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from transformers->groundingdino==0.1.0) (0.4.5) Requirement already satisfied: tqdm>=4.27 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from transformers->groundingdino==0.1.0) (4.66.1) Requirement already satisfied: importlib-metadata>=6.6.0 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from yapf->groundingdino==0.1.0) (6.11.0) Requirement already satisfied: platformdirs>=3.5.1 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from yapf->groundingdino==0.1.0) (4.2.0) Requirement already satisfied: tomli>=2.0.1 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from yapf->groundingdino==0.1.0) (2.0.1) Requirement already satisfied: fsspec>=2023.5.0 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from huggingface-hub<1.0,>=0.15.1->transformers->groundingdino==0.1.0) (2024.2.0) Requirement already satisfied: zipp>=0.5 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from importlib-metadata>=6.6.0->yapf->groundingdino==0.1.0) (3.17.0) Requirement already satisfied: contourpy>=1.0.1 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from matplotlib>=2.1.0->pycocotools->groundingdino==0.1.0) (1.1.1) Requirement already satisfied: cycler>=0.10 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from matplotlib>=2.1.0->pycocotools->groundingdino==0.1.0) (0.12.1) Requirement already satisfied: fonttools>=4.22.0 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from matplotlib>=2.1.0->pycocotools->groundingdino==0.1.0) (4.49.0) Requirement already satisfied: kiwisolver>=1.0.1 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from matplotlib>=2.1.0->pycocotools->groundingdino==0.1.0) (1.4.5) Requirement already satisfied: pyparsing>=2.3.1 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from matplotlib>=2.1.0->pycocotools->groundingdino==0.1.0) (3.1.1) Requirement already satisfied: python-dateutil>=2.7 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from matplotlib>=2.1.0->pycocotools->groundingdino==0.1.0) (2.8.2) Requirement already satisfied: importlib-resources>=3.2.0 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from matplotlib>=2.1.0->pycocotools->groundingdino==0.1.0) (6.1.1) Requirement already satisfied: MarkupSafe>=2.0 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from jinja2->torch->groundingdino==0.1.0) (2.1.3) Requirement already satisfied: charset-normalizer<4,>=2 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from requests->torchvision->groundingdino==0.1.0) (2.1.1) Requirement already satisfied: idna<4,>=2.5 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from requests->torchvision->groundingdino==0.1.0) (3.4) Requirement already satisfied: urllib3<3,>=1.21.1 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from requests->torchvision->groundingdino==0.1.0) (1.26.13) Requirement already satisfied: certifi>=2017.4.17 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from requests->torchvision->groundingdino==0.1.0) (2022.12.7) Requirement already satisfied: mpmath>=0.19 in /home/lixing/.local/lib/python3.8/site-packages (from sympy->torch->groundingdino==0.1.0) (1.3.0) Requirement already satisfied: six>=1.5 in /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages (from python-dateutil>=2.7->matplotlib>=2.1.0->pycocotools->groundingdino==0.1.0) (1.16.0) Building wheels for collected packages: groundingdino Building editable for groundingdino (pyproject.toml) ... error error: subprocess-exited-with-error × Building editable for groundingdino (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [159 lines of output] Building wheel groundingdino-0.1.0 Compiling with CUDA running editable_wheel creating /tmp/pip-wheel-ndnjnp7s/.tmp-2tvureel/groundingdino.egg-info writing /tmp/pip-wheel-ndnjnp7s/.tmp-2tvureel/groundingdino.egg-info/PKG-INFO writing dependency_links to /tmp/pip-wheel-ndnjnp7s/.tmp-2tvureel/groundingdino.egg-info/dependency_links.txt writing requirements to /tmp/pip-wheel-ndnjnp7s/.tmp-2tvureel/groundingdino.egg-info/requires.txt writing top-level names to /tmp/pip-wheel-ndnjnp7s/.tmp-2tvureel/groundingdino.egg-info/top_level.txt writing manifest file '/tmp/pip-wheel-ndnjnp7s/.tmp-2tvureel/groundingdino.egg-info/SOURCES.txt' reading manifest file '/tmp/pip-wheel-ndnjnp7s/.tmp-2tvureel/groundingdino.egg-info/SOURCES.txt' adding license file 'LICENSE' writing manifest file '/tmp/pip-wheel-ndnjnp7s/.tmp-2tvureel/groundingdino.egg-info/SOURCES.txt' creating '/tmp/pip-wheel-ndnjnp7s/.tmp-2tvureel/groundingdino-0.1.0.dist-info' creating /tmp/pip-wheel-ndnjnp7s/.tmp-2tvureel/groundingdino-0.1.0.dist-info/WHEEL running build_py running build_ext building 'groundingdino._C' extension creating /tmp/tmp2bpn41b5.build-temp/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/utils/cpp_extension.py:398: UserWarning: There are no g++ version bounds defined for CUDA version 11.8 warnings.warn(f'There are no {compiler_name} version bounds defined for CUDA version {cuda_str_version}') Emitting ninja build file /tmp/tmp2bpn41b5.build-temp/build.ninja... Compiling objects... Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N) [1/4] /usr/local/cuda-11.8/bin/nvcc -DWITH_CUDA -I/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc -I/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include -I/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include/TH -I/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda-11.8/include -I/home/lixing/anaconda3/envs/Navagent/include/python3.8 -c -c /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/cuda_version.cu -o /tmp/tmp2bpn41b5.build-temp/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/cuda_version.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -DCUDA_HAS_FP16=1 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_89,code=compute_89 -gencode=arch=compute_89,code=sm_89 -std=c++17 [2/4] c++ -MMD -MF /tmp/tmp2bpn41b5.build-temp/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cpu.o.d -pthread -B /home/lixing/anaconda3/envs/Navagent/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/local/cuda-11.8/include -fPIC -DWITH_CUDA -I/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc -I/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include -I/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include/TH -I/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda-11.8/include -I/home/lixing/anaconda3/envs/Navagent/include/python3.8 -c -c /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cpu.cpp -o /tmp/tmp2bpn41b5.build-temp/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cpu.o -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++17 cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [3/4] /usr/local/cuda-11.8/bin/nvcc -DWITH_CUDA -I/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc -I/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include -I/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include/TH -I/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda-11.8/include -I/home/lixing/anaconda3/envs/Navagent/include/python3.8 -c -c /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cuda.cu -o /tmp/tmp2bpn41b5.build-temp/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cuda.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -DCUDA_HAS_FP16=1 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_89,code=compute_89 -gencode=arch=compute_89,code=sm_89 -std=c++17 /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include/c10/util/irange.h(54): warning #186-D: pointless comparison of unsigned integer with zero detected during: instantiation of "__nv_bool c10::detail::integer_iterator<I, one_sided, <unnamed>>::operator==(const c10::detail::integer_iterator<I, one_sided, <unnamed>> &) const [with I=size_t, one_sided=false, <unnamed>=0]" (61): here instantiation of "__nv_bool c10::detail::integer_iterator<I, one_sided, <unnamed>>::operator!=(const c10::detail::integer_iterator<I, one_sided, <unnamed>> &) const [with I=size_t, one_sided=false, <unnamed>=0]" /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include/c10/core/TensorImpl.h(77): here /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include/c10/util/irange.h(54): warning #186-D: pointless comparison of unsigned integer with zero detected during: instantiation of "__nv_bool c10::detail::integer_iterator<I, one_sided, <unnamed>>::operator==(const c10::detail::integer_iterator<I, one_sided, <unnamed>> &) const [with I=std::size_t, one_sided=true, <unnamed>=0]" (61): here instantiation of "__nv_bool c10::detail::integer_iterator<I, one_sided, <unnamed>>::operator!=(const c10::detail::integer_iterator<I, one_sided, <unnamed>> &) const [with I=std::size_t, one_sided=true, <unnamed>=0]" /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include/ATen/core/qualified_name.h(73): here /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_im2col_cuda.cuh(261): warning #177-D: variable "q_col" was declared but never referenced detected during instantiation of "void ms_deformable_im2col_cuda(cudaStream_t, const scalar_t *, const int64_t *, const int64_t *, const scalar_t *, const scalar_t *, int, int, int, int, int, int, int, scalar_t *) [with scalar_t=double]" /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cuda.cu(66): here /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_im2col_cuda.cuh(762): warning #177-D: variable "q_col" was declared but never referenced detected during instantiation of "void ms_deformable_col2im_cuda(cudaStream_t, const scalar_t *, const scalar_t *, const int64_t *, const int64_t *, const scalar_t *, const scalar_t *, int, int, int, int, int, int, int, scalar_t *, scalar_t *, scalar_t *) [with scalar_t=double]" /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cuda.cu(134): here /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_im2col_cuda.cuh(872): warning #177-D: variable "q_col" was declared but never referenced detected during instantiation of "void ms_deformable_col2im_cuda(cudaStream_t, const scalar_t *, const scalar_t *, const int64_t *, const int64_t *, const scalar_t *, const scalar_t *, int, int, int, int, int, int, int, scalar_t *, scalar_t *, scalar_t *) [with scalar_t=double]" /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cuda.cu(134): here /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_im2col_cuda.cuh(331): warning #177-D: variable "q_col" was declared but never referenced detected during instantiation of "void ms_deformable_col2im_cuda(cudaStream_t, const scalar_t *, const scalar_t *, const int64_t *, const int64_t *, const scalar_t *, const scalar_t *, int, int, int, int, int, int, int, scalar_t *, scalar_t *, scalar_t *) [with scalar_t=double]" /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cuda.cu(134): here /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_im2col_cuda.cuh(436): warning #177-D: variable "q_col" was declared but never referenced detected during instantiation of "void ms_deformable_col2im_cuda(cudaStream_t, const scalar_t *, const scalar_t *, const int64_t *, const int64_t *, const scalar_t *, const scalar_t *, int, int, int, int, int, int, int, scalar_t *, scalar_t *, scalar_t *) [with scalar_t=double]" /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cuda.cu(134): here /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_im2col_cuda.cuh(544): warning #177-D: variable "q_col" was declared but never referenced detected during instantiation of "void ms_deformable_col2im_cuda(cudaStream_t, const scalar_t *, const scalar_t *, const int64_t *, const int64_t *, const scalar_t *, const scalar_t *, int, int, int, int, int, int, int, scalar_t *, scalar_t *, scalar_t *) [with scalar_t=double]" /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cuda.cu(134): here /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_im2col_cuda.cuh(649): warning #177-D: variable "q_col" was declared but never referenced detected during instantiation of "void ms_deformable_col2im_cuda(cudaStream_t, const scalar_t *, const scalar_t *, const int64_t *, const int64_t *, const scalar_t *, const scalar_t *, int, int, int, int, int, int, int, scalar_t *, scalar_t *, scalar_t *) [with scalar_t=double]" /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cuda.cu(134): here [4/4] c++ -MMD -MF /tmp/tmp2bpn41b5.build-temp/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/vision.o.d -pthread -B /home/lixing/anaconda3/envs/Navagent/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/local/cuda-11.8/include -fPIC -DWITH_CUDA -I/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc -I/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include -I/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include/TH -I/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda-11.8/include -I/home/lixing/anaconda3/envs/Navagent/include/python3.8 -c -c /home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/vision.cpp -o /tmp/tmp2bpn41b5.build-temp/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/vision.o -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++17 cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ creating /tmp/tmp2bk460hh.build-lib/groundingdino g++ -pthread -B /home/lixing/anaconda3/envs/Navagent/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -pthread -shared -B /home/lixing/anaconda3/envs/Navagent/compiler_compat -L/home/lixing/anaconda3/envs/Navagent/lib -Wl,-rpath=/home/lixing/anaconda3/envs/Navagent/lib -Wl,--no-as-needed -Wl,--sysroot=/ /tmp/tmp2bpn41b5.build-temp/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cpu.o /tmp/tmp2bpn41b5.build-temp/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cuda.o /tmp/tmp2bpn41b5.build-temp/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/cuda_version.o /tmp/tmp2bpn41b5.build-temp/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/vision.o -L/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/lib -L/usr/local/cuda-11.8/lib64 -lc10 -ltorch -ltorch_cpu -ltorch_python -lcudart -lc10_cuda -ltorch_cuda -o /tmp/tmp2bk460hh.build-lib/groundingdino/_C.cpython-38-x86_64-linux-gnu.so /home/lixing/anaconda3/envs/Navagent/compiler_compat/ld: cannot find -lcudart: No such file or directory collect2: error: ld returned 1 exit status Traceback (most recent call last): File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/_distutils/spawn.py", line 70, in spawn subprocess.check_call(cmd, env=_inject_macos_ver(env)) File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/subprocess.py", line 364, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['/usr/bin/g++', '-pthread', '-B', '/home/lixing/anaconda3/envs/Navagent/compiler_compat', '-Wl,--sysroot=/', '-Wsign-compare', '-DNDEBUG', '-g', '-fwrapv', '-O3', '-Wall', '-Wstrict-prototypes', '-pthread', '-shared', '-B', '/home/lixing/anaconda3/envs/Navagent/compiler_compat', '-L/home/lixing/anaconda3/envs/Navagent/lib', '-Wl,-rpath=/home/lixing/anaconda3/envs/Navagent/lib', '-Wl,--no-as-needed', '-Wl,--sysroot=/', '/tmp/tmp2bpn41b5.build-temp/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cpu.o', '/tmp/tmp2bpn41b5.build-temp/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cuda.o', '/tmp/tmp2bpn41b5.build-temp/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/cuda_version.o', '/tmp/tmp2bpn41b5.build-temp/home/lixing/vlm/Grounded-Segment-Anything/GroundingDINO/groundingdino/models/GroundingDINO/csrc/vision.o', '-L/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/lib', '-L/usr/local/cuda-11.8/lib64', '-lc10', '-ltorch', '-ltorch_cpu', '-ltorch_python', '-lcudart', '-lc10_cuda', '-ltorch_cuda', '-o', '/tmp/tmp2bk460hh.build-lib/groundingdino/_C.cpython-38-x86_64-linux-gnu.so']' returned non-zero exit status 1. The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/_distutils/unixccompiler.py", line 287, in link self.spawn(linker + ld_args) File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/_distutils/ccompiler.py", line 1045, in spawn spawn(cmd, dry_run=self.dry_run, **kwargs) File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/_distutils/spawn.py", line 76, in spawn raise DistutilsExecError( distutils.errors.DistutilsExecError: command '/usr/bin/g++' failed with exit code 1 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/command/editable_wheel.py", line 138, in run self._create_wheel_file(bdist_wheel) File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/command/editable_wheel.py", line 341, in _create_wheel_file files, mapping = self._run_build_commands(dist_name, unpacked, lib, tmp) File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/command/editable_wheel.py", line 264, in _run_build_commands self._run_build_subcommands() File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/command/editable_wheel.py", line 291, in _run_build_subcommands self.run_command(name) File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command self.distribution.run_command(command) File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/dist.py", line 950, in run_command super().run_command(command) File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 973, in run_command cmd_obj.run() File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 98, in run _build_ext.run(self) File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 359, in run self.build_extensions() File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 843, in build_extensions build_ext.build_extensions(self) File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 476, in build_extensions self._build_extensions_serial() File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 502, in _build_extensions_serial self.build_extension(ext) File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 263, in build_extension _build_ext.build_extension(self, ext) File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 581, in build_extension self.compiler.link_shared_object( File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/_distutils/ccompiler.py", line 758, in link_shared_object self.link( File "/home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/_distutils/unixccompiler.py", line 289, in link raise LinkError(msg) distutils.errors.LinkError: command '/usr/bin/g++' failed with exit code 1 /home/lixing/anaconda3/envs/Navagent/lib/python3.8/site-packages/setuptools/_distutils/dist.py:973: _DebuggingTips: Problem in editable installation. !! ******************************************************************************** An error happened while installing `groundingdino` in editable mode. The following steps are recommended to help debug this problem: - Try to install the project normally, without using the editable mode. Does the error still persist? (If it does, try fixing the problem before attempting the editable mode). - If you are using binary extensions, make sure you have all OS-level dependencies installed (e.g. compilers, toolchains, binary libraries, ...). - Try the latest version of setuptools (maybe the error was already fixed). - If you (or your project dependencies) are using any setuptools extension or customization, make sure they support the editable mode. After following the steps above, if the problem still persists and you think this is related to how setuptools handles editable installations, please submit a reproducible example (see https://stackoverflow.com/help/minimal-reproducible-example) to: https://github.com/pypa/setuptools/issues See https://setuptools.pypa.io/en/latest/userguide/development_mode.html for details. ******************************************************************************** !! cmd_obj.run() error: command '/usr/bin/g++' failed with exit code 1 [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building editable for groundingdino Failed to build groundingdino ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (groundingdino) (Navagent) lixing@DESKTOP-2PJK7EV:~/vlm/Grounded-Segment-Anything$
09-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值