2023. 11. 28. 19:20ㆍ인공지능
텐서플로우
- 구글에서 2015년 공개한 오픈소스라이브러리
- 데이터 플로우 그래프를 이용하여 계산과정과 모델을 표현
- 기계학습 알고리즘을 구현하고 실행하기 위한 프로그래밍 인터페이스
- 신경망과 딥러닝 관련 라이브러리 제공
데이터 플로우 그래프
: 텐서플로우 프로그램을 통하여 수행되는 일련의 계산을 정의

Variable
- 모델의 학습 가능한 변수를 정의할 때 사용
- 가중치, 편향 등의 파라미터를 저장하는 데 사용
- 정의할 때 반드시 초기화되어야 함
Placeholder
- 데이터플로우 그래프 실행 시 데이터(Tensor)를 전달하기 위해 사용
- 그래프 실행 시 값이 제공되어야 함
Tensorboard
- 텐서플로우에서 제공하는 시각화 도구
- 데이터플로우 그래프, 학습과정의 성능 변화등을 보여줄 수 있음
Tensor
- 텐서플로우에서 사용하는 기본 자료형인 다차원 배열
- rank, shape, type의 세 가지 속성을 가짐
- rank: 텐서의 차원 수

- shape: 텐서의 구조
예) b=[6,3,5,2,7] -> b의 shape: [5]
-> rank 1인 텐서로 원소를 5개 가지고 있음
c=[ [1,2,3], [3,6,1] ] -> c의 shape: [2,3]
-> 2*3의 2차원
d=[ [ [1,2], [3,4], [2,8] ], [ [3,2], [5,7], [4,3] ] ] -> d의 shape: [2,3,2]
-> 2*3*2의 3차원 - type: 텐서 구성원소의 자료형

텐서 변환 연산
1. reshape(텐서, shape): 텐서의 기존의 원소를 새로운 shape에 따라 원소 배치
예) a=[1,2,3,4,5,6] 일 때
tf.reshape(a, [2,3])
-> [ [1,2,3], [4,5,6] ]로 바뀜
2. squeeze(텐서): 텐서에서 크기가 1인 축을 제거
예) tf.squeeze( [0], [1], [2] )
-> 텐서가 [0,1,2] 로 바뀜
3. expand_dims(텐서, 확장축): 텐서의 지정한 축의 위치에 차원 추가
- 축의 인자는 0부터 시작 (shape의 앞에서부터 축 0, 축 1, 축 2...)
예) tf.expand_dims([ [1,2,3], [4,5,6] ], 0) -> [ [ [1,2,3], [4,5,6] ] ]로 바뀜
-> shape가 [2,3]에서 [1,2,3]으로 바뀐 것
tf.expand_dims([ [1,2,3], [4,5,6] ], 1) -> [ [ [1,2,3] ], [ [4,5,6] ] ]로 바뀜
-> shape가 [2,3]에서 [2,1,3]으로 바뀐 것
4. slice(텐서, [축 0의 추출시작위치, 축 1의 추출시작위치, ... , 축 d-1의 추출 시작위치],
[축 0의 추출길이, 축1의 추출길이,... , 축 d-1의 추출길이])
: 텐서에서 일부분 선택(추출)

5. split(텐서, 텐서분할개수, 축) : 지정된 축을 따라 하나의 텐서를 주어진 개수의 텐서들로 분리

축 1로 분리하면 수직으로 분리되고,
축 0으로 분리하면 수평으로 분리된다.
6. concat( [텐서 1, 텐서 2], 차원): 한 축을 기준으로 두 텐서를 이어 붙임(시작위치는 0부터 시작)

만약 맞는 축이 없다면 붙일 수 없다.
7. split(텐서, 텐서분할개수, 축)
: 지정된 축을 따라 하나의 텐서를 주어진 개수의 부분 텐서로 분리

8. concat( [텐서 1, 텐서 2], 차원) : 한 축을 기준으로 두 텐서를 이어 붙임
예)
t1, t2가 1차원일 때


t1,t2가 2차원일 때


9. reverse(텐서, [축]) : 텐서의 축을 기준으로 원소를 역순으로 배열

10. transpose(텐서, perm=[축의 순열]): 텐서의 지정된 축을 지정된 순서로 바꿈
이때, 축의 순열을 지정 안 하면
2차원일 경우 [1,0] 기본값으로 적용
3차원일 경우 [0,2,1] 기본값으로 적용

11. gatehr(텐서, [첨자들]) : 지정된 첨자(index)의 원소들로 이루어진 텐서를 생성



12. one_hot(텐서, depth=전체 원소의 가짓수)
: 정수값을 one-hot 벡터로 변환
* one-hot 벡터: 데이터를 중복 없이 표현할 때 사용하는 형식

텐서 산술 연산 함수
: 기본적인 산술 연산은 동일 shape의 텐서에서 동일 위치 별로 수행한다.
텐서 축약 연산 함수
: 텐서의 크기를 줄이는 함수


텐서 행렬 연산 함수
:행렬 연산 함수들

기타 함수들


'인공지능' 카테고리의 다른 글
| 자연어 처리 (0) | 2023.12.05 |
|---|---|
| 5. 딥러닝 - convolution 신경망 (1) | 2023.11.16 |
| 5. 딥 러닝- 개요 (0) | 2023.11.10 |
| 4. 기계 학습 - 신경망 (0) | 2023.11.10 |
| 4. 기계학습 - 학습 알고리즘 (0) | 2023.11.07 |