(모두를 위한 딥러닝) Tensor Manipulation
[0.,1.,2.,3.,4.,5.,6.]
Rank : 몇차원 배열인지 = 1 (ndim) -> 처음 시작하는 [ (대괄호)의 수
Shape : 몇개의 엘리먼트가 있는지 = 7 -> [[1,2,3],[4,5,6]] => (2,3) 뒤에 내용부터 가장 낮은 단위.
[-1] 가장 마지막을 의미한다.
[2:5] : 2에서 5바로 앞까지 (2,3,4,)
[4:-1] : 4에서 가장 마지막 앞까지 (4,5)
[:2] => (0,1)
[3:] => (3,4,5,6)
Axis : 각 엘리먼트의 열 정보 , 바깥쪽 대괄호 부터 axis = 0 으로 명명하고
그 안쪽 대괄호는 axis=1 이런식으로 숫자가 커진다.
Reduce_mean 평균을 내서 여러개의 행열 값을 줄여주는 함수
tf.reduce_mean([1,2], axis =0).eval() => 1 axis 가 0 이므로 1만 가지고 평균을 구한것임.
x = [[1.,2.]
[3.,4.]]
tf.reduce_mean(x).eval() => 2.5 : 전체 다 더해서 4로 나눠 평균
tf.reduce_mean(x, axis=0).eval() => 2,3 : 1,3 의 평균 2 , 2,4의 평균 3
tf.reduce_mean(x, axis=1).eval() => 1.5,3.5 : 1,2 의 평균 1.5 , 3,4의 평균 3.5 (axis = -1 은 가장 안쪽의 값을 나타낸다.)
Reduce_sum 합계를 낸다 Reduce_mean 과 사용방식은 같다.
Argmax 가장 큰것의 위치를 나타낸다.
x=[[0, 1, 2],
[2, 1, 0]]
tf.argmax(x, axis=0).eval() => (1,0,0) 0,2 중에 2가 크므로 1 (0,1 인덱스중에 1) / 1,1 은 같으므로 0 / 2,0 중에 2가 크므로 0
Reshape 행열의 구성을 다시 재구성한다. 가장 안쪽의 값은 유지하도록 한다.
squeeze 값을 펼친다. [[0],[1],[2]] => [0,1,2]
expand_dims squeeze 와 반대의 의미로 보면되면 펼쳐져 있는것을 구조화한다.
tf.expand_dims([0,1,2], 1).eval() => [[0],[1],[2]]
ones_like(x) x 구조와 같지만 데이터는 모두 1로 채운다.
zeros_like(x) x 구조와 같지만 데이터는 모두 0로 채운다.