• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Python, SQL 게시판 cnn con1D 에서 dimension 에러 관련 문의드립니다.

cnn con1D 에서 dimension 에러 관련 문의드립니다.

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #6715

    David
    참가자

    안녕하세요 딥러닝 강좌를 수강중인 학생입니다.

    딥러닝 실전 1강 대학원 합격률 예측 모델에 covolution 1D 레이어와 maxpooling 레이어를 더해서 만들어보고 있는데요

    우선 코드는 기존 강좌에서 사용하신대로 아래와같이 pandas로 for문 돌려서 list 만들어주었구요

    for i, rows in data.iterrows():
        data_x.append([rows['gre'], rows['gpa'], rows['rank']])

    이후에 텐서플로 sequential 로 레이어를 만들 때, 아래처럼 dense layer 위에 conv1D 와 maxpooling 레이어를 추가해보았는데요

    model = tf.keras.models.Sequential([
    tf.keras.layers.Conv1D(32, 3, activation='tanh', input_shape=(3, )),
    tf.keras.layers.MaxPooling1D(2),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(64, activation='tanh'), 
    tf.keras.layers.Dense(1, activation='sigmoid'),
    ])

    아래처럼 inputshape의 dimension이 안맞다고 에러 메시지가 나오고 있습니다.

    ValueError: Input 0 of layer conv1d_2 is incompatible with the layer: : expected min_ndim=3, found ndim=2. Full shape received: (None, 3)

    stackoverflow에서도 비슷한 문제로 질문한 사람들이 많은 것 같은데 주로 들린 답변들은 conv1D 쉐입은 3D 형태로 만들어주라는 답변이 있는 것 같았습니다. 혹시 이 에러를 잡기 위해서 어떻게 진행해야할지 알 수 있을까요?

    그리고 사용한 csv 파일은 gpascore.csv 파일을 그대로 사용하였습니다.

    답변 부탁드리겠습니다. 감사합니다.

    #6716

    codingapple
    키 마스터

    일단 conv1d 레이어는 오디오나 글자 데이터들을 다룰 때 추천하는 레이어라 위 문제푸는데는 약간 안맞을 순 있습니다 

    conv1d 레이어는 shape이 (어쩌구, 저쩌구, 몇개) 이런 3차원 데이터를 입력해야합니다.

    근데 위 문제에서 다루고 있는 데이터는 [ [성적1, 성적2, 대학등수], [성적1, 성적2, 대학등수] ...  ]이런 2차원 데이터기 때문에

    강제로 3차원으로 늘리거나 그러시면 되는데 마땅히 그럴 방법이 안보이기 때문에 다른 레이어를 쓰거나 Dense만 쓰는걸 추천드립니다.  

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