728x90

IT/AI\ML 77

labelme 사용법

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. labelme란? MIT에서 만들어진 어노테이션(라벨링) 툴으로 이번 포스트에서는 세그먼테이션용으로 사용했다. labelme의 설치방법 설치할 수 있는 방법은 크게 두 가지가 있다. 하나는 "Anaconda경유" 이고 다른 하나는 "venv+pip경유" 이다. 이 두 가지 방법의 차이는 점이 없기 때문에 본인이 편한 방법을 선택하면 된다. 1. Anaconda를 통한 설치 방법 conda create --name=[가상환경명] python=[Python 버전] activate [가상환경명] conda install pyqt pip install labelme 2. venv+pi..

IT/AI\ML 2022.09.06

[python/Tensorflow2.X] "ValueError: tf.function-decorated function tried to create variables on non-first call" 에러 해결하기

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용이 있으면 지적해주시면 감사하겠습니다. 에러가 발생하는 예제 코드 @tf.function def call(model1: tf.keras.models.Model, inputs: tf.Tensor): return model1(inputs) if __name__ == '__main__': model1 = tf.keras.Sequential([ tf.keras.layers.Dense(16), tf.keras.layers.Dense(4) ]) model2 = tf.keras.Sequential([ tf.keras.layers.Dense(16), tf.keras.layers.Dense(4) ]) inputs = tf.o..

IT/AI\ML 2022.08.16

[python/Tensorflow] Tensorflow에서 GPU 제한 혹은 무효화하기

※ 일본의 한 블로그 글의 번역한 포스트입니다. 오역 및 직역, 의역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. 개요 GPU판 Tensorflow를 기본 설정대로 사용하면 GPU의 모든 메모리가 확보되어버린다. import tensorflow as tf import six # tf.compat.v1.Session를 만들어 키보드 입력을 기다릴뿐인 코드 tf.compat.v1.Session() six.moves.input() $ python test_gpu.py nvidia-smi로 확인하면 다음과 같이 출력된다. Fri Oct 28 15:21:14 2016 +-------------------------------------------------------------------------..

IT/AI\ML 2022.05.30

Annotation과 Annotation의 툴 비교

Annotation이란? AI에서 이미지 인식등의 작업을 할 때, 이미지에 해석 정보를 추가하게 된다. 이러한 해석 정보를 추가해 지도 학습 데이터를 만드는 작업을 Annotation이라고 부른다. Annotaion은 XML, JSON등을 사용하여, 메타 데이터로 저장하는 경우가 많다. Annotation작업을 위한 툴이 굉장히 많으며, github 리포지터리 스타 수, 커밋 수, 최신 커밋 일자 등을 참고하여 몇 가지 추려보았다. 1) LabelImg https://github.com/tzutalin/labelImg 2) Labelbox https://github.com/Labelbox/Labelbox 3) VoTT https://github.com/Microsoft/VoTT/ 4) Annotoriou..

IT/AI\ML 2022.05.13

머신러닝 구현 속도를 올려주는 VSCode 설정

※ 일본의 한 포스팅을 번역한 글입니다. 오역 및 직역, 의역이 있을 수 있으며, 틀린 내용은 지적해주시면 감사하겠습니다. 이번 포스팅에서는 코드 에디터인 VSCode에서 머신러닝 개발을 할 때 폭발적으로 속도를 올려주는 셋팅에 대해서 얘기하고자한다. 심층학습 모델의 만들 때 리모트 환경의 GPU를 탑재한 서버에서 작업을 하는 경우가 매우 많아. VSCode는 이러한 리모트 환경에서의 코드 편집 및 디버그를 간단히 할 수 있는 구조들이 꽤 많이 존재한다. 이 포스팅에서는 심층학습 모델의 구현에서 빈번히 사용되는 Python을 대상으로, 아래의 관점을 바탕으로 작성 속도를 올려주는 설정과 기능에 대해 소개한다. Python의 개발 환경의 구축 리모트 환경의 GPU 서버에 접속하기 위한 설정 심층학습 모델의..

IT/AI\ML 2022.04.14

[python] AI엔지니어가 주의해야할 python 코드 작성 포인트

※ 일본의 한 포스팅을 번역한 글입니다. 오역 및 직역, 의역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. 이번 포스팅에서는 데이터 사이언티스트, AI 엔지니어가 Python 프로그램을 작성할 때 주의해할 점과 노하우 등을 정리해보았다. AI 엔지니어가 주의해야할 python 코드 작성 포인트 이번 포스팅에서는 다음의 내용들에 대해서 다룰 것이다. 레벨 1 1.1 변수, 함수, 클래스, 메소드의 명명규칙을 지키기 1.2 명명방법1 : 변수명이나 메소드명에서 장황한 부분은 삭제하기 1.3 import의 기재는 룰에 따르기 1.4 랜덤수의 seed는 고정하고, 재현성을 보장하기 1.5 프로그램은 함수화하여 실행하기 레벨2 2.1 명명방법2: reverse notation(역기법)으로 명명하고,..

