CutPaste Custom Trainning (1) - GPU Setting

2025. 7. 9. 07:00·전공은 살려야지/머신러닝

CutPaste

CutPaste Model은 이미지 기반 이상 탐지(Anomaly Detection)를 위한 Self-Supervised Learning 프레임워크이다. 이 모델은 정상(Normal) 데이터만 활용해 학습하고, 실제 결함(Anomaly) 데이터를 사용하지 않고 미지의 이상 패턴을 효과적으로 탐지할 수 있도록 설계되었다.

https://arxiv.org/pdf/2104.04015


Github CutPaste Download ZIP

먼저, CutPaste .ZIP을 다운 받는다. 아래의 링크를 통해 다운 받을 수 있다.

https://github.com/LilitYolyan/CutPaste#

Download ZIP을 통해 다운받아준다.

https://github.com/LilitYolyan/CutPaste

 

GitHub - LilitYolyan/CutPaste: Unofficial implementation of Google "CutPaste: Self-Supervised Learning for Anomaly Detection and

Unofficial implementation of Google "CutPaste: Self-Supervised Learning for Anomaly Detection and Localization" in PyTorch - LilitYolyan/CutPaste

github.com

 

참고로, 학습하는데 1 epoch = 약 35 sec 걸린다.

 

다운받은 .zip 파일을 Visual Studio Code를 통해 열어준다.

 

모델 학습 환경을 만들어 주기 위해 Anaconda3를 설치한다.

 

 


GPU Setting

딥러닝 학습을 진행하기 위해 GPU 설치가 필수적인데, windows PC기준 GPU가 NVIDIA라면 cmd 또는 명령 프롬프트를 통해 아래의 방법을 통해 확인해 볼 수 있다.

nvidia-smi

 

 

해당 PC는 GPU가 1개 내장되어있으며, GPU = 0, NVIDIA GeForce RTX 4070 Ti이다.

 

CutPaste가 정상적으로 돌아가기 위해 Anaconda3 가상환경을 설치한다.

conda create -n cutpaste python=3.8   # 가상환경 생성
conda activate cutpaste   # 가상환경 활성화

 

다음으로 내장된 GPU를 가상환경에서 작동시키기 위해 CUDA와 cuDNN을 설치한다.

해당 버전은 GPU 사양에 맞게 설치하면 된다.

 

windows 환경에서 GPU를 사용해야하며, PyTorch 버전의 이유로 CUDA11.3, cuDNN8.2.1 버전을 설치하였다.

conda install nvidia/label/cuda-11.3.1::cuda-toolkit
conda install nvidia/label/cudnn-8.2.1::cudnn

 

다른 버전의 설치는 아래에서 확인할 수 있다.

 

https://anaconda.org/nvidia/cuda

 

Cuda | Anaconda.org

2025 Python Packaging Survey is now live! Take the survey now

anaconda.org

 

https://developer.nvidia.com/rdp/cudnn-archive

 

cuDNN Archive

Download releases from the GPU-accelerated primitive library for deep neural networks.

developer.nvidia.com

 

CutPaste에서 사용하는 PyTorch 설치를 위해 해당 버전을 설치한다.

conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge

 

다른 설치 버전은 아래에서 확인할 수 있다.

https://pytorch.org/get-started/previous-versions/

 

Previous PyTorch Versions

Access and install previous PyTorch versions, including binaries and instructions for all platforms.

pytorch.org

 

GPU test도 잊지 않고 진행한다. 이때, Python으로 진행한다.

import torch
print("CUDA 사용 가능 여부: ", torch.cuda.is_available)
print("GPU 개수: ", torch.cuda.device_count())
for i in range(torch.cuda.device_count()):
	print(f"GPU {i} 이름: ", torch.cuda.get_device_name(i))

 

 


CutPaste requirements.txt

정상적으로 CutPaste를 동작시키기 위해 필수 라이브러리를 설치한다.

아래의 버전을 보면 현재 사용되는 버전과 다르게 pip installer의 버전을 낮춰주게 되는데, 이는 PyTorch 버전이 1.X 등 낮은 버전이 사용되어 설치하는 모듈의 버전들이 낮기 때문에 기존의 pip installer version이 25.X를 downgrade 진행한다.

python.exe -m pip install pip==23.3.1

 

라이브러리를 설치하기 전, 프로젝트가 있는 해당 폴더로 이동한다.

해당 프로젝트 시 D 드라이브에 모델을 다운받아 D 드라이브의 project 폴더로 경로를 변경하여 진행하였다.

d:
cd project folder

 

