AI 기술(6)
-
mmsegmentation 공략하기(설치부터 custom dataset학습까지)
mmsegmentation(이하 mmseg)는 현재 segmentation SOTA 코드들이 사용하는 환경으로 매우 유용하게 사용되고 있다. 하지만, 생각보다 어려운 설치와 custom data 학습으로 인해 장벽이 존재한다. 몇일동안 삽실하며, 학습환경세팅과 실제학습에 들어가기까지 과정 및 오류내용을 공유해보려 한다. 본 글은, mmseg를 이용한 BEiT2활용 과정이며, BEiT뿐만 아니라 무수히 많은 모델들이 존재한다. 본인 GPU 환경 A100 80G 4장 (320G) Ubuntu 22.04.2 LTS CUDA version 11.7 1. Installation 1. Docker build (Pytorch 1.7.1 CUDA 11.0 cudnn 8) https://hub.docker.com/lay..
2023.06.07 -
내가 필요해서 정리하는 JAX(2)(JAX의 설치 / 직접 설치해보고 적는 방법)
Docker 내가 가지고 있는 nvidia GPU의 하위버전이면 모든 환경세팅이 가능하다 내가 사용하는 GPU는 cuda 11.7 version의 nvidia gpu이다, 즉 cuda 11.7 이하의 cuda version의 도커는 모두 사용 가능하다. 해당 docker는 cuda 11.7을 기준으로 설정된 docker image이므로, 만약 하위 버전의 cuda를 사용한다면 google이나 docker hub를 통해 다운받으면 된다. Dockerfile을 내가 작업하고자 하는 디렉토리에 복사한 후, 다음 명령어로 image를 bulid한다. docker build --tag jax_test . 이후, 아래와 같이 쉘 스크립트를 하나 만들어서 실행하면 된다. 스크립트의 파라미터들은 각자의 환경에 맡게 설..
2023.04.24 -
내가 필요해서 정리하는 JAX(1)(JAX의 기초부터 XLA까지)
JAX를 이해하기전 꼭 필요한 프레임워크 지식 1. Google Google은 2015년에 기계학습 라이브러리 Tensorflow를 오픈소스로 공개한다. 2. Facebook(+ Microsoft) Facebook은 2016년에 딥러닝 라이브러리 Pytorch를 오픈소스로 공개한다. JAX는 Google에서 개발되었고, 이 말은 XLA가 자유롭게 가능하다는 것이다. 물론 최근(2019년)에 pytorch도 XLA가 가능하게끔 google과 facebook간의 협약이 있었다고 하지만, pytorch를 주로 쓰는 나인데도 XLA라는 용어를 이번에 처음듣게 되었다. 그래서 JAX를 알아보기 전에 XLA를 간단히 알고가려 한다. XLA(=Accelerated Linear Algebra)는 Tensorflow의 ..
2023.04.18 -
[Linux] 특정 디렉토리의 Tree 구조만 복사하기
find . -type d | cpio -pdvm "/mnt/dataset/BrainCT/ASAN/1/png/" 원리 find . : 현재 디렉토리에서 -type d : 디렉토리 타입 cpio -pdvm : cpio를 이용하여 복사 "~~~" : 목적지 경로
2022.11.17 -
Federated Learning에 다양한 GAN 적용시키기
현재 상용화 된 Federated Learning Framework 들이 몇몇 존재한다. 실제로 업무를 하면서 3가지 정도를 다뤄봤고, 그중 Flower Framework를 기준으로 설명하고자 한다. 내가 생각하는 Federated Framework 절대적으로 동작해야되는 기능을 포함하는 Framework만 선별했다. Real Network Operation 하나의 환경안에서만 동작하는 Federated Learning은 깃헙에도 custom코드가 널리고 널렸다. Server와 Client 환경을 구분하지 않는 Framework는 바로 out 시켰다. Security weight를 주고 받을 때, 동형화 암호를 사용하여 주고 받게 되어있는데, 해당 기능을 개발중이거나 사용하지 않는 Framework는 사..
2022.05.13 -
[Federated Learning] + Blockchain과의 연계
참고 논문 : https://arxiv.org/pdf/1909.11875.pdf 1. Introduction 우리가 알고 있는 전통적인 cloud-centric 방식은 엣지 클라우드(클라이언트, 데이터 오너 등등)로 부터 데이터를 수집하여 중앙 서버가 데이터를 처리해 주는 방식을 이용해 왔다. 그런데 현대 사회에서는 다음과 같은 문제 때문에 decentric한 방법이 대두되고 있다. 데이터 소유자의 프라이버시 문제 Center로 데이터를 전송하게 되면 데이터의 양을 감당하기가 힘듬 분산학습 vs 연합학습 둘의 학습되는 과정은 다를게 없지만, 가정이 다르다. 분산학습의 경우 하나의 모델을 병렬적으로 학습하고 각 데이터가 독립적이며 동일한 분포를 갖는다고 가정한다 (IID) 연합학습은 Non-IID를 가정하..
2022.03.23