머신러닝/Tensorflow CNN

Tansorflow CNN(이미지 분류)

dlwltn98 2021. 1. 25. 22:02

머신러닝 야학 정리

Tansorflow CNN(이미지 분류)

차원

표의 열 VS 포함 관계

  • 표의 열 - 칼럼의 관점

    • 칼럼(변수) 2개2차원의 좌표 평면 위에 나타낼 수 있음
    각 점은 1개의 관측치를 나타냄

     

    • 칼럼(변수) 3개3차원 공간의 한 점으로 표현 됨


- 칼럼의 숫자가 n개 라면 각 데이터는 n차원 공간의 한 점으로 표현

### ⇒ 변수의 개수 = 공간의 차원수

 표의 데이터를 공간으로 옮기게 되면 모든 데이터들을 기하학적인 관점으로 바라보고 해석할 수 있게 된다. 

⇒ 데이터들간의 거리를 잴 수 있다.

⇒ 데이터들 사이에 가까운 정도를 숫자로 정밀하게 비교할 수 있게 된다.

⇒ **데이터를 공간속에 표현한다는 맥락에서 사용되면 변수의 갯수가 공간의 차원수가 됨**
  • 데이터 사이의 포함관계를 바라보는 관점

    • 배열의 깊이

      ⇒ 배열의 깊이 = 차원수


⇒ 4차원 공간에 표현되는 관측치

# 관측치 하나를 표로 표현
x1 = np.array([5.1,3.5,1.4,0.2])
print(x1, ndim, x1.shape)

x2 = np.array([4.9, 3.0, 1.4, 0.2])
x3 = np.array([4.7, 3.2, 1.3, 0.2])

⇒ 하나의 배열에 값이 들어가 있는 모양

1차원 형태

⇒ 출력 : (4, )

   → 숫자가 1개 들어가있기 때문에 1차원

   → 4개의 요소를 지닌 1차원 배열

# 표는 이 관측치들의 모음으로 만든다.
# 이것을 코드로 표현
iris = np.array([x1,x2,x3])
print(iris.ndim, iris.shape)

⇒ 1차원의 배열 3개를 품고 있는 배열

⇒ 배열의 깊이 : 2 → 2차원 형태

⇒출력 : (3, 4)

⇒ 데이터의 형태를 표현하는 맥락에서 사용하면 배열의 깊이는 차원수가 됨

이미지 파일 하나가 데이터의 관점에서는 관측치 하나다.

# 흑백의 이미지는 데이터 하나가 
# 2차원 형태를 가진다.

img1 = np.array([
    [  0,  225],
    [225,    0]
])
print(img1.ndim, img1.shape)


⇒ 출력 : (2, 2)

⇒ 가로 2픽셀, 세로 2픽셀로 되어있다.

 

img2 = np.array([[225, 255], [255, 255]])
img3 = np.array([[0, 0], [0, 0]])
img_set = np.array([img1, img2, img3])
print(img_set.ndim, img_set.shape)

⇒ 이미지들을 모아 이미지셋을 구성

⇒ 3차원 형태

⇒ 출력 : (3, 2, 2)

# 1차원 형태, (3,)

d1 = np.array([1,2,3])
print(d1.ndim, d1.shape)
# 2차원 형태, (5, 3)

d1 = np.array([d1, d1, d1, d1, d1])
print(d2.ndim, d2.shape)
# 3차원 형태, (4, 5, 3)

d3 = np.array([d2, d2, d2, d2])
print(d3.ndim, d3.shape)
# 4차원 형태, (2, 4, 5, 3)

d4 = np.array([d3, d3])
print(d4.ndim, d4.shape)

⇒ 데이터 형태의 맥락에서 ' 배열의 깊이 = 차원수 '

- 1차원, 2차원 등 여러 차원 형태로 구성되어 있는 데이터의 모습 = Tensor


  • 데이터 공간의 맥락

    차원수 = 변수의 개수

  • 데이터 형태의 맥락

    차원수 = 배열의 깊이


출처 : https://opentutorials.org/module/5268/29785

'머신러닝 > Tensorflow CNN' 카테고리의 다른 글

딥러닝1. Flatten  (1) 2021.01.28
이미지 데이터 이해  (0) 2021.01.26