keras의 마지막 레이어에 단일 변수를 입력하는 방법은 무엇입니까?

닐스 맥케이

Keras에서 피드 포워드 NN의 마지막 단계에 변수를 포함하려고합니다. 단 하나가 아닌 2 개의 열을 포함 할 때만 작동 할 수있는 것 같습니다. 내 코드 예제는 다음과 같습니다.

먼저 기본 입력 데이터 세트를 준비합니다.

import pandas as pd
from keras.models import Model
from keras.layers import Dense, Input, Concatenate
from keras.optimizers import Adam

iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
iris.loc[:, 'target'] = (iris.species == "setosa").map(int)
train_x = iris.drop(columns=['target', 'species'])
train_y = iris['target'].map(int)

그런 다음 train_x두 개의 개별 데이터 프레임으로 분리하고 다른 위치의 네트워크에 입력합니다.

feature_x = train_x.drop(columns='petal_width')
single_feature_x = train_x[['petal_width']]

input_x = Input(shape=feature_x.shape, name='feature_input')
single_input_x = Input(shape=single_feature_x.shape, name='single_input')

x = Dense(4, activation='relu')(input_x)

concat_feat = Concatenate(axis=-1, name='concat_fc')([x, single_input_x])

outputs = Dense(1, activation='sigmoid')(concat_feat)

model = Model(inputs=[input_x, single_input_x], outputs=outputs)
model.compile(loss='binary_crossentropy',
              optimizer=Adam(lr=0.001))

model.fit({'feature_input': feature_x,
           'single_input': single_feature_x},
          train_y,
          epochs=100,
          batch_size=512,
          verbose=1)

이로 인해 오류가 발생합니다.

ValueError: Shape must be rank 2 but is rank 3 for '{{node model_5/concat_fc/concat}} = ConcatV2[N=2, T=DT_FLOAT, Tidx=DT_INT32](model_5/dense_10/Relu, model_5/Cast_1, model_5/concat_fc/concat/axis)' with input shapes: [?,4], [?,1,1], [].

그러나이 한 줄을 추가하면 잘 실행됩니다.

feature_x = train_x.drop(columns='petal_width')
single_feature_x = train_x[['petal_width']]
# Add a constant column so the shape becomes (?,2)
single_feature_x.loc[:, 'constant'] = 0

두 개의 열에서는 작동하지만 하나에서는 작동하지 않는 이유는 무엇입니까?

마르코 셀리 아니

입력 형태를 정확하게 지정하기 만하면됩니다. 2D 데이터의 경우 희미한 특성 만 전달하면됩니다. 샘플 치수는 필요하지 않습니다. 입력을 다음과 같이 수정하기 만하면됩니다.

input_x = Input(shape=feature_x.shape[1], name='feature_input')
single_input_x = Input(shape=single_feature_x.shape[1], name='single_input')

여기 실행 노트북

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Python : 텍스트 파일에서 줄의 마지막 단어를 바꾸는 방법은 무엇입니까?

분류에서Dev

텍스트 파일에서 마지막 줄의 첫 단어를 읽는 방법은 무엇입니까?

분류에서Dev

Windows 배치 스크립트를 사용하여 파일의 마지막 줄에서 마지막 단어를 얻는 방법은 무엇입니까?

분류에서Dev

Java에서 마지막 단어의 길이를 찾는 방법은 무엇입니까?

분류에서Dev

Vim의 모든 줄에서 마지막 3 개 단어를 삭제하는 방법은 무엇입니까?

분류에서Dev

웹 사이트의 마지막 페이지까지 반복하고 .csv 파일에 행 단위로 데이터를 쓰는 방법은 무엇입니까?

분류에서Dev

JavaScript에서 단어 또는 문자열의 마지막 문자를 얻는 방법은 무엇입니까?

분류에서Dev

Java에서 문자열의 마지막 단어를 찾는 방법은 무엇입니까?

분류에서Dev

검색 패턴 파일을 사용하여 CSV의 마지막 열에서 정확한 단어를 검색하는 방법은 무엇입니까?

분류에서Dev

문자열의 마지막 문자를 변수에 할당하는 방법은 무엇입니까?

분류에서Dev

이전 문자열에 따라 특정 줄의 마지막 단어 앞에 문자열 NODATA를 삽입하는 방법은 무엇입니까?

분류에서Dev

노드 어레이의 마지막 노드를 제거하는 방법은 무엇입니까?

분류에서Dev

JavaScript의 마지막 문자를 단어로 바꾸는 방법은 무엇입니까?

분류에서Dev

PHP에서 GET 변수없이 URL의 마지막 세그먼트를 얻는 방법은 무엇입니까?

분류에서Dev

매월 마지막 수요일 이후의 금요일을 찾는 방법은 무엇입니까?

분류에서Dev

단일 노드의 에지를 계산하는 방법은 무엇입니까?

분류에서Dev

pdfbox를 사용하여 pdf의 마지막 페이지 왼쪽 하단에 디지털 서명 이미지를 적용하는 방법은 무엇입니까?

분류에서Dev

Keras에서 'TimeDistributed'레이어로 시퀀스를 출력하지 않는 방법은 무엇입니까?

분류에서Dev