이후 해당 CutPaste 모델 폴더에 들어있는 requirements에 맞게 설치를 진행한다.

pip install -r requirements.txt

 

다운받은 CutPaste 폴더의 requirements.txt에는 필수 다운로드 라이브러리의 버전을 설명해주고 있다.

이후 테스트와 version 등의 문제로 아래의 모듈을 추가적으로 설치하였다.

pip install setuptools==58.0.4
pip install opencv-python==4.5.5.64 # 테스트 시 추가

 

위와 같은 버전으로 설정하였다. 혹시 몰라 아래의 버전도 참조한다.

(cutpaste) PS C:\Users\Administrator> conda list
# packages in environment at C:\Users\Administrator\anaconda3\envs\cutpaste:
#
# Name                    Version                   Build  Channel
absl-py                   2.3.0                    pypi_0    pypi
aiohappyeyeballs          2.4.4                    pypi_0    pypi
aiohttp                   3.10.11                  pypi_0    pypi
aiosignal                 1.3.1                    pypi_0    pypi
async-timeout             5.0.1                    pypi_0    pypi
attrs                     25.3.0                   pypi_0    pypi
blas                      2.132                       mkl    conda-forge
blas-devel                3.9.0           32_hfb1a452_mkl    conda-forge
bzip2                     1.0.8                h2bbff1b_6
ca-certificates           2025.6.15            h4c7d964_0    conda-forge
cachetools                5.5.2                    pypi_0    pypi
cccl                      2.3.2                h47f531a_0
certifi                   2025.6.15                pypi_0    pypi
charset-normalizer        3.4.2                    pypi_0    pypi
colorama                  0.4.6                    pypi_0    pypi
cuda-command-line-tools   11.3.1               h46d18f5_0    nvidia/label/cuda-11.3.1
cuda-compiler             11.3.1               h46d18f5_0    nvidia/label/cuda-11.3.1
cuda-cudart               11.3.109             h90d3b27_0    nvidia/label/cuda-11.3.1
cuda-cuobjdump            11.3.122             hbfb3ce2_0    nvidia/label/cuda-11.3.1
cuda-cupti                11.3.111             h1d2d2a3_0    nvidia/label/cuda-11.3.1
cuda-cuxxfilt             11.3.122             hc6e7a92_0    nvidia/label/cuda-11.3.1
cuda-libraries            11.3.1               h46d18f5_0    nvidia/label/cuda-11.3.1
cuda-libraries-dev        11.3.1               h46d18f5_0    nvidia/label/cuda-11.3.1
cuda-memcheck             11.3.109             h23f69e8_0    nvidia/label/cuda-11.3.1
cuda-nvcc                 11.3.122             h790fb98_0    nvidia/label/cuda-11.3.1
cuda-nvdisasm             11.3.122             h2cc5393_0    nvidia/label/cuda-11.3.1
cuda-nvml-dev             11.3.58              hbc9c638_0    nvidia/label/cuda-11.3.1
cuda-nvprof               11.3.111             h418b846_0    nvidia/label/cuda-11.3.1
cuda-nvprune              11.3.122             h8d04b39_0    nvidia/label/cuda-11.3.1
cuda-nvrtc                11.3.122             h4fd7f55_0    nvidia/label/cuda-11.3.1
cuda-nvtx                 11.3.109             hc90bad4_0    nvidia/label/cuda-11.3.1
cuda-nvvp                 11.3.111             h50c1cf3_0    nvidia/label/cuda-11.3.1
cuda-samples              11.3.58              h9a5194a_0    nvidia/label/cuda-11.3.1
cuda-sanitizer-api        11.3.111             hb9b8c8e_0    nvidia/label/cuda-11.3.1
cuda-thrust               11.3.109             hfc8979d_0    nvidia/label/cuda-11.3.1
cuda-toolkit              11.3.1               h46d18f5_0    nvidia/label/cuda-11.3.1
cuda-tools                11.3.1               h46d18f5_0    nvidia/label/cuda-11.3.1
cuda-version              11.3                 hbc958af_3    conda-forge
cudatoolkit               11.3.1              hf2f0253_13    conda-forge
cycler                    0.12.1                   pypi_0    pypi
expat                     2.7.1                h8ddb27b_0
fontconfig                2.14.1               hb33846d_3
fonttools                 4.57.0                   pypi_0    pypi
freetype                  2.13.3               h0620614_0
frozenlist                1.5.0                    pypi_0    pypi
fsspec                    2025.3.0                 pypi_0    pypi
future                    1.0.0                    pypi_0    pypi
google-auth               2.40.3                   pypi_0    pypi
google-auth-oauthlib      1.0.0                    pypi_0    pypi
grpcio                    1.70.0                   pypi_0    pypi
idna                      3.10                     pypi_0    pypi
importlib-metadata        8.5.0                    pypi_0    pypi
intel-openmp              2024.2.1          h57928b3_1083    conda-forge
jbig                      2.1               h8d14728_2003    conda-forge
joblib                    1.4.2                    pypi_0    pypi
jpeg                      9e                   hcfcfb64_3    conda-forge
khronos-opencl-icd-loader 2024.05.08           h8cc25b3_0
kiwisolver                1.4.7                    pypi_0    pypi
krb5                      1.20.1               h5b6d351_0
lcms2                     2.12                 h2a16943_0    conda-forge
lerc                      2.2.1                h0e60522_0    conda-forge
libblas                   3.9.0           32_h641d27c_mkl    conda-forge
libcblas                  3.9.0           32_h5e41251_mkl    conda-forge
libcublas                 11.5.1.109           h534c3b9_0    nvidia/label/cuda-11.3.1
libcufft                  10.4.2.109           h5b78ae5_0    nvidia/label/cuda-11.3.1
libcurand                 10.2.4.109           h8bccdc1_0    nvidia/label/cuda-11.3.1
libcusolver               11.1.2.109           hbc28524_0    nvidia/label/cuda-11.3.1
libcusparse               11.6.0.109           h4f1f2d5_0    nvidia/label/cuda-11.3.1
libdeflate                1.7                  h8ffe710_5    conda-forge
libffi                    3.4.4                hd77b12b_1
libglib                   2.84.2               h405b238_0
libhwloc                  2.11.2          default_ha69328c_1001    conda-forge
libiconv                  1.16                 h2bbff1b_3
liblapack                 3.9.0           32_h1aa476e_mkl    conda-forge
liblapacke                3.9.0           32_h845c4fa_mkl    conda-forge
liblzma                   5.8.1                h2466b09_2    conda-forge
liblzma-devel             5.8.1                h2466b09_2    conda-forge
libnpp                    11.3.3.95            h0a60a38_0    nvidia/label/cuda-11.3.1
libnvjpeg                 11.5.0.109           ha56d775_0    nvidia/label/cuda-11.3.1
libpng                    1.6.39               h8cc25b3_0
libtiff                   4.3.0                h0c97f57_1    conda-forge
libuv                     1.51.0               h2466b09_0    conda-forge
libwinpthread             12.0.0.r4.gg4f2fc60ca      h57928b3_9    conda-forge
libxml2                   2.13.8               h866ff63_0
lightning-utilities       0.11.9                   pypi_0    pypi
lz4-c                     1.9.3                h8ffe710_1    conda-forge
markdown                  3.7                      pypi_0    pypi
markupsafe                2.1.5                    pypi_0    pypi
matplotlib                3.5.1                    pypi_0    pypi
mkl                       2024.2.2            h66d3029_15    conda-forge
mkl-devel                 2024.2.2            h57928b3_15    conda-forge
mkl-include               2024.2.2            h66d3029_15    conda-forge
multidict                 6.1.0                    pypi_0    pypi
numpy                     1.21.2                   pypi_0    pypi
oauthlib                  3.3.1                    pypi_0    pypi
olefile                   0.47               pyhd8ed1ab_0    conda-forge
opencv-python             4.5.5.64                 pypi_0    pypi
openjpeg                  2.4.0                hb211442_1    conda-forge
openssl                   3.5.1                h725018a_0    conda-forge
packaging                 25.0                     pypi_0    pypi
pcre2                     10.42                h0ff8eda_1
pillow                    8.4.0                    pypi_0    pypi
pip                       23.3.1                   pypi_0    pypi
propcache                 0.2.0                    pypi_0    pypi
protobuf                  3.20.3                   pypi_0    pypi
pyasn1                    0.6.1                    pypi_0    pypi
pyasn1-modules            0.4.2                    pypi_0    pypi
pydeprecate               0.3.1                    pypi_0    pypi
pyparsing                 3.1.4                    pypi_0    pypi
python                    3.8.20               h8205438_0
python-dateutil           2.9.0.post0              pypi_0    pypi
python_abi                3.8                      2_cp38    conda-forge
pytorch                   1.10.1          py3.8_cuda11.3_cudnn8_0    pytorch
pytorch-lightning         1.5.7                    pypi_0    pypi
pytorch-mutex             1.0                        cuda    pytorch
pyyaml                    6.0.2                    pypi_0    pypi
requests                  2.32.4                   pypi_0    pypi
requests-oauthlib         2.0.0                    pypi_0    pypi
rsa                       4.9.1                    pypi_0    pypi
scikit-learn              1.0.2                    pypi_0    pypi
scipy                     1.10.1                   pypi_0    pypi
setuptools                58.0.4                   pypi_0    pypi
six                       1.17.0                   pypi_0    pypi
sqlite                    3.45.3               h2bbff1b_0
tbb                       2021.13.0            h62715c5_1    conda-forge
tensorboard               2.14.0                   pypi_0    pypi
tensorboard-data-server   0.7.2                    pypi_0    pypi
threadpoolctl             3.5.0                    pypi_0    pypi
tk                        8.6.13               h2c6b04d_2    conda-forge
torchaudio                0.10.1               py38_cu113    pytorch
torchmetrics              1.5.2                    pypi_0    pypi
torchvision               0.11.2               py38_cu113    pytorch
tqdm                      4.62.3                   pypi_0    pypi
typing_extensions         4.12.2             pyha770c72_0    conda-forge
ucrt                      10.0.22621.0         h57928b3_1    conda-forge
urllib3                   2.2.3                    pypi_0    pypi
vc                        14.42                haa95532_5
vc14_runtime              14.44.35208         h818238b_26    conda-forge
vs2015_runtime            14.44.35208         h38c0c73_26    conda-forge
vs2017_win-64             19.16.27032.1        hb4161e2_3
vswhere                   2.8.4                haa95532_0
werkzeug                  3.0.6                    pypi_0    pypi
wheel                     0.44.0           py38haa95532_0
xz                        5.8.1                h208afaa_2    conda-forge
xz-tools                  5.8.1                h2466b09_2    conda-forge
yarl                      1.15.2                   pypi_0    pypi
zipp                      3.20.2                   pypi_0    pypi
zlib                      1.2.13               h8cc25b3_1
zstd                      1.5.0                h6255e5f_0    conda-forge

 

