반응형
블로그 목적
- 텐서(Tensor)의 자료구조 및 1차/1차/3차 텐서에 대해서 알아본다.
텐서의 자료구조에 대해서 알아보자.
- 텐서란?
- 텐서플로의 기본자료구조를 말함.
- 다차원 배열 or 리스트로 구성되어 있는 단순한 구조.
- 그리고, 데이터 플로우 그래프에서 엣지를 연결함.
- 텐서플로의 기본자료구조를 말함.
- 텐서를 구분하는 3가지 요소
- Rank
- 텐서의 차원을 나타냄.
- 즉, Rank 가 N인 텐서는 N차원 행렬을 나타냄.
- ex) Rank 2의 텐서(=행렬) / Rank 1의 텐서(=벡터)
- 즉, Rank 가 N인 텐서는 N차원 행렬을 나타냄.
- 텐서의 차원을 나타냄.
- Shape
- 텐서의 행/열이 몇개인지 나타냄.
- Type
- 텐서의 데이터의 형식을 나타냄.
- Rank
- 그럼, 텐서는 어떻게 만들까?
- 하나, NumPy 등을 이용한 N차원 배열을 만드는 방법
- 둘, N차원 배열을 텐서플로 텐서로 변환하는 방법
- 다시말해서, 텐서로 변환된 이후에 텐서플로로 연산이 가능함.
그럼, 1차원 텐서에 대해서 알아보자.
- 1차원 텐서를 생성하기 위해서 해야할 일은?
- Numpy 의 array(s) 명령어를 이용.
- 예시
- 실행화면(jupyter notebook)
-
- 설명
- 쉼표(,) 로 구분하지 않음 (python 리스트와 다른점)
- 인덱스의 시작은 0
- 차원 조회시 (4,) 의 의미하는 것은, 하나의 행에 4개의 열이 있다는 의미임.
- 설명
- 그럼, Numpy 배열을 텐서플로의 텐서로 변환해보자.
- 예시
- 실행화면(jupyter notebook)
-
- 설명
- 텐서플로의 convert_to_tensor 함수
- 다양한 종류의 python 객체를 텐서플로의 텐서 형식으로 변환해주는 함수
- Numpy 배열, python 리스트, python 스칼라 자료구조 등등
- 다양한 종류의 python 객체를 텐서플로의 텐서 형식으로 변환해주는 함수
- 텐서플로의 convert_to_tensor 함수
- 설명
- 예시
그럼, 2차원 텐서에 대해서 알아보자.
- 2차원 텐서 or 행렬을 만들기 위해서는 ?
- 배열의 배열을 이용함.
- 명령어는 1차원 텐서와 동일하게 array(s)를 사용함.
- 예시
- 실행화면(jupyter notebook)
- 설명
- ts_2d[row, col] 을 통해서 해당 행렬의 값을 얻어올 수 있음.
- 배열의 배열을 이용함.
- 그럼, 텐서 자료 구조로 변환해보자.
- 예시
- 실행화면
-
- 설명
- 텐서플로의 constant 명령어를 사용해 자료구조를 변환할 수 있음.
- 텐서플로의 add 명령을 통해서 덧셈 결과를 반환함.
- 그 외의 주요 산술연산 정리
- tf.sub
- 뺄셈결과를 반환한다.
- tf.mul
- 곱셈결과를 반환한다.
- tf.div
- 나눗셈결과를 반환한다.
- tf.mod
- 나머지 연산(모듈러)결과를 반환한다.
- tf.abs
- 절대값을 반환한다.
- 기타 등등 다양한 산술연산을 지원하며, 할수 있음.
- tf.sub
- 설명
- 예시
마지막으로, 3차원 텐서에 대해서 알아보자.
- 보통 3차원 텐서는 이미지 처리에서 주로 사용하는 구조.
- 이미지 배열은 M X N X 3 크기로 구성되어 있는 3차원 텐서
- 3은 각각 빨간색(R) / 초록색(G) / 파란색(B)을 의미하는 RGB 색역을 의미함.
- 예시
- 실행화면
-
- 설명
- (2,2,2) 는 2X2X2크기의 행렬을 의미함
- 평면(plane) / 행(row) / 열(column)을 의미함.
- (2,2,2) 는 2X2X2크기의 행렬을 의미함
- 설명
-
- 실행화면
- 이미지 배열은 M X N X 3 크기로 구성되어 있는 3차원 텐서
- 그럼, matplotlib 을 통해서 컬러이미지(T.hub)를 불러오고, 텐서 플로를 이용해 이미지를 변형해보자.
- 예시
- 원본 이미지
- 실행화면(Jupyter notebook)
-
- 설명
- matplotlib 을 통해서, 이미지를 불러올 수 있음.
- imread 명령어를 이용하면, 표준형식(JPG, BMP, TIF)의 컬러 이미지파일을 불러옴.
- 텐서플로의 slice 함수를 통해서 이미지를 잘라볼 수 있음.
- 텐서플로의 transpose 함수를 통해서 전치된 이미지(전치 행렬)을 구할 수 있음
- matplotlib 을 통해서, 이미지를 불러올 수 있음.
- 설명
- 원본 이미지
- 예시
-
결론
- 텐서는 텐서플로의 기본자료구조를 말함.
- 다차원 배열 or 리스트로 구성되어 있는 단순한 구조.
- 그리고, 데이터 플로우 그래프에서 엣지를 연결함.
- 텐서를 구분하는 3가지 요소는 Rank/Shape/Type 으로 구성됨.
- 오늘도 텐서에 대한 지식 획득 및 공유 성공! 감사합니다.
- 텐서는 텐서플로의 기본자료구조를 말함.
728x90
300x250
'좋아하는 것_매직IT > 24.tensorflow' 카테고리의 다른 글
14.tensorflow, 쥘리아 집합(Julia set)에 대해서 알아보자. (0) | 2020.12.31 |
---|---|
13.tensorflow, 프랙탈(fractal)에 대해서 알아보자. (0) | 2020.12.31 |
11.tensorflow, 텐서보드(TensorBoard) 에 대해서 알아보자. (0) | 2020.12.31 |
10.tensorflow, 텐서플로우(TensorFlow) 에 대한 기초지식에 대해서 알아보자. (0) | 2020.12.31 |
9.tensorflow, 텐서플로우(TensorFlow) 환경을 구축해보자. (0) | 2020.12.31 |