Forum Replies Created

Viewing 15 posts - 376 through 390 (of 402 total)
  • Author
    Posts
  • in reply to: Série temporal com múltiplos previsores II #34375
    Denny Ceccon
    Moderator

      Olá Henrique,

      Isso ocorre na linha 39 você usa somente uma variável (índice 0) para descrever cada timestep do dataset de treinamento, mas seu X_teste (linha 93) é construído com 6 variáveis. Mudando 0:6 para 0 deve resolver o problema.

      in reply to: Percorrer uma lista com o get_prediction #34229
      Denny Ceccon
      Moderator

        Olá Micael,

        Você pode primeiro fazer uma pequena modificação na função get_predictions, para retornar o valor ao invés de exibi-lo na tela:

        def get_prediction(sentence):
          tokens = encode_sentence(sentence)
          inputs = tf.expand_dims(tokens, 0) # (batch_size) (1,...)
          output = Dcnn(inputs, training=False)
          sentiment = math.floor(output*2)
          if sentiment == 0:
            return 'negative'
          elif sentiment == 1:
            return 'positive'

        Agora, pode organizar suas frases em um dataframe e adicionar o resultado desta forma:

        texts = ["This movie was pretty interesting", "I'd rather not do that again", "What a great time to be alive", "I wish this never happened"]
        df = pd.DataFrame({'text': texts})
        df['emotion'] = df['text'].map(get_prediction)
        print(df)
        
        <out> 
          text                              emotion
        --------------------------------------------
        0 This movie was pretty interesting positive
        1 I'd rather not do that again      negative
        2 What a great time to be alive     positive
        3 I wish this never happened        negative
        
        
        in reply to: Augmentation e testes com a rede neural #34193
        Denny Ceccon
        Moderator

          Olá Henrique,

          O warning diz que seu gerador ficou sem dados. Como ele parou no batch 126, eu acho mais provável que sua pasta com os arquivos de treinamento esteja incompleta. Veja se ela contém todos os arquivos demonstrados na aula.

          in reply to: Aula -> Validação Cruzada – Implementação #34058
          Denny Ceccon
          Moderator

            Olá Henrique,

            Esse é o número do batch. O número total de batches é definido pelo tamanho do dataset (número de instâncias), que no caso é igual a len(previsores), dividido pelo batch_size. Como o tamanho do dataset é fixo durante uma tarefa de validação cruzada, você pode alterá-lo mudando o batch_size.

            Denny Ceccon
            Moderator

              Olá Aislan,

              Basta utilizar NB_CLASSES = 5, conforme aula Treinamento do Modelo @1:22.

              in reply to: Bert para outras linguas #33725
              Denny Ceccon
              Moderator

                Felix, é que o BERT trabalha com uma estratégia de tokenização chamada subwords, onde as palavras são quebradas nos n-gramas de letras mais frequentes. Adicione a isso o fato de que o modelo multilíngua foi treinado com várias línguas, e o resultado é que muitos tokens não farão sentido gramatical, mas computacionalmente eles são úteis. O importante não é que a tokenização “faça sentido”, mas que sirva para a finalidade do algoritmo.

                Existem modelos treinados em outras línguas, mas são soluções de outros grupos, não oficiais do Google. Algumas, inclusive, você consegue importar do próprio hub do Tensorflow, o que facilita a adaptação do código da aula. Não temos como oferecer suporte neste caso, mas você está livre para testá-las por conta própria.

                in reply to: Restore de checkpoint #33724
                Denny Ceccon
                Moderator

                  Olá Felix,

                  Nesse caso, você deve salvar o atributo history do objeto history com:

                  import joblib
                  joblib.dump(history.history, 'history.joblib')

                  E depois restaurar com:

                  history = joblib.load('history.joblib')

                  Observe entretanto que não é possível salvar o objeto history inteiro, apenas o atributo history dele, que contém as métricas.

                  in reply to: Matrix de confusão para Bert #33709
                  Denny Ceccon
                  Moderator

                    Olá Felix,

                    1) Você pode recuperar y_test a partir do test_dataset. Como cada iteração do test_dataset retorna um batch de (X, y), nós podemos acumular todos os batches de y em uma lista, e depois transformá-la em um numpy array.

                    y_true = []
                    for X, y in test_dataset:
                        y_true.append(y.numpy())
                    y_true = np.concatenate(y_true)

                    Para y_pred, basta usar o modelo no modo de predição:

                    y_pred = Dcnn.predict(test_dataset)
                    y_pred = y_pred.reshape(-1)

                    Agora, se você inspecionar y_test e y_pred, vai ver que o primeiro contém 0 e 1, e o segundo contém valores reais no intervalo entre 0 e 1. Isso porque y_pred retorna a probabilidade de o tweet ser da classe 1. Para converter em 0 e 1, basta fazer y_pred = y_pred > 0.5, ou seja, se a probabilidade retornada pelo modelo for maior que 50%, a resposta final será 1, caso contrário será 0.

                    Aí você pode usar as duas variáveis com as funções que citou.

                    2) Foi sim, na aula Criação da base de dados por volta de @14:00. O professor usou o dataset de teste na parte de avaliação do modelo.

                    in reply to: Restore de checkpoint #33707
                    Denny Ceccon
                    Moderator

                      Olá Felix,

                      Você deve usar somente ckpt.restore(ckpt_manager.latest_checkpoint), isso depois de instanciar os objetos ckpt, ckpt_manager, a classe DCNN e o objeto Dcnn instanciado dela, da mesma forma que feitos na aula, se estiver em uma nova sessão. Esta função não retorna nada, por isso seu objeto history está vazio. Depois da restauração, o objeto Dcnn, que corresponde ao modelo, terá os pesos provenientes do arquivo salvo durante o treinamento.

                      • This reply was modified 3 years, 1 month ago by Denny Ceccon.
                      in reply to: Aplicação do np.log para distribuição normal #33677
                      Denny Ceccon
                      Moderator

                        Olá Alisson,

                        Você pode dizer a qual aula se refere?

                        in reply to: Erro na avaliação de algoritmo #33102
                        Denny Ceccon
                        Moderator

                          Olá Vitória,

                          Pela mensagem de erro, parece que você passou o parâmetro min_sample_left na sua variável parametros, que é inválida para RandomForestClassifier. Dê uma verificada.

                          in reply to: Versão torch 0.3.1 não está mais disponível pra Linux #33049
                          Denny Ceccon
                          Moderator

                            Olá,

                            Por enquanto, pode tentar usar a versão 1.0. As atualizações costumam ser um pouco trabalhosas, então não temos como prometer isto no curto prazo. Se tiver algum problema com a v1.0, nos avise ao longo do curso que vamos verificando pontualmente.

                            in reply to: Transferência de Aprendizagem #33004
                            Denny Ceccon
                            Moderator

                              Olá,

                              Geralmente o processo de transferência de aprendizagem se comporta bem quando utilizamos dados da mesma natureza, como é o caso que você sugere. Entretanto, um modelo só vai conseguir prever novas classes se ele passar pelo fine tuning, ou seja, devemos treinar o topo do modelo (a parte classificatória) com novos dados rotulados. Aliás, é exatamente isso que fazemos na Parte 6 do curso. Sem o fine-tuning, o modelo sequer tem como representar uma nova classe na camada de saída, e por isso ele vai tentar encaixar novas categorias com base nas categorias já existentes, com resultados ineficientes.

                              in reply to: Projeto #3: Breast cancer com tunning, gernado um IndexError #32915
                              Denny Ceccon
                              Moderator

                                Olá,

                                Este erro é relacionado à última versão do Skorch, agora o arquivo Colab já está atualizado, obrigado por nos avisar.

                                Denny Ceccon
                                Moderator

                                  Olá,

                                  Esta atualização foi feita para que o modelo possa ser processado pela biblioteca Skorch, que não aceita que a saída da rede seja o resultado de uma ativação, mas sim exige que seja o resultado bruto. Neste caso, a função de custo fica responsável por fazer a ativação correspondente.

                                Viewing 15 posts - 376 through 390 (of 402 total)