Как я могу найти свою категориальную форму ввода? - PullRequest
0 голосов
/ 08 марта 2020

Я построил модель нейронной сети с 2 входами. Я попытался преобразовать две переменные в категориальные. Когда я запустил программу, я получил следующую ошибку: ValueError: Ошибка при проверке ввода: ожидал, что meta_input будет иметь форму (2,), но получил массив с формой (1109,)

Как найти форму для использования ? ниже часть моей программы:

input_encoder = MultiColumnLabelEncoder()
train_X2=df_train[['var2','var3']]
valid_X2 =df_valid[['var2','var3']]
input_encoder.fit(train_X2)
train_X2=input_encoder.transform(train_X2)
valid_X2=input_encoder.transform(valid_X2)
onehot = OneHotEncoder(sparse=False,categories='auto')
onehot.fit(train_X2)
train _seq=onehot.transform(train_X2)
valid _seq =onehot.transform(valid_X2)

input_text = Input(shape=(200,), dtype='int32', name='input_text')
meta_input = Input(shape=(2,), name='meta_input')
embedding = Embedding(input_dim=len(tokenizer.word_index) + 1, 
              output_dim=300, 
              input_length=200)(input_text)

lstm = Bidirectional(LSTM(units=128, 
                  dropout=0.5, 
                  recurrent_dropout=0.5, 
                  return_sequences=True),
             merge_mode='concat')(embedding)
pool = GlobalMaxPooling1D()(lstm)
dropout = Dropout(0.5)(pool)
text_output = Dense(n_codes, activation='sigmoid', name='aux_output')(dropout)

output = concatenate([text_output, meta_input])
output = Dense(n_codes, activation='relu')(output)

main_output = Dense(n_codes, activation='softmax', name='main_output')(output)

model = Model(inputs=[input_text,meta_input], outputs=[output])
optimer = Adam(lr=.001)
model.compile(optimizer='adam', 
      loss='binary_crossentropy', 
      metrics=['accuracy'])

model.summary()
model.fit([X1_train, X2_train], [y_train],
  validation_data=([X1_valid,X2_valid], [y_valid]),
  batch_size=64, epochs=20, verbose=1)

1 Ответ

0 голосов
/ 08 марта 2020

Я решил проблему с помощью: "shape = X2_train.shape [1]"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...