Problema aleatório no Treinamento da rede neural

Home Fóruns Fórum Processamento de Linguagem Natural com Deep Learning Problema aleatório no Treinamento da rede neural

Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #28201
    Gledston Carneiro
    Participante

      Boa noite turma,  fui orientado a postar aqui meu erro e como eh meu primeiro post, jah peço desculpas por algum erro, seguinte estou tendo alguns problemas para repetir os passos da aula com uma base de dados minha de 1000 registros.

      primeiro problema:  Tokenização

      tokenizer = tfds.features.text.SubwordTextEncoder.build_from_corpus(data_clean, target_vocab_size=2**16)
      <p style=”padding-left: 40px;”>—————————————————————————</p>
      <p style=”padding-left: 40px;”>AttributeError Traceback (most recent call last)</p>
      <p style=”padding-left: 40px;”><ipython-input-97-fe5075cf79f3> in <module>()
      —-> 1 tokenizer = tfds.features.text.SubwordTextEncoder.build_from_corpus(data_clean, target_vocab_size=2**16)</p>
      <p style=”padding-left: 40px;”>
      AttributeError: module ‘tensorflow_datasets.core.features’ has no attribute ‘text'</p>

      pesquisando no google vi alguns posts que falavam que esse método estava depreciado,
      então pesquisando um pouco mais consegui contornar com esses passos:

      vocab_fname =’vocab_fname’
      # Build
      tokenizer = tfds.deprecated.text.SubwordTextEncoder.build_from_corpus( data_clean, target_vocab_size=2**15)
      tokenizer.save_to_file(vocab_fname)

      # Load
      encoder = tfds.deprecated.text.SubwordTextEncoder.load_from_file(vocab_fname)

      tokenizer.vocab_size
      <p style=”padding-left: 40px;”>298</p>
      data_inputs = [tokenizer.encode(sentence) for sentence in data_clean]

      for _ in range(10):
        print(data_inputs[random.randint(0, len(data_inputs) – 1)])
      <p style=”padding-left: 40px;”>[4, 1, 10, 5, 6, 1, 22, 3, 23, 2, 9, 1, 20, 3, 24, 2, 1, 14] [4, 1, 33] [4, 1, 10, 5, 6, 1, 12, 15] [4, 1, 10, 5, 6, 1, 20, 3, 25, 2, 9, 1, 23, 2, 1, 7, 3, 18, 3, 23, 2, 1, 8] [4, 1, 7, 5, 6, 1, 16, 3, 29, 2, 9, 1, 17, 2, 1, 7, 3, 35, 2, 1, 8] [4, 1, 7, 5, 6, 1, 26, 3, 19, 2, 3, 37, 2, 1, 8] [4, 1, 7, 5, 6, 1, 30, 3, 17, 2, 9, 1, 19, 2, 1, 14] [4, 1, 33] [4, 1, 10, 5, 6, 1, 12, 15] [4, 1, 10, 5, 6, 1, 16, 3, 17, 2, 9, 1, 11, 3, 19, 2, 1, 14]</p>
      Como pode ver deu certo e segui os demais passos:
      Padding
      Divisão da base de dados em treinamento e teste
      Etapa 3: Construção do modelo
      Etapa 4: Treinamento
      Configuração dos parâmetros
      Treinamento

      o segundo problema aconteceu no Treinamento

      history = Dcnn.fit(train_inputs, train_labels,
                         batch_size = batch_size,
                         epochs = nb_epochs,
                         verbose = 1,
                         validation_split = 0.10)

      <p style=”padding-left: 40px;”>Epoch 1/100</p>
      <p style=”padding-left: 40px;”>—————————————————————————</p>
      <p style=”padding-left: 40px;”>ValueError Traceback (most recent call last)</p>
      <p style=”padding-left: 40px;”><ipython-input-96-2de532de76ee> in <module>()
      3 epochs = nb_epochs,
      4 verbose = 1,
      —-> 5 validation_split = 0.10)
      6 ckpt_manager.save()</p>
      <p style=”padding-left: 40px;”>

      9 frames
      /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/func_graph.py in wrapper(*args, **kwargs)
      975 except Exception as e: # pylint:disable=broad-except
      976 if hasattr(e, “ag_error_metadata”):
      –> 977 raise e.ag_error_metadata.to_exception(e)
      978 else:
      979 raise</p>
      <p style=”padding-left: 40px;”>
      ValueError: in user code:</p>
      <p style=”padding-left: 40px;”>/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:805 train_function *
      return step_function(self, iterator)
      <ipython-input-4-c9bcea253a55>:32 call *
      x = self.embedding(inputs)</p>
      <p style=”padding-left: 40px;”>

       

      … segue a pilha de programas e o ultimo eh esse dai e o erro…

       

      </p>
      <p style=”padding-left: 40px;”>/usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/ops.py:1217 set_shape (self.shape, shape))</p>
      <p style=”padding-left: 40px;”>ValueError: Tensor’s shape (296, 200) is not compatible with supplied shape (298, 200)</p>
      esse eu não consegui resolver…

      o que percebi eh que meu vocab_size ficou exatamente esse valor “supplied shape (298, 200)”

      Daí eu imagino que este segundo erro pode ser consequência da minha resolução do primeiro erro, o que vocês acham?

      Outra informação que possa ser relevante é que minha base de dados o campo “sentiment” está em português, mas tratei de não deixar acentuada, fiz todos os passos da limpeza.

      Esse erro ocorre a partir da segunda chamada, pois todo o procedimento de treinamento está no scopo de um “while”

      se puderem me dar alguma dica.

      desde já, gratidão

      #28241
      Fábio Spak
      Participante

        Boa noite Gledston, você esta utilizando o código fonte/base de dados disponibilizado na vídeo aula?

        Fabio

        #28278
        Gledston Carneiro
        Participante

          Fabio, boa noite

          kra não estou, na verdade eu peguei algumas partes e estou tentando fazer, até pra ver se consegui entender a ideia, mas deixa eu te falar, acabou que consegui resolver o problema, na verdade era um erro da minha parte.

          de tanto acontecer uma vez ou outra, pois como eu disse não era sempre que ocorria, eu consegui identificar um padrão no erro e vi que era toda vez que minha base mudava, ou seja que entrava dados novos.

          deixa eu explica melhor, eu fiz um código que aprende a melhorar o treinamento, misturei um pouco de aprendizado por reforço na parte do  treinamento.

          com isso esqueci de atualizar alguns parâmetros, dentre eles o da Tokenização ai por consequência o “tokenizer.vocab_size” ficava diferente do treinamento anterior causando o erro e me induzindo a achar que era por conta da Tokenização.

          ajustei o parâmetro e nunca mais teve o erro.

           

          gratidão pela atenção

          #28283
          Fábio Spak
          Participante

            Olá Gledston, que bom que deu certo 😉

            Fabio

          Visualizando 4 posts - 1 até 4 (de 4 do total)
          • Você deve fazer login para responder a este tópico.