본문 바로가기

PROJECT

[딥러닝+TensorFlow] Tensor Manipulation

참고 동영상:https://youtu.be/ZYX0FaqUeN4

 

▶Simple array and slicing

   1차원 배열

   -1의 의미 : 제일 마지막을 의미

   [4:-1] : 5번째부터 마지막 숫자 바로 앞까지

   [:2] : (0)처음부터 2번째앞까지

   [3:] : 3번째뒤부터 끝까지

▶2D array

shape --> (행, 열)

▶Shape,Rank,Axis

shape

배열의 형태를 알려준다. 

 1차원 : 배열 원소가 4개 라서 4

 2차원 뒤에 2는 원소의 개수 앞에 2는 제일 안쪽 대괄호를 나가서 그다음 대괄호안에 배열 갯수 

 4차원 : 가로를 보면 맨 마지막 4는 배열들의 요소의 개수이다. 그다음 3은 제일 안쪽 대괄호를 나가서 그 다음 대괄호들이 그 다음 대괄호에 몇개로 묶여있는지 보면 3이라는 것을 알 수있다. 그 다음 2와 1도 이런식으로 찾아 나가면 된다.

 Axis : 축을 뜻한다. 아래그림을 보면 4개의 축이 있다고 보면된다. 축은 0부터 시작해서 밑의 Axis =3이 된다.

Axis =-1은 가장 안쪽이라고 보면된다.

Rank : 배열이 몇차원인지 말한다. 밑에 그림은 4차원임으로 rank는 4이다.

▶Matmul Vs muliply

matrix 곱을 하면 shape가 맞아야한다. 아래그림의 shape는 matrix1 = (2,2)이고matrix1 = (2,1) 이다. 이것처럼 처음 배열의 2번째와 2번째 배열의 처음의 숫자가 같아야한다. 만약 그렇지 않을 경우 오류의 결과를 얻을 수 있다.

 

▶ Reduce mean

행렬에서 여러값이 있을때 줄여주는 역할, axis는 축에 따라서 평균을 내어준다.

axis=0일때는 1과 3 / 2와 4의 평균을 내어줌

axis=1일때는 1과2 / 3과 4의 평균을 내어줌

reduce_sum도 마찬가지고 축을 기준으로 합을 구할 수 있다.

▶Argmax

축을 기준으로 큰의 위치를 반환

▶Reshape

배열의 형태를 원해는데로 변환할 수 있다. 보통 원소의 갯수는 건드리지않는다.

+ squeeze , expand

▶One hot

 기본값으로 인덱스 해당하는 위치에 1, 그렇지 않으면 0으로 표시. 아래와 같이 0번째는 0번째원소가 2번째는 1번째원소가 1으로 바뀌었다.

▶Casting

주어진 tensor를 새로운 형태로 캐스팅 하는데 사용한다.

▶Stack

   말그대로 주어진 배열을 스택형식으로 쌓는 것이다. axis를 주면 그것에 맞춰서 쌓을 수도 있다.

▶One and Zeros like

shape에 0과 1을 줄 수 있다.

▶Zip

복수개의 Tensor를 가지고 있으면 한번에 묶어 처리할 수 있게한다.