Home › Fóruns › Fórum Deep Learning com Python de A a Z: O Curso Completo › Keras não funcionou
- Este tópico contém 13 respostas, 2 vozes e foi atualizado pela última vez 7 meses atrás por Denny Ceccon.
- AutorPosts
- 12 de junho de 2024 às 19:08 #45402
Boa noite estou enfrentando o mesmo problema, porém já atualizei com o código disponibilizado no Drive:
import pandas as pd
import tensorflow as tf
#from tensorflow.keras import models
#from tensorflow.keras import layers
from tensorflow.keras.wrappers.scikit_learn import KerasClassifier # atualizado: tensorflow==2.0.0-beta1
from sklearn.model_selection import cross_val_score
from tensorflow.keras import backend as k # atualizado: tensorflow==2.0.0-beta1
from tensorflow.keras.models import Sequential # atualizado: tensorflow==2.0.0-beta1Testei no Spyder e recebi: “o module named ‘tensorflow.keras.wrappers’”
Testei no VS Code utlizando a extensão do Jupyter e recebi: “ModuleNotFoundError Traceback (most recent call last) Cell In[16], line 1 —-> 1 from keras.wrappers.scikit_learn import KerasClassifier # atualizado: tensorflow==2.0.0-beta1, ModuleNotFoundError: No module named ‘keras.wrappers”
Testei no Colab: “—-> 5 from tensorflow.keras.wrappers.scikit_learn import KerasClassifier # atualizado: tensorflow==2.0.0-beta1”
Por gentileza, poderiam validar se o código está de fato correto e atualizado?
12 de junho de 2024 às 23:01 #45403Resolvido pessoal, a solução foi usar:
from scikeras.wrappers import KerasClassifierporém surgiu um outro problema, quando tento executar o grid_search:
ValueError Traceback (most recent call last) Cell In[111], line 5 1 grid_search = GridSearchCV(estimator = classificador, 2 param_grid = parametros, 3 scoring = 'accuracy', 4 cv = 5) ----> 5 grid_search = grid_search.fit(previsores, classe) 6 melhores_parametros = grid_search.best_params_ 7 melhor_precisao = grid_search.best_score_ File c:\Users\samue\AppData\Local\Programs\Python\Python312\Lib\site-packages\sklearn\base.py:1473, in _fit_context.<locals>.decorator.<locals>.wrapper(estimator, *args, **kwargs) 1466 estimator._validate_params() 1468 with config_context( 1469 skip_parameter_validation=( 1470 prefer_skip_nested_validation or global_skip_validation 1471 ) 1472 ): -> 1473 return fit_method(estimator, *args, **kwargs) File c:\Users\samue\AppData\Local\Programs\Python\Python312\Lib\site-packages\sklearn\model_selection\_search.py:968, in BaseSearchCV.fit(self, X, y, **params) 962 results = self._format_results( 963 all_candidate_params, n_splits, all_out, all_more_results 964 ) 966 return results
13 de junho de 2024 às 12:05 #45408Olá Samuel,
Nós estamos preparando uma atualização desse curso, por enquanto você pode mudar todos os parâmetros relacionados ao modelo para o nome
model__<parametro>
. Exemplo:model__batch_size
. Veja que são 2 underlines.13 de junho de 2024 às 19:03 #45411Boa noite Denny, consegui colocar os parametros em snake_case como você recomendou e de fato essa linha de código rodou corretamente, porém quando passo para o grid_search ainda estou enfrentando o mesmo problema. Abaixo deixei o print com o erro que estou recebendo.
13 de junho de 2024 às 19:11 #45412Aqui está as outras linhas de código que rodaram normalmente:
14 de junho de 2024 às 08:43 #45415Você precisa escrever
model
mesmo, nãoclassificador
, e botar dois underscores depois demodel
. Uma correção de minha parte: só nos parâmetros que a funçãocriarRede
aceita:parametros = { 'batch_size': [10, 30], 'epochs': [50, 100], 'model__optimizer': ['adam', 'sgd'], 'model__loss': ['binary_crossentropy', 'hinge'], 'model__kernel_initializer': ['random_uniform', 'normal'], 'model__activation': ['relu', 'tanh'], 'model__neurons': [16, 8] }
- Esta resposta foi modificada 7 meses atrás por Denny Ceccon.
- Esta resposta foi modificada 7 meses atrás por Denny Ceccon.
- Esta resposta foi modificada 7 meses atrás por Denny Ceccon.
- Esta resposta foi modificada 7 meses atrás por Denny Ceccon.
14 de junho de 2024 às 22:07 #45424Boa noite Denny, alterei o algoritimo dos parametros conforme você recomendou porém retornou outro erro:
15 de junho de 2024 às 08:55 #45426Isso não é um erro, é só um aviso que o parâmetro
build_fn
vai ser substituído pormodel
em uma próxima versão da biblioteca.15 de junho de 2024 às 09:20 #45427Bom dia Denny, realmente neste print acabou não mostrando o erro, porém abaixo desse ultimo print que mandei tem esse aqui, que esta retornando erro:
15 de junho de 2024 às 11:50 #45428Acho que é porque na sua definição de
criarRede
, você escreveuloos
. Corrija paraloss
.16 de junho de 2024 às 15:22 #45434Boa tarde Denny, fiz a alteração aqui e funcionou, porém eu tinha deixado como loos pois na aula estava como “loos” também, estranho, mas deu certo agora hahaha, o único problema é que o programa começou a rodar infinitamente, rodou por quase 2hrs e tive que interromper, os paramentros são os mesmos dos prints que já mandei anteriormente, sabe me dizer o que poderia estar causando isso? Obrigado.
17 de junho de 2024 às 08:38 #45437O nome do parâmetro da função
criarRede
precisa ser igual ao do dicionárioparametros
, então é só deixar igual em ambos.A demora é porque este tuning está usando 7 parâmetros com 2 opções cada, isso resulta em 2^7 = 128 testes, mas como ainda está usando 5 folds na validação cruzada, são 128 x 5 = 640 testes. É de se esperar que demore mesmo. Por isso, às vezes nós fazemos um tuning menor, com menos parâmetros, e vamos adicionando um parâmetro novo por vez.
17 de junho de 2024 às 20:01 #45442Boa noite Denny, sensacional! Agora faz sentido, eu vou salvar os parametros atuais primeiro como um backup e vou rodando testes adicionaod pouco a pouco, mas deu pra entender certinho, muito obrigado Denny!
18 de junho de 2024 às 07:51 #45444À disposição!
- AutorPosts
- Você deve fazer login para responder a este tópico.