* 이 포스팅은 로드북 출판사의 백견불여일타 딥러닝 입문 with 텐서플로우 2.X 책을 바탕으로 제작되었습니다.
* 필자가 학습해서 얻었던 지식과 느낀 점 위주로 작성한 내용이고, 혹시 틀린 점이 있다면 댓글로 피드백 주시면 감사하겠습니다.
* 포스팅에 대한 문제가 있다면 댓글 남겨주시면 감사하겠습니다.
지난 시간에는 학습, 평가하는 부분에 대해 학습을 해보았습니다. 이번 시간에는 기본 연산 해보는 것에 대해 학습하는 시간을 가지도록 하겠습니다.
기본 연산 해보기
* 텐서를 통한 표현
- 텐서플로우는 주로 텐서(Tensor)를 다루게 된다.
- 텐서(Tensor)는 C나 Java언어에서 int, float 등과 같은 자료형에 해당한다.
- 정의 : 여러 형태를 가질 수 있는 넘파이 배열(NumPy Array)
- 텐서는 배열의 차원을 랭크(Rank)로 표현
예 | 주로 사용하는 표현 | 텐서 표현 | 랭크 |
0, 1, 2 ... | 스칼라(Scalar) | 0-D Tensor | 0 |
[1, 2, 3, 4, 5] | 벡터(Vector) | 1-D Tensor | 1 |
[[1, 2, 3, 4, 5], [1, 2, 3, 4, 5]] | 행렬(Matrix) | 2-D Tensor | 2 |
[...[..]...] | n차원 배열 | n-D Tensor | n |
[우리가 사용하는 표현과 텐서의 표현 비교]
* 텐서의 차원과 기본 연산
- 출력의 결과는 텐서 형태로 나온다.
- 첫 번째 인자 : 해당 텐서의 랭크, 두 번째 인자 : 해당 텐서의 형태
- 랭크는 스칼라 형태를 나타내기 때문에 'shape=( )'처럼 빈칸이 나옴.
- 세 번째 인자 : 해당 텐서의 데이터 타입
* 즉시 실행 모드를 통한 연산
- 텐서플로우 2.x 큰 장점 중 하나가 즉시 실행 모드(Eager mode) 지원
* 텐서에서 넘파이로, 넘파이에서 텐서로
- numpy( ) 함수 사용 : 텐서 -> 넘파이 배열
- 함수 적용
- tf.convert_to_tensor( )함수 : 텐서 형태로 다시 변환
- 여러 가지 수학에 관한 계산 tf.math 모듈 아래, 선형대수학에 관한 계산 tf.linalg 모듈 아래 있다.
* @tf.function 사용해보기
- 자동으로 그래프를 생성해주는 기능
- 파이썬으로 구성된 코드를 고효율의 텐서플로우 그래프로 변환해서 사용할 수 있다.
- 변환되는 함수
: if -> tf.cond
: for/while -> tf.while_loop
: for_ in dataset -> dataset.reduce
- 사실 이 코드는 @tf.function 없이도 문제없이 실행된다.
- @tf.function 사용한 함수와 그렇지 않은 함수의 차이
- 파이썬으로 구성된 함수를 텐서플로우 그래프 형태로 다루고 싶을 때 사용하면 좋다.
이번 시간에는 텐서플로우를 이용하여 기본 연산을 해보는 것에 대해 학습해보았습니다. 다음 시간에는 신경망에 대해서 학습하도록 하겠습니다.
Tool : colab.research.google.com/notebooks/intro.ipynb
Google Colaboratory
colab.research.google.com
'Machine Learning' 카테고리의 다른 글
[딥러닝] 딥러닝이란? 1 (0) | 2021.09.01 |
---|---|
[백견불여일타 딥러닝 입문 : 학습 5일차] (0) | 2021.01.30 |
[백견불여일타 딥러닝 입문 : 학습 3일차] (0) | 2021.01.30 |
[백견불여일타 딥러닝 입문 : 학습 2일차] (0) | 2021.01.30 |
[백견불여일타 딥러닝 입문 : 학습 1일차] (0) | 2021.01.30 |