Respostas no Fórum
- AutorPosts
- 6 de julho de 2024 às 10:44 em resposta a: erro no k_means:’NoneType’ object has no attribute ‘split’ #45570
Olá André,
Executei o código do Colab disponibilizado no curso e não tive nenhum erro.
De nossa experiência, nesses casos geralmente o aluno esqueceu de rodar alguma célula anterior, ou modificou o código. Também é possível que você tenha tentado ler a base de dados no ambiente Python antes que o upload finalizasse.
Para o primeiro caso, te recomendo fazer uma cópia nova do notebook da aula e rodar desde o início. Para o segundo, verifique que a “rodinha” que aparece durante o upload sumiu antes de carregar os dados no ambiente Python.
Heitor, de novo eu sugiro tentar usar as LLMs, elas têm sido muito úteis para esse tipo de dúvida, eu coloquei sua pergunta no Gemini e ele respondeu assim: https://g.co/gemini/share/5a84b419b9da
Olá Heitor,
Desculpa, mas pela quantidade de alunos que atendemos, não temos como oferecer suporte para implementações pessoais, focamos apenas nos códigos apresentados em aula.
Uma sugestão: coloque seu código em uma LLM, como o ChatGPT ou o Gemini, e peça para eles te orientarem. Eu uso bastante no dia-a-dia, e geralmente as LLMs ajudam bastante.
Olá Geomar,
Eu não saberia te dizer imediatamente, mas o Gemini deu algumas sugestões, veja se consegue checar algumas delas e se resolve o problema.
Você recebeu um erro JSONDecodeError ao tentar obter dados usando a API do Facebook. Isso significa que o programa Python esperava uma resposta JSON válida da API do Facebook, mas recebeu algo que não pôde ser decodificado como JSON.
Existem algumas razões pelas quais isso pode acontecer:
- A API do Facebook retornou um erro: A API do Facebook pode ter retornado uma mensagem de erro em vez dos dados que você esperava. Isso pode ser devido a um problema com sua solicitação de API, como um token de acesso inválido ou um erro de permissão. Você pode verificar a mensagem de erro no response.text para ver o que deu errado.
- A resposta não é JSON válida: É possível que a resposta da API do Facebook não seja JSON válida. Isso pode ser devido a um bug na API do Facebook ou a um problema com sua conexão de rede. Você pode tentar validar a resposta JSON usando uma ferramenta como o JSONLint.
Aqui estão alguns passos que você pode seguir para solucionar o problema:
- Verifique a documentação da API do Facebook para o endpoint que você está tentando acessar para ter certeza de que está fazendo a solicitação corretamente.
- Verifique seu token de acesso da API para ter certeza de que é válido e possui as permissões apropriadas.
- Tente fazer a mesma solicitação usando uma ferramenta diferente, como curl ou Postman, para ver se obtém o mesmo erro.
Sem problemas Samuel. Sua prática de procurar ajuda sozinho vai te ajudar muito na sua carreira, mas se não tiver sucesso, por enquanto estamos aqui para ajudar!
Samuel, pra te ajudar eu vou adiantar o código atualizado do curso todo, ele ainda não está 100% fechado mas está funcionando, você vai conseguir seguir seus estudos:
https://drive.google.com/drive/folders/12FTO8rlbBYfgmKYevEs22KAAU26jGwln?usp=drive_link, https://drive.google.com/drive/folders/14bIDk7X7YEwJAPSjZr6F93n1_JH9nOYm?usp=drive_link, https://drive.google.com/drive/folders/14udJEXUSFJvWYNpOFTiscHaemtw4TAYp?usp=drive_link, https://drive.google.com/drive/folders/14dFN5SZe60G2_KpSCaEKAxo_C6h7KF0a?usp=drive_link, https://drive.google.com/drive/folders/14p2_gDdx_2rJTXnHCvjjGYaKXAuxNVun?usp=drive_link, https://drive.google.com/drive/folders/14qfzIiYYsDOuwwuw29PIxdVJltpxLUxV?usp=drive_link, https://drive.google.com/drive/folders/12paD7z20OsXyXsyqaQd_uDzbqGYl9ReN?usp=drive_link
Recado aos demais alunos: não posso garantir que estes links estarão disponíveis no futuro.
- Esta resposta foi modificada 10 meses, 4 semanas atrás por
Denny Ceccon.
Oi Samuel,
Nós estamos trabalhando na atualização desse curso, nossa recomendação é sempre usar versões mais antigas das bibliotecas para conseguir acompanhar os cursos, mas neste caso vou te adiantar o código mais atualizado abaixo:
!pip install scikeras import pandas as pd import tensorflow as tf import sklearn import scikeras from scikeras.wrappers import KerasClassifier from sklearn.preprocessing import LabelEncoder from tensorflow.keras import utils as np_utils from tensorflow.keras import backend as k from tensorflow.keras.models import Sequential from sklearn.model_selection import cross_val_score base = pd.read_csv('iris.csv') previsores = base.iloc[:, 0:4].values classe = base.iloc[:, 4].values labelencoder = LabelEncoder() classe = labelencoder.fit_transform(classe) classe_dummy = np_utils.to_categorical(classe) def criar_rede(): k.clear_session() classificador = Sequential([ tf.keras.layers.InputLayer(shape=(4,)), tf.keras.layers.Dense(units=4, activation='relu'), tf.keras.layers.Dense(units=4, activation='relu'), tf.keras.layers.Dense(units=3, activation='softmax')]) classificador.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['categorical_accuracy']) return classificador classificador = KerasClassifier(model=criar_rede, epochs=250, batch_size=10) resultados = cross_val_score(estimator=classificador, X=previsores, y=classe_dummy, cv=10, scoring='accuracy') resultados media = resultados.mean() print(media) desvio = resultados.std() print(desvio)
Isso mesmo, ao longo dos estudos você vai conhecendo melhor como os métodos funcionam e quais estratégias pode adotar para melhorar seus resultados. Boa sorte!
À disposição!
Olá André,
Eu executei o notebook desta aula até essa parte do código e deu tudo certo, pela mensagem de erro é possível que você tenha esquecido de executar algum código, tenta de novo desde o início.
O 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.
Samuel, é muito difícil dizer sem fazer uma inspeção detalhada do problema, mas devido ao número de alunos, não temos como inspecionar implementações pessoais.
Entretanto, se você fez tudo certo, ainda assim é possível obter uma predição constante, se os dados que você passou não são suficientes para identificar a classe alvo. Por exemplo, suponha que você esteja usando indicadores sanguíneos para determinar a cor dos olhos das pessoas, dificilmente as variáveis preditoras têm relação com a variável alvo, portanto não existe uma relação para o algoritmo descobrir. Nestes casos, a maior acurácia que o algoritmo pode alcançar é prevendo sempre a classe majoritária nos dados de treinamento (por exemplo, se 80% das pessoas têm olho castanho, então prever sempre olho castanho vai entregar uma acurácia média de 80%).
Outra possibilidade é relacionada ao formato dos dados. Vi que você converteu
previsores_treinamento
para float32, vale a pena tentar fazer o mesmo comprevisores_teste
.Uma terceira possibilidade é que o algoritmo que você escolheu (rede neural) não seja adequado para identificar as classes. Neste caso, vale a pena testar outros algoritmos. A própria rede neural pode ser alterada para tentar obter resultados melhores.
Acho que é porque na sua definição de
criarRede
, você escreveuloos
. Corrija paraloss
.Isso 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.Você 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 11 meses atrás por
Denny Ceccon.
- Esta resposta foi modificada 11 meses atrás por
Denny Ceccon.
- Esta resposta foi modificada 11 meses atrás por
Denny Ceccon.
- Esta resposta foi modificada 11 meses atrás por
Denny Ceccon.
- AutorPosts