보통 pip install requirements.txt로 환경설정을 진행하지만, 버전의 따른 ERROR이 발생한다면 위와 같이 각각 설치를 진행하면 된다.

 

환경설정을 마치도록 한다.

 

 


참고

https://arxiv.org/abs/2104.04015

 

CutPaste: Self-Supervised Learning for Anomaly Detection and Localization

We aim at constructing a high performance model for defect detection that detects unknown anomalous patterns of an image without anomalous data. To this end, we propose a two-stage framework for building anomaly detectors using normal training data only. W

arxiv.org

 

https://github.com/LilitYolyan/CutPaste

 

GitHub - LilitYolyan/CutPaste: Unofficial implementation of Google "CutPaste: Self-Supervised Learning for Anomaly Detection and

Unofficial implementation of Google "CutPaste: Self-Supervised Learning for Anomaly Detection and Localization" in PyTorch - LilitYolyan/CutPaste

github.com

 

'전공은 살려야지 > 머신러닝' 카테고리의 다른 글

SRGAN Custom Training (3) - Custom Trainning  (5) 2025.07.07
SRGAN Custom Training (2) - Dataset Custom Setting  (2) 2025.07.04
SRGAN Custom Training (1) - GPU Setting  (3) 2025.06.27
'전공은 살려야지/머신러닝' 카테고리의 다른 글
  • SRGAN Custom Training (3) - Custom Trainning
  • SRGAN Custom Training (2) - Dataset Custom Setting
  • SRGAN Custom Training (1) - GPU Setting
pxrksuhn
pxrksuhn
MLOps Engineer
  • pxrksuhn
    이런 것도 개발자라고
    pxrksuhn
  • 전체
    오늘
    어제
    • 분류 전체보기 (6)
      • 전공은 살려야지 (4)
        • 머신러닝 (4)
        • 컴퓨터비전 (0)
      • 그래도 기본은 해야 (0)
        • 서버 (0)
        • 데이터베이스 (0)
        • 알고리즘 (0)
      • 도전한다면 기꺼이 (0)
        • 정보처리기사 (0)
      • 계속 따라가야하지 않겠어 (2)
        • 논문리뷰 (1)
        • IT toolkit (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • velog
  • 공지사항

  • 인기 글

  • 태그

    Anomaly Detection
    Deep Learnig
    phot-realistic single image super-resolution using a generative adversarial network
    cuDNN
    note
    AI
    super resolution
    Obsidian
    GAN
    CUDA
    model
    notion
    machine laerning
    SRGAN
    정보처리기사
    GPU
    anaconda3
    deep learning
    CutPaste
    Machine Learning
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
pxrksuhn
CutPaste Custom Trainning (1) - GPU Setting
상단으로

티스토리툴바