Forum Replies Created

Viewing 15 posts - 301 through 315 (of 404 total)
  • Author
    Posts
  • in reply to: Data augmentation #36277
    Denny Ceccon
    Moderator

      Olá Felix,

      Isto acontece porque o processo de aumentação ocorre em tempo real durante a execução do código. Nenhuma nova imagem é gerada em disco, mas as imagens disponíveis são modificadas com as configurações passadas em pre_processamento, logo antes de serem passadas ao modelo. O número total de imagens é definido pelo parâmetro steps_per_epoch passado ao método fit. Na aula, o professor usou steps_per_epoch igual ao número total de imagens dividido pelo batch_size, o que resulta em um treinamento com o mesmo número de imagens disponíveis, mas cada uma delas vai ser modificada conforme a camada de pre_processamento. Se você usar um steps_per_epoch maior que isso, as mesmas imagens vão ser recicladas aplicando novas transformações aleatórias.

      cardinality retorna -1 porque, como o dataset original foi modificado com a função repeat, então seu tamanho é indefinido (tecnicamente, ele é infinito).

      in reply to: Pré-processamento das imagens de entrada #36256
      Denny Ceccon
      Moderator

        Olá Laurence,

        Você pode usar a função tf.image.resize_with_crop_or_pad (documentação aqui), passando todas as suas imagens e o novo tamanho nos parâmetros target_heighttarget_width. As imagens vão ser redimensionadas para um tamanho único, e aquelas que não forem compatíveis com este tamanho vão ser cortadas ou completadas para obedecer às novas dimensões.

        • This reply was modified 3 years, 3 months ago by Denny Ceccon.
        in reply to: Dúvida sobre a aula de Vetor Ordenado Implementação #36230
        Denny Ceccon
        Moderator

          Oi Pietro,

          1. Pode pensar nos vetores como uma série de números que se sucedem linearmente. O Python possui um objeto chamado lista que, no fundo, é um vetor, mas sendo um objeto declarado programaticamente, a lista possui métodos e propriedades úteis para manipular vetores. Vetor é uma abstração, mas a lista do Python é um objeto concreto desta abstração. É mais ou menos como comparar o conceito carro (abstração) com um objeto carro (concreto). Listas/vetores são uma das inúmeras formas para armazenar dados, conforme você se aprofundar nos estudos vai perceber sua utilidade.
          2. Numpy é uma biblioteca do Python usada para criar objetos “especiais”, que não existem no Python nativo. No caso, o Numpy é útil para criar vetores e matrizes.
          3. Digamos que a “abstração” do objeto numpy.empty é uma lista de listas, mas o objeto concreto é mais complexo que isso, por isso precisamos usar métodos diferentes. Um objeto do tipo numpy não possui o método insert, por exemplo, logo sua manipulação deve ser feita de forma diferente.
          in reply to: Não estou conseguindo fazer a previsão pra trás! #36132
          Denny Ceccon
          Moderator

            Oi Gustavo,

            Tente colocar as datas como índice no dataframe com as previsões:

            index=pd.date_range(
                                serie_temporal.index[-1] # pega a última data disponível em serie_temporal
                                + pd.Timedelta('1D'),    # adiciona 1 dia porque estamos fazendo a previsão a partir do dia seguinte
                                periods=100)             # faz o intervalo de datas até 100 dias no futuro
                               )
            previsoes = pd.DataFrame(modelo.predict(n_periods = 100), index=index)

            Aí é só plotar os dois dataframes no mesmo gráfico:

            fig.plot(serie_temporal, label='Dados históricos')
            fig.plot(previsoes , label = 'Previsões')
            • This reply was modified 3 years, 4 months ago by Denny Ceccon.
            in reply to: autoenconder #36131
            Denny Ceccon
            Moderator

              Olá Caio,

              Com 20 colunas realmente não se justifica, mas se tivermos muitas colunas, a redução torna os dados mais manuseáveis em termos de custo computacional. Além disso, existem as chamadas matrizes esparsas onde somente algumas colunas têm valores e o restante é igual a 0, aí a representação em um espaço com menos dimensões é de enorme ajuda no ajuste no modelo.

              in reply to: Valor do indice gini e ganho de informação #36130
              Denny Ceccon
              Moderator

                Olá Guilherme,

                O ganho de informação é uma propriedade das variáveis, não das classes, que são a própria informação que as variáveis estão tentando “ganhar”, por isso o coeficiente é definido somente para as variáveis.

                in reply to: função np.asarray() #36129
                Denny Ceccon
                Moderator

                  Olá Gabriel,

                  Veja que a função calculaSaida recebe uma variável chamada registro, e logo na sua primeira linha, ela chama o método dot de registro. Acontece que dot é um método de numpy arrays, mas entradas[i] é originalmente uma lista, então temos que convertê-la para numpy array para que a função funcione.

                  in reply to: Algoritmo genético para Caixeiro viajante #35965
                  Denny Ceccon
                  Moderator
                    in reply to: Print(MLP) #35964
                    Denny Ceccon
                    Moderator

                      Olá Marcio,

                      Existem algumas bibliotecas que permitem instanciar callbacks, que são códigos que rodam em momentos pré-definidos da execução, como por exemplo no final de cada época. Para exibir os pesos, você poderia usar um callback customizado. A biblioteca scikit-learn, infelizmente, não oferece esta opção, mas com o Keras é possível, veja a documentação: https://keras.io/api/callbacks/

                      in reply to: Inverse Transform #35951
                      Denny Ceccon
                      Moderator

                        Olá Lucas,

                        É que o scaler recebe objetos no formato (n_instancias, n_variaveis), então mesmo quando só tem uma instância, ela deve ser apresentada como um array bidimensional (1, n_variaveis).

                        in reply to: Erro ao executar a função message_cleaning #35927
                        Denny Ceccon
                        Moderator

                          Olá Pericles,

                          Isto acontece porque, em algum momento do seu código, o valor de message é um número do tipo float, aí a comprehension não funciona pois message deve ser um iterável, ou seja, algo capaz de ser utilizado em um loop do tipo for. Para evitar isso, converte antes a coluna Review Text para string, pois toda string é iterável.

                          in reply to: Cálculo do ajuste dos pesos #35921
                          Denny Ceccon
                          Moderator

                            Olá Koki,

                            Na verdade não, é que os outros registros não foram classificados errado (ou seja, o erro é igual a 0), mas o correto é usar todos os registros na atualização.

                            in reply to: Base de Dados de Sentimentos em Português #35920
                            Denny Ceccon
                            Moderator

                              Olá Daniel,

                              Certamente que ajustar os hiperparâmetros pode melhorar o modelo (este processo é chamado de otimização dos hiperparâmetros), mas a melhoria não costuma ser muito significativa, dificilmente você vai sair de 75% para 90% só com isso, por exemplo.

                              Muitos problemas se beneficiam de dados sintéticos, mas você deve imaginar como é difícil gerar dados sintéticos para texto, acredito que isso hoje só seja possível utilizando outra inteligência artificial. No meu trabalho, por exemplo, um colega usou o modelo GPT-3 para gerar dados para treinar, com resultados bem satisfatórios.

                              Por último, é difícil se manter atualizado sobre bases de dados quando a gente não trabalha diretamente com isso, então minha recomendação seria a mesma que eu faria: pesquisar no Google. 🙂

                              in reply to: Mapas auto-organizaveis #35905
                              Denny Ceccon
                              Moderator

                                Acho que é porque você precisa rodar a parte do código onde plota o gráfico tudo de uma vez, porque os elementos do gráfico são adicionados um a um, e se você interromper o código no meio, só vai plotar a metade das informações.

                                Roda desde a linha pcolor(som.distance_map().T) até o final em uma única célula.

                                in reply to: Atributos categóricos – OneHotEncoder #35899
                                Denny Ceccon
                                Moderator

                                  É isso mesmo Marcos. Quando a gente atualiza uma variável, tem que tomar cuidado para criar ela de volta se quiser reexecutar alguma parte do código.

                                Viewing 15 posts - 301 through 315 (of 404 total)