Tensorflow 프레임 워크를 사용하다 보면 자주사용하는 코드를 발견하곤 하는데.
정확히 어떤 기능을 하는 지 알지못하고 함수이름으로 대충 짐작하고 넘어가는 경우가 많았다.
이번엔 이런 것들을 코딩하는 동안에 발견할때마다 정확한 기능을 정리해보고자 한다.
중요도 상관없이 계속해서 나열
*Dense , Embedding 같은 Layer 들은 제외하고 Tensor들을 다루는 함수들
expand_dims
- tf.expand_dims(input, axis)
용어 설명 :
(1) Expand : 확장하다, 넓히다
(2) dimension(dims) : 차원
해석 : 차원을 확장해주는 함수이다.
image = tf.zeros([10,10,3]) # TensorShape([10, 10, 3])
"0"으로 채워진 10행 3열 짜리가 10개 존재
이미지로 치면 : [height, width, channels]
tf.expand_dims(image, axis=0).shape.as_list()
결과 : [1, 10, 10, 3]
tf.expand_dims(image, axis=1).shape.as_list()
결과 : [10, 1, 10, 3]
정리 :
expand_dims 은 Tensor의 어떤 요소를 추가하는 것이 아니라 차원(dims)을 추가해주는 함수이다.
여기서 axis는 차원의 어떤 부분(position)에 추가해줄 것인지를 결정하는 매개변수라고 볼 수 있다.
expand_dims 는 인풋데이터의 차원과 아웃풋데이터의 차원이 다를 경우 차원을 서로 맞춰주기위해서 자주 사용된다.
squeeze
-tf.squeeze(input, axis=None)
용어설명 :
(1) squeeze : 짜내다 , 압착
해석 :
차원을 압축하는 함수이다. ( expand의 반대 )
example = tf.zeros([1,2,1,3,1,1])
axis 를 지정하지 않을 경우 ( default )
tf.shape(tf.squeeze(example))
결과: array([2, 3]
axis 를 지정할 경우 ( [2,4] )
tf.shape(tf.squeeze(example , [2,4]))
결과 : array([1, 2, 3, 1]
정리 : squeeze 함수는 차원을 줄여주는 함수이지만 크기가 1인 차원만 제거하는 함수이다.
axis 를 통해서 특정 위치에 있는 크기가 1인 차원만 제거할 수도있다.
reduce_sum
- tf.reduce_sum(x,axis)
용어 설명:
(1) Reduce : 줄이다
(2) Sum : 더하다
해석 :
특정 차원을 제거하고 합계를 구한다.
x = np.array([[1,1,1],[1,1,1]])
[[1, 1, 1],
[1, 1, 1]]
axis 값을 주지 않았을 경우 ( default ) 모든 값을 더함.
tf.reduce_sum(x).numpy()
[[1, 1, 1],
[1, 1, 1]]
결과 : 6
axis = 0 일경우 가로에 있는 값을 더함
tf.reduce_sum(x, 0).numpy()
[[1, 1, 1],
[1, 1, 1]]
결과 : [ 2 , 2 , 2 ]
axis = 1 일 경우 세로에 있는 값을 더함
tf.reduce_sum(x, 1).numpy()
[[1, 1, 1],
[1, 1, 1]]
결과 : [ 3 , 3 ]
정리 : reduce_sum 은 행렬들의 값을 합침으로써 차원을 줄이는 함수입니다.
axis는 줄일 치수입니다. None(기본값)인 경우 모든 치수를 줄입니다.
reduce_mean
- tf.reduce_mean(x)
용어 설명:
해석 :
결과 :
정리 :
stack
-tf.stack(x,axis)
용어 설명:
해석 :
결과 :
정리 :
argmax
-tf.argmax(x)
용어 설명:
해석 :
결과 :
정리 :
concat
- tf.concat(x,y,axis)
용어 설명:
해석 :
결과 :
정리 :
reshape
-tf.reshape(x,y)
용어 설명:
해석 :
결과 :
정리 :
cast
tf.cast(x, dtype)
용어 설명:
해석 :
결과 :
정리 :
logical_not
tf.math.logical_not(x)
용어 설명:
해석 :
결과 :
정리 :
equal
tf.math.equal(x,y)
용어 설명:
해석 :
결과 :
정리 :
'Machine learning > Deep Learning' 카테고리의 다른 글
[DeepLearning]. GPU 메모리와 배치사이즈(Batch_size)의 관계 (0) | 2021.09.16 |
---|---|
[PyTorch] . Tensorflow(텐서플로) PyTorch(파이토치) 차이점 비교 (0) | 2021.09.15 |
[Deep Learning] Weight Initialization(기울기 초기화), Xavier , He (0) | 2021.08.17 |
[Deep Learning] Activation Function ( 활성화 함수 ) - 비선형 함수(non linear function ) (0) | 2021.08.17 |
[Deep Learning] Activation Function ( 활성화 함수 ) - 2. 종류 (0) | 2021.01.31 |