Home › Forums › Fórum Deep Learning com Python de A a Z: O Curso Completo › Keras não funcionou
- This topic has 13 replies, 2 voices, and was last updated 1 year, 11 months ago by
Denny Ceccon.
- AuthorPosts
- 12 de junho de 2024 at 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 at 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 at 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 at 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 at 19:11 #45412Aqui está as outras linhas de código que rodaram normalmente:
14 de junho de 2024 at 08:43 #45415Você precisa escrever
modelmesmo, nãoclassificador, e botar dois underscores depois demodel. Uma correção de minha parte: só nos parâmetros que a funçãocriarRedeaceita: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] }- This reply was modified 1 year, 11 months ago by
Denny Ceccon.
- This reply was modified 1 year, 11 months ago by
Denny Ceccon.
- This reply was modified 1 year, 11 months ago by
Denny Ceccon.
- This reply was modified 1 year, 11 months ago by
Denny Ceccon.
14 de junho de 2024 at 22:07 #45424Boa noite Denny, alterei o algoritimo dos parametros conforme você recomendou porém retornou outro erro:
15 de junho de 2024 at 08:55 #45426Isso não é um erro, é só um aviso que o parâmetro
build_fnvai ser substituído pormodelem uma próxima versão da biblioteca.15 de junho de 2024 at 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 at 11:50 #45428Acho que é porque na sua definição de
criarRede, você escreveuloos. Corrija paraloss.16 de junho de 2024 at 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 at 08:38 #45437O nome do parâmetro da função
criarRedeprecisa 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 at 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 at 07:51 #45444À disposição!
- This reply was modified 1 year, 11 months ago by
- AuthorPosts
- You must be logged in to reply to this topic.
