Programming/python-numpy 2

Tensorflow, Numpy - squeeze()와 flatten()의 차이

Tensorflow(Keras)에서는 다양한 연산을 해줄 수 있는함수들을 Layer의 형태로 제공해주고 있다. (ex. Dense, Convolution, Pooling,,,) 어떤 값들이 Layer를 통해서 나오는 Output은 텐서 형태로 그 결과물에 대해 추가적인 변형을 주고싶을 때는 해당 객체를 numpy형태로 변환해주어야한다. 그 과정은 아래의 MaxPooling2D 레이어를 거친 결과물로 예시를 들어 코드를 작성한 것에서 pooled_max.numpy()부분이다. import numpy as np import tensorflow as tf from tensorflow.keras.layers import MaxPooling2D N, n_H, n_W, n_C = 1, 5, 5, 1 f, s = 2..

3차원 텐서 전치에 대해서 알아보자. (tensorflow, numpy transpose)

2차원 행렬은 원소의 값들에 대해 행과 열의 위치를 바꾸는 것으로 전치를 할 수 있다. 2차원 행렬의 전치는 단순하지만 3차원 텐서부터는 전치되는 값이 헷갈리기 시작한다. 따라서, 해당 글에서는 3차원 텐서를 전치시킬 수 있는 경우들과 전치가 어떻게 되는지 쉽게 설명해보려하였다. 먼저, tensorflow로 샘플데이터를 만들어 주고, 3차원 텐서를 numpy로 형태로 만들어주었다.import numpy as np import tensorflow as tf tensor_3d = tf.random.uniform(minval=0, maxval=10, shape=(1,2,3,4), dtype=tf.int32) tensor_3d = tensor_3d.numpy().squeeze() print(f"shape : {..