Programming 95

Tensorflow의 Loss Function과 Metrics의 차이

우리는 Tensorflow에서 학습 모델을 구축하려 한다. model architecture를 구성한 뒤, 모델을 실행시키기 위해서는 model compile 과정을 거치게 된다. compile단계에서는 loss function과 metrics를 정의해줄 수 있는데, 여러 종류의 loss function, metrics 중에서 풀고자하는 문제에 적합한 손실함수와 매트릭스를 선택하게 된다. 예를 들어 이진 분류 문제에서는 loss='binary_crossentropy', metrics='accuracy'를 해줄 수 있고, 회귀 문제라면 loss='mean_squared_error', metrics='mean_absolute_percentage_error'로 선택하여 모델을 컴파일할 수 있다. 얼핏보면 lo..

Tensorflow, Numpy - squeeze()와 flatten()의 차이

Tensorflow(Keras)에서는 다양한 연산을 해줄 수 있는함수들을 Layer의 형태로 제공해주고 있다. (ex. Dense, Convolution, Pooling,,,) 어떤 값들이 Layer를 통해서 나오는 Output은 텐서 형태로 그 결과물에 대해 추가적인 변형을 주고싶을 때는 해당 객체를 numpy형태로 변환해주어야한다. 그 과정은 아래의 MaxPooling2D 레이어를 거친 결과물로 예시를 들어 코드를 작성한 것에서 pooled_max.numpy()부분이다. import numpy as np import tensorflow as tf from tensorflow.keras.layers import MaxPooling2D N, n_H, n_W, n_C = 1, 5, 5, 1 f, s = 2..

[Tensorflow] 그림으로 이해하는 CNN 연산과정 (코드포함)

import numpy as np import tensorflow as tf from tensorflow.keras.layers import Conv2D N, n_H, n_W, n_C = 1, 5, 5, 3 n_filter = 5 k_size = 4 images = tf.random.uniform(minval=0, maxval=1, shape=(N,n_H,n_W,n_C)) # Forward Propogation(Tensorflow) conv = Conv2D(filters=n_filter, kernel_size=k_size) Y = conv(images) print(f"Y.shape : {Y.shape}\n") print(f"Y : \n{Y.numpy().squeeze()}\n") # Output Y.sh..

3차원 텐서 전치에 대해서 알아보자. (tensorflow, numpy transpose)

