게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C] 행렬연산 질문좀 드립니다
게시물ID : programmer_21058짧은주소 복사하기
작성자 : 훗날닭집사장
추천 : 0
조회수 : 458회
댓글수 : 2개
등록시간 : 2017/07/20 10:02:25
옵션
  • 본인삭제금지
28x28짜리 행렬, 3x3짜리 행렬이 있어요.

제가 짜려는건

28x28짜리 행렬 (배열) 을 펼쳐놓으면 아래와 같이 될텐데

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
...
...
...
...


얘를 3x3 행렬로 하나씩 훑으면서 곱셈연산해주고 값을 다 더한것을 28x28 행렬의 각 위치에 넣는거에요.

그럼 이 28x28 행렬의 크기는 줄어들겠죠.. 3x3 행렬이 훑는다하면 총 9개 위치에 있는 값들이 사라지고 0x0 부터 값이 채워지니까요.

순서대로 표현하자면


0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

28x28 행렬의 [0 1 2          3x3 행렬의 [0 1 2 
                0 1 2     x                   0 1 2      <- 곱셈연산후 나온 값들을 모두 합쳐 28x28행렬의 0,0 위치에 삽입
                0 1 2]                       0 1 2] 


0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

28x28 행렬의 [1 2 3          3x3 행렬의 [1 2 3 
                1 2 3     x                  1 2 3      <- 곱셈연산후 나온 값들을 모두 합쳐 28x28행렬의 0,1 위치에 삽입
                1 2 3]                       1 2 3] 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

28x28 행렬의 [2 3 4          3x3 행렬의 [2 3 4 
                2 3 4     x                  2 3 4      <- 곱셈연산후 나온 값들을 모두 합쳐 28x28행렬의 0,2 위치에 삽입
                2 3 4]                       2 3 4] 

이런 식으로 쭉 말이죠.
 
여기서 본격적인 질문 드립니다!
 
 
 
http://colorscripter.com/s/vCrSZUV

count = 28 - 3 + 1 이고

input_shape가 28x28 행렬

weight이 3x3 행렬입니다

이 연산으로 두 행렬 곱연산은 했는데 곱연산해서 나온 3x3 매트릭스 다 더하는 연산을 하려면
 
 이 안에다 포문을 또 만들어줘야겠죠??
 
뭔가 코드가 복잡하고 더러워지는 것 같아서..
     
 
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호