이걸 어떤 형태의 for문으로 연산을 해줘야할지 머리가 돌아가다 못해 소용돌이 치는 기분이 들어서.. 올립니다. <div><br></div> <div><div>for(iterator = 0; iterator < img_rows; iterator++) // img_rows = 28</div> <div>{</div> <div><span style="white-space:pre;"> </span>for(j_iterator = 0; j_iterator < img_cols; j_iterator++) // img_cols = 28</div> <div><span style="white-space:pre;"> </span>{</div> <div><span style="white-space:pre;"> </span>Activation += input_shape[j_iterator][0] * filter[0][a] + input_shape[j_iterator][1] * filter[1][a] + input_shape[j_iterator][2] * filter[2][a];</div> <div><br></div> <div><span style="white-space:pre;"> </span>output_layer[iterator][j_iterator] = Activationrelu(Activation);</div> <div><span style="white-space:pre;"> </span></div> <div><span style="white-space:pre;"> </span>Activation = 0;</div> <div><span style="white-space:pre;"> </span>a++;</div> <div><span style="white-space:pre;"> </span></div> <div><span style="white-space:pre;"> </span>printf("i : %d j : %d ", iterator, j_iterator);</div> <div><span style="white-space:pre;"> </span></div> <div><span style="white-space:pre;"> </span>if(a == nb_conv) // nb_conv = 3</div> <div><span style="white-space:pre;"> </span>{</div> <div><span style="white-space:pre;"> </span>a = 0;</div> <div><span style="white-space:pre;"> </span>}</div> <div><span style="white-space:pre;"> </span>}</div> <div>}</div></div> <div><br></div> <div><br></div> <div>이런 형태의 for문으로 구성되어 있는데요. (완성된 형태가 아닙니다 저 Activation에 대입되는 부분들이 잘못되어 있어요)</div> <div><br></div> <div>여기서 input_shape는 28x28 행렬이며 filter는 3x3 행렬입니다.</div> <div><br></div> <div><p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;">28x28짜리 행렬 (input_shape) 을 펼쳐놓으면 아래와 같이 될텐데</p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;"><br></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;">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</p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;"><span style="font-size:13.3333px;">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</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;"><span style="font-size:13.3333px;">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</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;"><span style="font-size:13.3333px;">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</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;"><span style="font-size:13.3333px;">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</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;"><span style="font-size:13.3333px;">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</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;"><span style="font-size:13.3333px;">...</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;"><span style="font-size:13.3333px;">...</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;"><span style="font-size:13.3333px;">...</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;">...</p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;"><br></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;"><br></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;">얘를 3x3 행렬 (filter) 로 하나씩 훑으면서 곱셈연산해주고 값을 다 더한것을 28x28 행렬의 각 위치에 넣는거에요.</p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;"><br></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;">그럼 이 28x28 행렬의 크기는 줄어들겠죠.. 3x3 행렬이 훑는다하면 총 9개 위치에 있는 값들이 사라지고 0x0 부터 값이 채워지니까요.</p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;"><br></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;">순서대로 표현하자면</p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;"><br></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;"><br></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><b>0 1 2</b> 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</p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;"><b>0 1 2</b> 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</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;"><b>0 1 2</b> 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</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;">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</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;">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</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;">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</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;"><br></span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;">28x28 행렬의 [0 1 2 </p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"> 0 1 2 x <span style="font-size:13.3333px;">3x3 행렬 (filter)</span><span style="font-size:13.3333px;"> <- 곱셈연산후 나온 값들을 모두 합쳐 28x28행렬의 0,0 위치에 삽입</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"> 0 1 2] </p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;"><br></span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><br></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;">0 <b>1 2 3</b> 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27</p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;">0 <b>1 2 3</b> 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;">0 <b>1 2 3</b> 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;">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</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;">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</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;">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</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;"><br></span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;">28x28 행렬의 [1 2 3 </p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"> 1 2 3 x <span style="font-size:13.3333px;">3x3 행렬</span> (filter) <- 곱셈연산후 나온 값들을 모두 합쳐 28x28행렬의 0,1 위치에 삽입</p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"> 1 2 3] </p> <div style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13px;"><span style="font-size:13.3333px;"><br></span></div> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;">0 1 <b>2 3 4</b> 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27</p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;">0 1 <b>2 3 4</b> 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;">0 1 <b>2 3 4</b> 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;">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</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;">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</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;">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</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;"><br></span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;">28x28 행렬의 [2 3 4 </p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"> 2 3 4 x <span style="font-size:13.3333px;">3x3 행렬(filter)</span><span style="font-size:13.3333px;"> <- 곱셈연산후 나온 값들을 모두 합쳐 28x28행렬의 0,2 위치에 삽입</span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"> 2 3 4] </p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;"><br></span></p> <p style="padding:0px;margin:0px;color:#1e1e1e;font-family:Gulim, '굴림';font-size:13.3333px;"><span style="font-size:13.3333px;">이런 식으로 쭉 말이죠.</span></p></div> <div><br></div> <div><br></div> <div>이걸 저 배열들의 인덱스를 어떤식으로 조정해줘서 연산을 진행해야할지 모르겠습니다. 도움을 부탁드립니다 ㅠ_ㅠ</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.