python
tensorflow의 tf.concat에 대해서 알아보기(axis = 0, 1에 따른 변화)
이수진의 블로그
2019. 3. 18. 14:24
반응형
728x170
텐서플로 책을 보다가 햇갈려서 정리하는 부분이다
바로 concat인데
이해를 했다가도 햇갈리고 그런다
특히 axis 부분..
axis = 0이냐
axis = 1이냐
axis = -1이냐
3차원이면 axis = 2까지..
tf.concat을 정리하면서 다시 정리한다
https://www.tensorflow.org/api_docs/python/tf/concat
참고
tensorflow를 import하고 t1, t2가 저렇게 있다고 가정하자
모양은 (2, 3)이 된다
즉, 바깥쪽에 2개가 있고 안쪽에 3개씩 있는 2차원 매트릭스이다.
이제 이것을 concat할 것이다
tf.concat([t1, t2], axis = 0)을 하게 되면 결과는 아래와 같이
[[1,2,3], [4,5,6], [7,8,9], [10,11,12]로 나온다
그리고 tf.concat([t1, t2], axis = 1)을 하게 되면
[[1,2,3,7,8,9], [4,5,6,10,11,12]]가 나오게 된다
왜냐하면 axis = 0이면 가장 바깥쪽을 기준으로 concat을 적용시키기 때문이다.
가장 바깥쪽이면 행렬의 '행' 기준이라고 생각하면 된다
axis = 1이면 '열' 기준이라고 생각하면 편하다
안쪽에 있는 데이터(여기 데이터 모양에선 실제 값)를 기준으로 진행한다
그림으로 보면 편하다
현재 메트릭스가 위와 같이 되어 있는 상태이다
여기서 axis = 0으로 concat을 하게 되면
이렇게 되는 것이다
하지만 concat을 axis = 1로 하게 되면
이렇게 되는 것이다!
반응형
그리드형