Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- hidden_units = (1024,2048)
- embedding_size = 50
- def create_model(num_filters, kernel_size):
- #Cria as entradas pra cada variavel categorica
- servico_input = Input(shape=(1,), name='servico_input')
- tipo_guia_input = Input(shape=(1,), name='tipo_guia')
- carater_atendimento_input = Input(shape=(1,), name='carater_atendimento')
- tipo_atendimento_input = Input(shape=(1,), name='tipo_atendimento')
- tipo_item_input = Input(shape=(1,), name='tipo_item')
- desc_tabela_input = Input(shape=(1,), name='desc_tabela')
- texto_input = Input(shape=(100,), dtype='int32', name='main_input')
- lista_entradas = [servico_input,tipo_guia_input, carater_atendimento_input, tipo_atendimento_input, tipo_item_input, desc_tabela_input, texto_input]
- #Camadas de embedding
- servico_embedded = Embedding(int(servicoQTDE), embedding_size,
- input_length=1, name='servico_embedding')(servico_input)
- tipo_guia_embedded = Embedding(int(tipo_guiaQTDE), 3,
- input_length=1, name='tipo_guia_embedding')(tipo_guia_input)
- carater_atendimento_embedded = Embedding(int(carater_atendimentoQTDE), 2,
- input_length=1, name='carater_atendimento_embedding')(carater_atendimento_input)
- tipo_atendimento_embedded = Embedding(int(tipo_atendimentoQTDE), 9,
- input_length=1, name='tipo_atendimento_embedding')(tipo_atendimento_input)
- tipo_item_embedded = Embedding(int(tipo_itemQTDE), 4,
- input_length=1, name='tipo_item_embedding')(tipo_item_input)
- desc_tabela_embedded = Embedding(int(desc_tabelaQTDE), 13,
- input_length=1, name='desc_tabela_embedding')(desc_tabela_input)
- #Rede Convolucional para a entrada de texto
- texto_embedded = Embedding(vocab_size+1, 150, input_length=maxlen, name='texto_embedding')(texto_input)
- convolucional = Conv1D(num_filters, kernel_size, activation='relu')(texto_embedded)
- gap = MaxPooling1D()(convolucional)
- final = Flatten()(gap)
- # Concatena os embeddings e remove dimensoes extras
- concatenated = Concatenate()([servico_embedded, tipo_guia_embedded, carater_atendimento_embedded, tipo_atendimento_embedded, tipo_item_embedded, desc_tabela_embedded])
- flatt = Flatten()(concatenated)
- out = Concatenate()([flatt, final])
- # Adiciona camadas ocultas
- for n_hidden in hidden_units:
- tt = Dense(n_hidden, activation='relu')(out)
- out = Dropout(0.4)(tt)
- # Adiciona camada de predicao
- out = Dense(labelsQTDE, activation='softmax', name='prediction')(out)
- model = Model(
- inputs = lista_entradas,
- outputs = out,
- )
- model.compile(
- optimizer='adam',
- loss='categorical_crossentropy',
- metrics=['accuracy'],
- )
- return model
- param_grid = dict(num_filters=[32, 64, 128, 256, 512],
- kernel_size=[3, 5, 7, 11])
- from keras.wrappers.scikit_learn import KerasClassifier
- from sklearn.model_selection import RandomizedSearchCV
- # Main settings
- epochs = 5
- embedding_dim = 50
- maxlen = 100
- output_file = 'output.txt'
- model = KerasClassifier(build_fn=create_model,
- epochs=epochs, batch_size=10,
- verbose=False)
- grid = RandomizedSearchCV(estimator=model, param_distributions=param_grid,
- cv=4, verbose=1, n_iter=5)
- grid_result = grid.fit([X_train['servicoindice'], X_train['tipo_guiaIndice'], X_train['carater_atendimentoIndice'], X_train['tipo_atendimentoIndice'], X_train['tipo_itemIndice'], X_train['desc_tabelaIndice'], texto_treino],Y_train)
- ValueError: Found input variables with inconsistent numbers of samples: [7, 187500]
Add Comment
Please, Sign In to add comment