2차원 행렬은 원소의 값들에 대해 행과 열의 위치를 바꾸는 것으로 전치를 할 수 있다. 2차원 행렬의 전치는 단순하지만 3차원 텐서부터는 전치되는 값이 헷갈리기 시작한다. 따라서, 해당 글에서는 3차원 텐서를 전치시킬 수 있는 경우들과 전치가 어떻게 되는지 쉽게 설명해보려하였다. 먼저, tensorflow로 샘플데이터를 만들어 주고, 3차원 텐서를 numpy로 형태로 만들어주었다.import numpy as np import tensorflow as tf tensor_3d = tf.random.uniform(minval=0, maxval=10, shape=(1,2,3,4), dtype=tf.int32) tensor_3d = tensor_3d.numpy().squeeze() print(f"shape : {..

Matplotlib 그래프 시각화 방법 - 두 그래프 평행하게 그리기 (tensorflow, numpy 수치데이터)

python의 대표적인 시각화도구인 matplotlib 라이브러리를 사용하여, log함수를 예시로 그래프를 그려보겠습니다. 먼저, 함수를 임포트 시켜줍니다. import matplotlib.pyplot as plt log함수를 그려주기 위해서는 log함수의 x, y좌표값들을 만들어주어야 합니다. x, y값들은 Numpy, Tensorflow 두가지 방법으로 데이터를 만들어 보겠습니다. Numpy로 log함수의 x, y 세트 만들기 import numpy as np x_np = np.linspace(0.1, 10, 1000) y_np = np.log(x_np) Tensorflow로 log함수의 x,y 세트 만들기 import tensorflow as tf x_tf = tf.linspace(0.1, 10, ..

Pytorch로 Tensor Operation 다루는 법! (기본 기능 모음)

지난 글에 이어서 numpy가 아닌 pytorch에서 tensor를 다룰 수 있는 함수들에 대해 정리해보았습니다. tensor에 대한 개념이 익숙하지 않으신 분들은 해당 글을 먼저 읽고 오시는 것을 추천드립니다! https://kyull-it.tistory.com/158 Tensor란 무엇인가? (+ Python Numpy Tensor 구현 및 기본 기능) Tensor란 무엇일까? 우리는 중고등학생때, 스칼라, 벡터, 행렬까지 배웠다. 0차원인 스칼라, 1차원인 벡터, 2차원인 행렬,,, 그럼 3차원부터는?! 그게 바로 텐서라고 하는 것이다. 3차원 이상은 모두 kyull-it.tistory.com tensor 생성하기 import torch torch.FloatTensor( ) # np.array( )..

Tensor란 무엇인가? (+ Python Numpy Tensor 구현 및 기본 기능)

Tensor란 무엇일까? 우리는 중고등학생때, 스칼라, 벡터, 행렬까지 배웠다. 0차원인 스칼라, 1차원인 벡터, 2차원인 행렬,,, 그럼 3차원부터는?! 그게 바로 텐서라고 하는 것이다. 3차원 이상은 모두 텐서의 형태로 표현해주고, 이러한 텐서 형태를 가져와서 스칼라, 벡터, 행렬도 텐서로써 표현해줄 수도 있다. 편의상 모든 값들을 텐서형태로 정의해주는 것으로 보면 되고, 아래의 표가 모든 텐서 종류들을 정리한 내용이다. 텐서의 종류 텐서의 종류 (영어) 형태의 명칭 형태의 명칭 (영어) 0차원 텐서 Zeroth-order Tensor 스칼라 Scalar 1차원 텐서 First-order Tensor 벡터 Vector 2차원 텐서 Second-order Tensor 행렬 Matrix 3차원 텐서 Th..

[Python] 시뮬레이션 알고리즘 (Simulation Algorithm) - 게임 개발 (문제 예제)

시뮬레이션 알고리즘 (Simuliation Algorithm)은 말 그대로 어떤 문제에서 제시된 수행 조건들을 한 단계씩 순서대로 수행하도록 구현하는 알고리즘이다. 보통 캐릭터를 2차원 공간의 게임 맵안에서 이동시키는 구현에 많이 사용된다. 아래가 시뮬레이션 알고리즘의 예제이다. 게임 개발 N * M 직사각형의 게임판 (3

Programming/python 2023.08.17

Matplotlib Colormaps로 OpenCV Contours 그리는 법

객체인식, 이미지분할 등 컴퓨터 비전 task들 중에서 가장 기본이 되는 이미지 처리로 이미지속 객체들의 Contours를 찾고, 이를 시각화시키는 작업을 자주하게 된다. 이미지 속에서 객체들의 경계선을 추출한 contours는 보통 cv2.drawContours로 그려주게 될텐데, 이 때 matplotlib에서 제공하는 colormaps의 색상을 어떻게 활용할 수 있는지 아래에서 확인해보자. 우선, 이미지의 Contour를 얻기 위해 아래의 코드를 실행시켜줍니다. import cv2 image = cv2.imread('./data/IMG_2421.jpg') # read an image and convert BGR image to RGB and GRAY image image = cv2.cvtColor(i..

아나콘다 가상환경셋팅 필수 커맨드!

1. 가상환경 만들기 conda create -n envsname python=x.x = python x.x버전으로 envsname이라는 가상환경을 만들어줘 2. 가상환경 활성화 conda activate envsname 3. 가상환경에 주피터노트북 설치하기 (필자는 주피터랩을 설치함) conda install -c conda-forge jupyterlab - 주피터 노트북의 경우는 아래의 커맨드로 설치 conda install jupyter notebook 4. 가상환경을 주피터커널에 등록 python -m ipykernel install --user --name envsname - 주피터커널에 등록된 가상환경을 아래의 커맨드로 볼 수 있다. jupyter kernelspec list - 주피터커널에 ..