딥러닝, CNN Depth Channel

Поделиться
HTML-код
  • Опубликовано: 11 янв 2025
  • code : github.com/NoC...
    유료강의 :
    / @코드없는프로그래밍

Комментарии •

  • @박진우-x5z
    @박진우-x5z 8 месяцев назад

    n개의 채널을 가진 데이터에 컨볼루션을 적용하려면 무조건 n의 깊이를 가진 커널을 사용해야하는건가요?
    예를들어 n1 * 12 * 12 의 피쳐맵이 나왔는데 이것을이용하여 n2 * 8 * 8 의 피쳐맵을 만들려면 깊이가 n1인 5 * 5 커널을 n2개 사용해야 하는게 맞나요?

    • @코드없는프로그래밍
      @코드없는프로그래밍  8 месяцев назад

      아니요 상관없습니다. cnn은 input의 모든채널을 고려해서 새로운 채널을 만듭니다. 때문에 independent 하게 골라도됩니다.
      극단적으로 1개의 채널에서 100개의 채널을 만드는 cnn도 가능하고,
      100개의 채널에서 1개의 채널로 줄이는 cnn 도 가능합니다.

    • @박진우-x5z
      @박진우-x5z 8 месяцев назад

      @@코드없는프로그래밍 질문에 답변해주셔서 감사합니다.
      질문을 정리하자면 이전 레이어의 output과 현재 레이어의 input이 같아야 하는 질문 이었습니다.
      답변 해주신 것을 요약하면 1개의 채널에서 100개의 채널을 만드는 컨볼루션 레이어를 만들려면 input 에 1을 주고 output에 100을 주면 된다는 말씀같네요.
      사실 제가 궁금했던 것은 '100개의 채널에서 1개의 채널로 줄이는 cnn을 만들때 중간에 사용되는 커널이 100의 깊이를 갖고 있어야만 하는것인가?' 였고,
      이표현과 코드상에서의 ' 컨볼루션 레이어 input 에 100을 주고 output에 1을 주면 된다' 이 표현이 같은지도 궁금했습니다.
      정리하면
      -> 커널 깊이가 코드상에서의 컨볼루션 파라미터 input 과 같은지?
      입니다.

    • @ho0ou64
      @ho0ou64 3 дня назад

      ​@@박진우-x5z n1*12*12인 이전 피처맵에서 1*5*5짜리 커널 하나를 골라 컨볼루션 했다면 컨볼루션 연산은 피처맵과 커널의 깊이의 곱인 n1*1번 하게 됩니다. 그 결과물 n1개를 가중합이든 뭐든 사용해서 하나로 압축한 것이 다음 피처맵인 1*8*8 이 되는 거구요. 어차피 결과물이 얼마나 많든 간 가중합 같은 연산을 이용해 결과 깊이를 1로 줄일 것이기 때문에 답변에 '모든 채널을 고려해서 새로운 채널을 만든다'는게 이 말인 것 같아요. 만약 커널 깊이 2짜리를 고르면 컨볼루션 연산 개수는 n1*2개가 되지만 결국엔 깊이 1이었을 때처럼 결과 피처맵은 1*8*8 로 줄어들 것이기 때문에요.