분류 전체보기 69

[Keras] "categorical_crossentropy", "sparse_categorical_crossentropy" 차이

Keras에서 사용 가능한 loss function 중 "categorical_crossentropy"와 "sparse_categorical_crossentropy" 의 차이가 궁금해서 찾아봤다. (처음에는 후자의 경우, function 자체가 sparse한 데이터에 초점이 맞춰져 있나 궁금했다...) 찾아보니, 차이는 다음과 같다. (성능에는 영향을 끼치지 않는다고 한다.) "categorical_crossentropy"는 데이터의 라벨이 원-핫 인코딩 된 형태의 경우 사용, "sparse_categorical_crossentropy"는 데이터의 라벨이 Int형 일 때 사용한다. 예로 클래스가 5개인 데이터가 있다고 하자, 라벨의 형태가 [[0, 0, 1, 0, 0], [0, 0, 0, 0, 1], [..

[컴퓨터 비전] Sampling & Aliasing, Nyquist Rate, Low pass Filter

이 글은 학부 수업을 들으면서 개인적으로 정리한 글입니다. 잘못된 내용이 있다면 댓글로 말씀 부탁드립니다! Sampling & Aliasing 우리가 다루는 이미지는 2차원의 신호(Signal)로 볼 수 있다. Figure 1. 에서 노란 선의 신호를 화살표 우측의 연속적인 신호로 나타낼 수 있고, 연속적인 신호는 Sampling할 수 있다. (연속적인 신호(또는 함수)에서 특정 위치를 대표하는 값을 뽑아내는 과정을 Sampling이라고 한다.) Sampling된 값을 다시 연속적인 값으로 복원할 때, 기존의 신호와 달라지는 현상이 발생하는데 이런 현상을 Aliasing이라고 부른다. 이처럼 우리가 다루는 이미지는 연속이 아닌 discrete한 pixel 값으로 이루어져 있고, 카메라의 센서 또한 불연속..

[오류] zsh: command not found: python (Mac OS)

파이썬 3.11로 업그레이드 하기 전, 맥북에서 사용 중인 파이썬 버전이 궁금해서 python --version 을 입력했다. 그런데 "zsh: command not found: python"라는 문구만 나왔다 ㅡ.ㅡ 찾아보니 환경 변수에 python의 경로가 설정되지 않아 나오는 에러라고 한다. 해결 방법 해결 방법은 먼저 터미널에 which python3 을 입력해 python이 설치된 경로를 확인하고, echo "alias python=위에서 확인한 경로" >> ~/.zshrc 와 같이 입력한 후 terminal을 다시 실행하면 된다!

기타 2022.11.13

[논문 리뷰] Show and Tell: A Neural Image Caption Generator (CVPR, 2015)

Title: Show and Tell: A Neural Image Caption Generator (CVPR, 2015) 최근 Causal Inference에 관심이 많이 가서, CVPR 2022에 게재된 Show, Deconfound and Tell: Image Captioning with Causal Inference 라는 페이퍼의 레퍼런스를 훑어보다 읽게 됐다. Introduction Image Captioning(IC) 분야는 이름 그대로 이미지를 입력받아 해당 이미지를 설명하는 문장을 생성하는 태스크다. 일반적으로, 우리가 컴퓨터 비전 분야의 대표적인 태스크 하면 떠올리는 image classification, object detection 보다 어려운 작업이라고 할 수 있다. 주어진 이미지에서..

Resizing Array

이 글은 학부 수업을 들으면서 개인적으로 정리한 글입니다. 잘못된 내용이 있다면 댓글로 말씀 부탁드립니다! Introduction C언어로 프로그래밍을 공부하면서 가장 처음 접하게 되는 기본적인 배열(Array)은 초기화 시 자료형과 크기를 지정한다. 배열의 크기를 지정해두기 때문에, 데이터의 입력이 얼마나 들어오는지 미리 알기 어려운 경우에는 배열 크기 설정에 어려움을 겪는다. 이런 어려움을 해결하기 위해 다음 특징을 갖는 Resizing Array를 사용한다: - 저장된 데이터의 크기에 따라 Array의 크기를 재조정하는 자료 구조 - index로 원소 접근 가능 Python의 List, C++의 vector, Java의 ArrayList가 그 대표적인 예시이다. 이를 활용해 사용자는 데이터의 입력이..

[오류] load() missing 1 required positional argument: 'Loader'

yaml과 관련한 에러다. 예전의 코드를 코랩에서 import yaml 후 yaml.load()를 사용하면 해당 에러를 만날 수 있다. 이 때는 다음 두 방법 중 하나로 대처해주면 된다: 1. 버전 변경 버전을 강제로 변경해준다. # 코랩 기준 !pip install pyyaml==5.4.1 2. 다른 함수 사용 버전을 변경하기 싫다면, load() 대신 full_load()를 사용한다. # config = yaml.load(f) config = yaml.full_load(f) [참고 자료]

기타 2022.10.03

[논문 리뷰] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization

Title: CutPaste: Self-Supervised Learning for Anomaly Detection and Localization (CVPR, 2021) Anomalous data를 활용하지 않고, 이미지에서 Unknown Anomalous 패턴을 감지하는 모델을 구축한 모델을 제시. 논문에서는 2-stage 프레임워크를 구축해 normal data를 훈련해 이상 탐지를 수행한다. 이 때, Self-supervsied learning에 자르고 붙이는 이미지 데이터 증강 기법을 활용한다. Introduction 이상 감지는 제조, 의료, CCTV등 다양한 분야에서 활용된다. 비전 분야에서, 이상 감지 문제와 관련된 연구는 대부분 지도 학습(supervised learning)으로 접근하지 않..

[오류] ImportError: Missing optional dependency 'Jinja2'. DataFrame.style requires jinja2. Use pip or conda to install Jinja2.

요즘 오류와 관련된 글만 올리는 거 같지만 어쩔 수 없다.. 코랩에서 pycaret을 사용하는데 제목과 같은 에러가 났다. (22.07.05 기준) 아래 코드를 실행하려하면, 에러가 나온다. from pycaret.classification import * JinJa2라는 라이브러리를 import 하거나 새로 설치해도 해결이 되지 않았다. 해결 방법은,, markupsafe의 버전을 강제로 바꿔주면 된다. !pip install markupsafe==2.0.1 그 후에 아래처럼 실행해주면 끝! import jinja2 from pycaret.classification import *

기타 2022.07.05

[오류] module 'librosa' has no attribute 'display'

최근 Audio data를 사용할 일이 생겨, librosa, scipy 라이브러리를 사용하고 있다. mfcc 피쳐를 시각화하고 싶어 librosa 라이브러리의 display 기능을 쓰려하니 제목과 같은 에러가 나왔다. 해결 방법은 아래처럼 librosa.display를 따로 import 해주면 된다! import librosa.display import 해주고 난 후에는 아래처럼 잘 나왔다. (matplotlib로도 충분히 할 수 있지만, 편하다..)

기타 2022.07.03