Guest User

Untitled

a guest
Jan 21st, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.60 KB | None | 0 0
  1. hidden_units = (1024,2048)
  2. embedding_size = 50
  3.  
  4. def create_model(num_filters, kernel_size):
  5. #Cria as entradas pra cada variavel categorica
  6. servico_input = Input(shape=(1,), name='servico_input')
  7. tipo_guia_input = Input(shape=(1,), name='tipo_guia')
  8. carater_atendimento_input = Input(shape=(1,), name='carater_atendimento')
  9. tipo_atendimento_input = Input(shape=(1,), name='tipo_atendimento')
  10. tipo_item_input = Input(shape=(1,), name='tipo_item')
  11. desc_tabela_input = Input(shape=(1,), name='desc_tabela')
  12. texto_input = Input(shape=(100,), dtype='int32', name='main_input')
  13.  
  14. lista_entradas = [servico_input,tipo_guia_input, carater_atendimento_input, tipo_atendimento_input, tipo_item_input, desc_tabela_input, texto_input]
  15.  
  16. #Camadas de embedding
  17.  
  18. servico_embedded = Embedding(int(servicoQTDE), embedding_size,
  19. input_length=1, name='servico_embedding')(servico_input)
  20. tipo_guia_embedded = Embedding(int(tipo_guiaQTDE), 3,
  21. input_length=1, name='tipo_guia_embedding')(tipo_guia_input)
  22. carater_atendimento_embedded = Embedding(int(carater_atendimentoQTDE), 2,
  23. input_length=1, name='carater_atendimento_embedding')(carater_atendimento_input)
  24. tipo_atendimento_embedded = Embedding(int(tipo_atendimentoQTDE), 9,
  25. input_length=1, name='tipo_atendimento_embedding')(tipo_atendimento_input)
  26. tipo_item_embedded = Embedding(int(tipo_itemQTDE), 4,
  27. input_length=1, name='tipo_item_embedding')(tipo_item_input)
  28. desc_tabela_embedded = Embedding(int(desc_tabelaQTDE), 13,
  29. input_length=1, name='desc_tabela_embedding')(desc_tabela_input)
  30.  
  31. #Rede Convolucional para a entrada de texto
  32.  
  33. texto_embedded = Embedding(vocab_size+1, 150, input_length=maxlen, name='texto_embedding')(texto_input)
  34. convolucional = Conv1D(num_filters, kernel_size, activation='relu')(texto_embedded)
  35. gap = MaxPooling1D()(convolucional)
  36. final = Flatten()(gap)
  37.  
  38.  
  39. # Concatena os embeddings e remove dimensoes extras
  40. concatenated = Concatenate()([servico_embedded, tipo_guia_embedded, carater_atendimento_embedded, tipo_atendimento_embedded, tipo_item_embedded, desc_tabela_embedded])
  41. flatt = Flatten()(concatenated)
  42.  
  43.  
  44. out = Concatenate()([flatt, final])
  45.  
  46. # Adiciona camadas ocultas
  47. for n_hidden in hidden_units:
  48. tt = Dense(n_hidden, activation='relu')(out)
  49. out = Dropout(0.4)(tt)
  50.  
  51. # Adiciona camada de predicao
  52. out = Dense(labelsQTDE, activation='softmax', name='prediction')(out)
  53.  
  54.  
  55. model = Model(
  56. inputs = lista_entradas,
  57. outputs = out,
  58. )
  59.  
  60. model.compile(
  61. optimizer='adam',
  62. loss='categorical_crossentropy',
  63. metrics=['accuracy'],
  64. )
  65.  
  66. return model
  67.  
  68. param_grid = dict(num_filters=[32, 64, 128, 256, 512],
  69. kernel_size=[3, 5, 7, 11])
  70.  
  71. from keras.wrappers.scikit_learn import KerasClassifier
  72. from sklearn.model_selection import RandomizedSearchCV
  73.  
  74. # Main settings
  75. epochs = 5
  76. embedding_dim = 50
  77. maxlen = 100
  78. output_file = 'output.txt'
  79.  
  80.  
  81. model = KerasClassifier(build_fn=create_model,
  82. epochs=epochs, batch_size=10,
  83. verbose=False)
  84. grid = RandomizedSearchCV(estimator=model, param_distributions=param_grid,
  85. cv=4, verbose=1, n_iter=5)
  86. 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)
  87.  
  88. ValueError: Found input variables with inconsistent numbers of samples: [7, 187500]
Add Comment
Please, Sign In to add comment