IT/AI\ML 2022.04.13

Concept drift와 Data drift란?

머신러닝이나 예측 분석(데이터 마이닝등)에 있어서 Dritf이란 어떠한 "예측하지 못한 변화"에 의해 모델의 예층 성능이 시간이 경과함에 따라 떨어지는 것을 일컫는다. Model drift나 Model decay(모델의 쇠퇴), Model staleness(모델의 진부) 등으로 불리는 듯하다. 드리프트가 발생하는 원인마다 다양한 관련 용어가 정의되어 있으며, 주된 용어로 Concept drift와 Data drift가 있다. Concept drift란, 입력 데이터(특징량, 설명변수)에서 부터 예측하려고 하는 "정답 라벨(목적 변수)"의 의미/개념/통계적 특성(즉 데이터와 라벨의 관계성, 데이터의 해석 방법)이 모델 훈련때와 비교하여 변화가 있음을 의미한다. Data drift란, 모델의 훈련시 "입력 ..

IT/AI\ML 2022.04.12

segmentation의 종류 (semantic segmentation, instance segmentation, panoptic segmentation의 차이)

논문을 읽는 중에 segmentation 태스크관련해서 종류가 나눠져 있다는 사실을 알게 되어 종류에 대해 간단하게 정리하고자 한다. segmentation은 단순 사전적의미로는 "분할"으로, 기계학습에 있어서는 이미지를 몇 개의 오브젝트로 분할하는 태스크 를 의미한다. 현재 segmentaion은 크게 세 가지 종류가 있다. 아래의 이미지는 각각의 예이다. 그림에서 (b) semantic segmentation은 이미지의 모든 요소에 대해 클래스 라벨을 예측하는 것을 목표로 한다. 한편으로, (c) instance segmentation 태스크는 이미지의 모든 물체에 대해서 클래스 라벨을 예측하고, 추가로 임의의 ID를 부여한다. (b)의 semantic segmentation과 주된 차이점은 겹쳐진 ..

IT/AI\ML 2022.03.31

GAN의 평가지표 FID(Frechet Inception Distance)와 PPL(Perceptual Path Length)

GAN은 비교사 학습이므로, 교사학습의 Accurary, F1 score과 같은 확립된 평가 지표가 없다. 이번 포스팅에서는 자주 사용되는 Frechet Inception Distance이라는 평가지표와 StyleGAN에서 제안된 Perceptual Path Lenght에 대해 소개한다. Frechet Inception Distance(FID) Frechet Inception Distance(FID)는 생성된 이미지의 분포와 원래 이미지의 분포가 어느정도 비슷한지 측정하는 지표이다. 그러나, 이미지는 고차원 공간이므로 간단하게 분포의 거리를 계측하는 것은 힘들다. 따라서, 최근 인간을 초월한 이미지 인식 정밀도를 가진 모델을 사용하여 이미지를 저차원 공간으로 변경 한 뒤, 그 공간에서 분포의 거리를 구하..

IT/AI\ML 2022.02.28

머신러닝에서의 내삽(보간, Interpolation), 외삽(보외, Extrapolation)

머신러닝에서의 내삽(Interpolation)이란, 어떤 데이터를 사용하여 훈련한 기계 학습 모델의 출력 결과가 그 훈련 데이터(입력 데이터 및 교사 라벨)의 수치 범위 내에 있는 것을 의미한다. 또한 외삽(Expolation)이란, 그 범위 밖의 수치를 의미한다. 내삽/외삽이라는 용어는 원래 수학 용어이며, 기계학습 모델의 한계나 오해를 방지하기 위한 주의점으로 언급되는 경우가 많다. 특히 머신러닝에 익숙하지 않은 일반인이나 머신러닝 초심자는 내삽과 외삽을 의식하여 구분하지 않기 때문에, 머신 러닝 모델을 "어떤 입력 데이터에 대해서도 동일한 정밀도/신뢰성을 출력하고 있다"고 오해하기 쉽다. 예를 들어, 머신러닝 모델을 훈련하여 90% 정밀도가 나오면 "그 모델을 사용하면 항상 90%의 정밀도가 나온다..

IT/AI\ML 2022.02.28
728x90