열에서 첫 번째 단어와 마지막 단어를 삭제하는 방법은 무엇입니까?

분류에서Dev

SAS에서 단어의 마지막 부분을 가져 오기 위해 하위 문자열 함수를 사용하는 방법은 무엇입니까?

분류에서Dev

TSQL에서 문자열의 마지막 문자를 일치시키는 방법은 무엇입니까?

분류에서Dev

Java를 사용하여 입력 1의 단어를 사용하여 입력 2를 구성 할 수 있는지 확인하는 방법은 무엇입니까?

분류에서Dev

마지막 행과 동일한 값을 가진 마지막 행을 찾고 해당 행의 번호를 출력하는 방법은 무엇입니까?

분류에서Dev

단어가 문자열의 마지막 단어인지 확인하는 방법은 무엇입니까?

분류에서Dev

Javascript regex를 사용하여 가능한 단어 목록에서 단어의 마지막 발생을 얻는 방법은 무엇입니까?

분류에서Dev

결합 및 그룹화를 사용하여 레일에 마지막으로 입력 한 레코드 필드를 가져 오는 방법은 무엇입니까?

분류에서Dev

String의 마지막 단어 앞에 "\ n"을 추가하는 방법은 무엇입니까?

분류에서Dev

내 URL의 마지막 값을 PHP의 변수에 저장하는 방법은 무엇입니까?

분류에서Dev

파일 상태별로 마지막 행의 총 개수를 표시하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Python : 텍스트 파일에서 줄의 마지막 단어를 바꾸는 방법은 무엇입니까?

  2. 2

    텍스트 파일에서 마지막 줄의 첫 단어를 읽는 방법은 무엇입니까?

  3. 3

    Windows 배치 스크립트를 사용하여 파일의 마지막 줄에서 마지막 단어를 얻는 방법은 무엇입니까?

  4. 4

    Java에서 마지막 단어의 길이를 찾는 방법은 무엇입니까?

  5. 5

    Vim의 모든 줄에서 마지막 3 개 단어를 삭제하는 방법은 무엇입니까?

  6. 6

    웹 사이트의 마지막 페이지까지 반복하고 .csv 파일에 행 단위로 데이터를 쓰는 방법은 무엇입니까?

  7. 7

    JavaScript에서 단어 또는 문자열의 마지막 문자를 얻는 방법은 무엇입니까?

  8. 8

    Java에서 문자열의 마지막 단어를 찾는 방법은 무엇입니까?

  9. 9

    검색 패턴 파일을 사용하여 CSV의 마지막 열에서 정확한 단어를 검색하는 방법은 무엇입니까?

  10. 10

    문자열의 마지막 문자를 변수에 할당하는 방법은 무엇입니까?

  11. 11

    이전 문자열에 따라 특정 줄의 마지막 단어 앞에 문자열 NODATA를 삽입하는 방법은 무엇입니까?

  12. 12

    노드 어레이의 마지막 노드를 제거하는 방법은 무엇입니까?

  13. 13

    JavaScript의 마지막 문자를 단어로 바꾸는 방법은 무엇입니까?

  14. 14

    PHP에서 GET 변수없이 URL의 마지막 세그먼트를 얻는 방법은 무엇입니까?

  15. 15

    매월 마지막 수요일 이후의 금요일을 찾는 방법은 무엇입니까?

  16. 16

    단일 노드의 에지를 계산하는 방법은 무엇입니까?

  17. 17

    pdfbox를 사용하여 pdf의 마지막 페이지 왼쪽 하단에 디지털 서명 이미지를 적용하는 방법은 무엇입니까?

  18. 18

    Keras에서 'TimeDistributed'레이어로 시퀀스를 출력하지 않는 방법은 무엇입니까?

  19. 19

    열에서 첫 번째 단어와 마지막 단어를 삭제하는 방법은 무엇입니까?

  20. 20

    SAS에서 단어의 마지막 부분을 가져 오기 위해 하위 문자열 함수를 사용하는 방법은 무엇입니까?

  21. 21

    TSQL에서 문자열의 마지막 문자를 일치시키는 방법은 무엇입니까?

  22. 22

    Java를 사용하여 입력 1의 단어를 사용하여 입력 2를 구성 할 수 있는지 확인하는 방법은 무엇입니까?

  23. 23

    마지막 행과 동일한 값을 가진 마지막 행을 찾고 해당 행의 번호를 출력하는 방법은 무엇입니까?

  24. 24

    단어가 문자열의 마지막 단어인지 확인하는 방법은 무엇입니까?

  25. 25

    Javascript regex를 사용하여 가능한 단어 목록에서 단어의 마지막 발생을 얻는 방법은 무엇입니까?

  26. 26

    결합 및 그룹화를 사용하여 레일에 마지막으로 입력 한 레코드 필드를 가져 오는 방법은 무엇입니까?

  27. 27

    String의 마지막 단어 앞에 "\ n"을 추가하는 방법은 무엇입니까?

  28. 28

    내 URL의 마지막 값을 PHP의 변수에 저장하는 방법은 무엇입니까?

  29. 29

    파일 상태별로 마지막 행의 총 개수를 표시하는 방법은 무엇입니까?

뜨겁다태그

보관