반응형
- 텐서 : 딥러닝에서는 그냥 '다차원 배열'의 의미로 받아들여도 된다. numpy 배열과 비슷하다. GPU와 같은 가속기 메모리에 상주할 수 있다.
- 이러한 텐서 데이터들이 서로 연산을 주고 받으며 흘러가면서 계산된다.
- 일반적으로 텐서는 불변성(immutable)이다. 생성 이후 변경할 수 없다.
상수 텐서 초기화
import tensorflow as tf
# 값이 일정한 텐서 선언
tensor_a = tf.constant(value, dtype=None, shape=None, name=None) # 모든 값이 value
tensor_a = tf.zeros(shape=None, name=None) # 모든 값이 0
tensor_a = tf.ones(shape=None, name=None) # 모든 값이 1
- 모든 요소의 값이 동일한 상수 텐서 생성
- dtype : tensor 타입
- shape : tensor 차원
- name : 이름, 이를 활용해 참조가능
시퀀스 텐서 초기화
import tensorflow as tf
# start에서 stop까지 증가하는 num 개의 데이터 텐서
tensor_d = tf.linspace(start, stop, num, name=None)
# start에서 stop까지 delta씩 증가하는 데이터 텐서
tensor_e = tf.range(start, limit=None, delta=None, name=None)
- 특정 규칙으로 이어지는 값들을 가지는 텐서 생성
난수 텐서 초기화
import tensorflow as tf
# 정규분포 난수를 가지는 텐서
tensor_f = tf.random.normal(shape, mean=0.0, stddev=1.0, seed=None, name=None)
# 균등분포 난수를 가지는 텐서
tensor_g = tf.random.uniform(shape=(10,10), minval=0.0, maxval=10, seed=None, name=None)
- 특정 분포를 따르는 난수들을 가지는 텐서 생성
- 정규분포는 '확률값'을 분포하는 것이라면 균등분포는 minval~maxval을 동일한 확률로 분포한다.
변수 텐서 초기화
import tensorflow as tf
tensor = tf.Variable(value)
- value에 상수 텐서를 넣어 생성한다.
- 해당 변수 텐서가 아닌 일반 텐서는 텐서 값은 변경할 수 없다. 텐서는 한번 실행시킨 경우엔 오직 하나의 값만을 가진다. (하지만 동일 텐서를 재실행하면 다른 값을 가질 수 있다.)
- 퍼셉트론의 weight나 bias 값을 조절하는데 활용된다.
텐서 연산자
# 더하기
print(tf.add(1, 2))
print(tf.add([1, 2], [5, 6]))
# 제곱
print(tf.square(3))
# 총합
print(tf.reduce_sum([1, 2, 3]))
# 연산자 오버로딩
print(tf.square(3) + tf.square(3))
# 행렬곱
tf.matmul([[1]], [[2, 3]])
==출력==
tf.Tensor(3, shape=(), dtype=int32)
tf.Tensor([6 8], shape=(2,), dtype=int32)
tf.Tensor(9, shape=(), dtype=int32)
tf.Tensor(6, shape=(), dtype=int32)
tf.Tensor(18, shape=(), dtype=int32)
tf.Tensor([[2 3]], shape=(1, 2), dtype=int32)
- 텐서를 이용해 각종 수학적 연산을 진행할 수 있다.
- 연산 내부에 numpy 배열이 있어도 호환된다. (이는 numpy에서도 마찬가지이다.)
반응형
'🛠 기타 > Data & AI' 카테고리의 다른 글
Keras Tokenizer (단어 인덱스 부여 및 원-핫 인코딩) (0) | 2020.07.31 |
---|---|
TensorFlow 텐서플로우를 이용한 딥러닝 (0) | 2020.07.31 |
[scikit-learn 라이브러리] KMeans (K-Means) (0) | 2020.07.31 |
[scikit-learn 라이브러리] PCA를 사용한 차원축소 (0) | 2020.07.31 |
단층 퍼셉트론 - 선택 분류 구현 (0) | 2020.07.30 |