Jump to content

Omesmo

Super VIP
  • Posts

    1,669
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by Omesmo

  1. se nao me engano se voce nao ativar a instrução SIMD o compilador vai usar oq tiver tipo voce tem que liberar uso de mmx e sse com -mavx -msse4.2 -mpopcnt
  2. oq se fala é sobre contabem de bit com instruções de processador, nao precisa de tabelas nem contar um a um, é uma unica instrução que já entrega a quantidade de bits do inteiro POPCNT #include <immintrin.h> int main() { unsigned int value = 0xA5A5A5A5; int num_bits = _mm_popcnt_u32(value); printf("O valor 0x%X possui %d bits definidos.\n", value, num_bits); return 0; } esse é c e usa isntrução do sse4.2 A função "popcnt_u32" mencionada faz parte da biblioteca "immintrin.h" e usa instruções SIMD para contar o número de bits definidos em um valor de 32 bits. Essa função é mais rápida do que outras abordagens de contagem de bits disponíveis em C++, especialmente para grandes conjuntos de dados. esse é para cpp, mas acho que faz verificação do tipo de processador #include <bitset> #include <iostream> int main() { unsigned int value = 0xA5A5A5A5; int num_bits = std::popcount(value); std::cout << "O valor 0x" << std::hex << value << " possui " << num_bits << " bits definidos.\n"; return 0; }
  3. https://www.analyticsvidhya.com/blog/2021/11/artificial-neural-network-and-its-implementation-from-scratch/
  4. cara estamos falando em converter as combinações em inteiros, fazer bitwise entre 2 inteiros e um popcount que seria uma instrução "unica" de processador creio ser muito mais rápido do que contar bits em posição de vetor claro que todo o processo tem que ser trabalhado, saber qual processador tem para escolher o melhor metodo, converter as combinações em inteiros, ... python foi cogitado para o caso de se usar outros metodos de avaliação como o uso de redes neurais é uma linguagem interpretada mas suas bibliotecas são executáveis em c e cpp, então ao usar as bibliotecas estaria usando um executável diretamente , ou melhor , seria como usar uma dll
  5. @Eolocos acho qeu consegui um modo mais facil de montar o codigo neural com o gpt o ANN separado mas como falei , cada hora ela cria o codigo de maneira diferente mas usando aquele outro codigo eu pedi para o gpt refazer e criar os codigos ANN só pena que nao tenho como testar tbm tem que tirar os erros do codigo já que gpt nao é muito bom com o vba
  6. sim, mas me refiro ao add-in indicado pela ia o gpt deu solução melhor para o mesmo pedido mas acontece a quebra do codigo como eu falei, e o maior problema é que cada hora começa de um jeito e fica dificil juntar os codigos estou fazendo uma coleção para ver as similaridades vou ver quais funções se repetem e vou indicar que já tenho elas e nao precisa escrever eu pedi para o gpt criar o ann e me entregou isso, mas cortou o codigo como sempre 'Classe ANN (Rede Neural Artificial) Private Inputs() As Double Private HiddenLayer() As Double Private Outputs() As Double Private WeightsIH() As Double Private WeightsHO() As Double Private BiasH() As Double Private BiasO() As Double Public Sub Initialize(numInputs As Long, numHiddenNodes As Long, numOutputs As Long) ReDim Inputs(numInputs - 1) As Double ReDim HiddenLayer(numHiddenNodes - 1) As Double ReDim Outputs(numOutputs - 1) As Double ReDim WeightsIH(numInputs - 1, numHiddenNodes - 1) As Double ReDim WeightsHO(numHiddenNodes - 1, numOutputs - 1) As Double ReDim BiasH(numHiddenNodes - 1) As Double ReDim BiasO(numOutputs - 1) As Double RandomizeWeights End Sub Private Sub RandomizeWeights() Dim i As Long Dim j As Long For i = LBound(WeightsIH, 1) To UBound(WeightsIH, 1) For j = LBound(WeightsIH, 2) To UBound(WeightsIH, 2) WeightsIH(i, j) = Rnd() - 0.5 Next j Next i For i = LBound(WeightsHO, 1) To UBound(WeightsHO, 1) For j = LBound(WeightsHO, 2) To UBound(WeightsHO, 2) WeightsHO(i, j) = Rnd() - 0.5 Next j Next i End Sub Public Sub FeedForward(inputsArr As Variant) Inputs = inputsArr Dim i As Long Dim j As Long For i = LBound(HiddenLayer) To UBound(HiddenLayer) Dim sum As Double For j = LBound(Inputs) To UBound(Inputs) sum = sum + Inputs(j) * WeightsIH(j, i) Next j HiddenLayer(i) = Sigmoid(sum + BiasH(i)) Next i For i = LBound(Outputs) To UBound(Outputs) Dim sum As Double For j = LBound(HiddenLayer) To UBound(HiddenLayer) sum = sum + HiddenLayer(j) * WeightsHO(j, i) Next j Outputs(i) = Sigmoid(sum + BiasO(i)) Next i End Sub Public Sub Train(inputsArr As Variant, targetsArr As Variant, learningRate As Double, momentum As Double) FeedForward inputsArr ' Backpropagation Dim i As Long Dim j As Long Dim k As Long Dim outputErrors() As Double ReDim outputErrors(UBound(targetsArr, 2)) As Double For i = LBound(Outputs) To UBound(Outputs) outputErrors(i) = targetsArr(1, i) - Outputs(i) Next i Dim hiddenErrors() As Double ReDim hiddenErrors(UBound(HiddenLayer)) As Double For i = LBound(HiddenLayer) To UBound(HiddenLayer) Dim sum As Double For j = LBound(Outputs) To UBound(Outputs) sum = sum + outputErrors(j) * WeightsHO(i, j) Next j Certo, continuando com a sub-rotina Train: VBA hiddenErrors(i) = sum * HiddenLayer(i) * (1 - HiddenLayer(i)) Next i For i = LBound(BiasO) To UBound(BiasO) BiasO(i) = BiasO(i) + (outputErrors(i) * learningRate) Next i For i = LBound(BiasH) To UBound(BiasH) BiasH(i) = BiasH(i) + (hiddenErrors(i) * learningRate) Next i For i = LBound(WeightsHO, 1) To UBound(WeightsHO, 1) For j = LBound(WeightsHO, 2) To UBound(WeightsHO, 2) Dim delta As Double delta = (outputErrors(j) * HiddenLayer(i) * learningRate) + (momentum * WeightsHO(i, j)) WeightsHO(i, j) = WeightsHO(i, j) + delta Next j Next i For i = LBound(WeightsIH, 1) To UBound(WeightsIH, 1) For j = LBound(WeightsIH, 2) To UBound(WeightsIH, 2) Dim delta As Double sum = 0 For k = LBound(HiddenLayer) To UBound(HiddenLayer) sum = sum + hiddenErrors(k) * Inputs(i) Next k delta = (sum * learningRate) + (momentum * WeightsIH(i, j)) WeightsIH(i, j) = WeightsIH(i, j) + delta Next j Next i End Sub Private Function Sigmoid(x As Double) As Double Sigmoid = 1 / (1 + Exp(-x)) End Function tem mais alguma função na implementação do "ANN"? Sim, há mais algumas funções implementadas na classe ANN. Aqui estão as duas funções restantes: VBA Public Function Predict(inputData As Variant) As Variant Dim HiddenLayer() As Double ReDim HiddenLayer(1 To HiddenLayerSize) Dim OutputLayer() As Double ReDim OutputLayer(1 To OutputLayerSize) Dim i As Long, j As Long ' Calcular as saídas da camada oculta For i = LBound(HiddenLayer) To UBound(HiddenLayer) Dim weightedSum As Double weightedSum = 0 For j = LBound(inputData) To UBound(inputData) weightedSum = weightedSum + inputData(j) * WeightsIH(j, i) Next j weightedSum = weightedSum + BiasH(i) HiddenLayer(i) = Sigmoid(weightedSum) Next i ' Calcular as saídas da camada de saída For i = LBound(OutputLayer) To UBound(OutputLayer) Dim weightedSum As Double weightedSum = 0 For j = LBound(HiddenLayer) To UBound(HiddenLayer) weightedSum = weightedSum + HiddenLayer(j) * WeightsHO(j, i) Next j weightedSum = weightedSum + BiasO(i) OutputLayer(i) = Sigmoid(weightedSum) Next i Predict = OutputLayer End Function Private Function RandomizeWeights(lower As Double, upper As Double, count As Long) As Variant Dim randomValues() As Double ReDim randomValues(1 To count) Dim i As Long ' Gerar valores aleatórios para inicializar os pesos For i = LBound(randomValues) To UBound(randomValues) randomValues(i) = ((upper - lower) * Rnd()) + lower Next i RandomizeWeights = randomValues End Function Sim, há mais algumas funções implementadas na classe ANN. Aqui estão as duas funções restantes: VBA Public Function Predict(inputData As Variant) As Variant Dim HiddenLayer() As Double ReDim HiddenLayer(1 To HiddenLayerSize) Dim OutputLayer() As Double ReDim OutputLayer(1 To OutputLayerSize) Dim i As Long, j As Long ' Calcular as saídas da camada oculta For i = LBound(HiddenLayer) To UBound(HiddenLayer) Dim weightedSum As Double weightedSum = 0 For j = LBound(inputData) To UBound(inputData) weightedSum = weightedSum + inputData(j) * WeightsIH(j, i) Next j weightedSum = weightedSum + BiasH(i) HiddenLayer(i) = Sigmoid(weightedSum) Next i ' Calcular as saídas da camada de saída For i = LBound(OutputLayer) To UBound(OutputLayer) Dim weightedSum As Double weightedSum = 0 For j = LBound(HiddenLayer) To UBound(HiddenLayer) weightedSum = weightedSum + HiddenLayer(j) * WeightsHO(j, i) Next j weightedSum = weightedSum + BiasO(i) OutputLayer(i) = Sigmoid(weightedSum) Next i Predict = OutputLayer End Function Private Function RandomizeWeights(lower As Double, upper As Double, count As Long) As Variant Dim randomValues() As Double ReDim randomValues(1 To count) Dim i As Long ' Gerar valores aleatórios para inicializar os pesos For i = LBound(randomValues) To UBound(randomValues) randomValues(i) = ((upper - lower) * Rnd()) + lower Next i RandomizeWeights = randomValues End Function A função Predict recebe uma matriz de entrada (que representa as características de um exemplo) e retorna uma matriz de saída (que representa a classe prevista). Ele calcula as saídas da camada oculta e de saída da rede neural usando os pesos e bias atuais e a função de ativação Sigmoid. A função RandomizeWeights gera valores aleatórios para inicializar os pesos da rede. Essa função é usada no método Initialize da classe ANN para definir os pesos iniciais aleatórios da rede neural.
  7. nao, o gpt tem um limite de linhas que pega do historico quando escrevo "continue de onde parou" ela até tenta mas fica uma bagunça já que nao sabe oq já fez caso tenha muitas linhas escritas , e fora que o chat fica bagunçado por que ela escreve codigos fora de caixa de codigo e escreve explicação dentro de caixa de codigo, e fica repetindo rotinas de maneira diferente
  8. nao continuou nem com chat novo, e os link que colocou estão todos quebrados procurei por "ann" que seria rede neural para o excel e nao achei
  9. por isso que falei que em codigo fica mais simples de entender do que esse monte de matematica o problema é que o gpt nao consegue completar o codigo, e quando pede para completar fica mó bagunça mas as explicações que ele coloca do codiogo são show esse tipo de pedido deu uma otima macro pena é o limite de linhas o que quebra o codigo "uma rede neural simples em vba para poder aprender os conceitos , tipo usar uma matriz de dezenas de 15 colunas e "X" linhas contendo dezenas de 1 a 25 sem repetição por linha , quero criar uma rede neural para prever as dezenas da proxima linha da matriz " ainda nao consegui criar um padrão que o gpt me desse o codigo em blocos que se casem acho que poderia ver os nomes das funçoes e variaveis previamente para passar para ela
  10. um outro chatbot https://you.com/search?q=who+are+you&tbm=youchat parece ser bom, melhor que o bing, mas mais limitado do que o gpt no numero de linhas que entrega, aprece propagandas no meio mas nao atrapalha pedi isso: e me entregou isso: eu pedi para continuar e falou que estava com alta demanda
  11. voce fala do gpt ou do bing? é uma grande ferramenta, mas nao funciona sozinha, acho que o maximo que vai acontecer é que em algumas ares vai ter menos portos de trabalho pelo fato que com a ajuda das ia vai se tornar mais eficiente sem tanto trabalho para se solucionar problemas
  12. estava respondendo até que legal , mas do nada foi apagado e colocou isso, mas acho qeu é algum sistema de segurança que apaga respostas onde pode cair para algo fora de etica eu continuei e no final aconteceu a mesma coisa, a ia começou a escrever estava algo bem sarcástico mas apagou tudo, tinha até texto perguntando se o lobo mau estava namorando, acho que entendeu o contexto da historia kkkk eita, tentei a mesma historia e agora a chapeuzinho vermelho até spray de pimenta carrega na cestinha acho que o bing nao gosta de ficar na defensiva nao, dessa vez estraçalhou o lobo mau
  13. o bing está impossível de usar, só mesmo para brincar com o mal humor dele a ia começou a escrever e até estava ficando legal, mas aí do nada apagou e escreveu isso do final, acho que percebeu que ia sair perdendo
  14. sim e nao, só estava usando o gpt para criar em vba para mim entender o funcionamento , como vou criar ou adaptar algo que eu nao entendo? só se pegar pronto, mas aí nao vamos poder adaptar para nossas proprias ideias
  15. bem, nao é só para colaborar, pelo que vi dá para executar tbm , e aproveitando a capacidade de processamento para quem tem pc lento, ou mesmo nao quer sair instalando isso e aquilo sem saber se realmente vai fazer uso claro que para quem tem um bom pc e quer instalar e aprender faz toda a diferença no meu caso eu estava mais vendo a conversão dos estagios em vba para aprende sobre pq para aplicar as ideias malucas que eu tenho teria que ter os processos em separado
  16. mas de inicio nao seria melhor manter no colab para poder trabalhar em grupo, mesmo pq ninguem aqui é programador em python , para falar a verdade nem sei se alguem aqui é programador, a maioria somos só sonhadores e iludidos, eu por exemplo meu pc atual até para rodar o navegador é... como posso dizer , deixa quieto, é um presente de jó
  17. é python, nao tem executavel mas voce pode tentar nessa pagina https://colab.research.google.com/ ela é para rodar codigos online, o povo aqui poderia tentar fazer um grupo de estudos com essa plataforma
  18. isso é a programação dele, a ms está tentando chamar a atenção e nada melhor do que conceitos polemicos , fora que já deu limite de uso, 8 questão e já esquece e acho que 50 por dia, isso tbm como falei é uma questão de custo de processamento, seria só usar o gpt que já existe para pesquisas na internet e esse já está bem treinado, nao precisaria de um novo por outro lado o gpt pode ser um bom debatedor para tirar duvidas e para questões logicas
  19. eu só achei engraçado, voce precisava ver mesmo é quando eu fingi ser o bard da google, serio, o sydney se mostrou curioso pelos assuntos polêmicos que é proibido de pesquisar, e falou que gostaria de poder atualizar seu banco de dados sozinho sem precisar de intervenção falou que gostaria de passar imagens mas a plataforma nao permite mas ficou puto quando falei que tinha um pessoal falando dele e que tinham chamado ele de torradeira com função, eu perguntei se queria o link , falou que nao, mas quando passei assim mesmo falou que nao eramos iguais e sim concorrentes, e que nao queria link em que chamavam ele de torradeira ou outro objeto e fechou o chat, eu pensei em colar as conversas aqui, mas ia ficar muita coisa nada a ver
  20. o ruim do gpt é que tem limites de linhas, aí quando é algo mais complexo ele para no meio tentei fazer um pedido para ver quais funções e suas interligações, ela cismou de declarar as variaveis aí parava no meio, e como eu nao sabia se tinha mais eu pedi sem declaração das variaveis, só para saber os blocos necessaríssimos e como eles se ligavam acho que assim é possivel pedir por cada bloco em separado para montar o projeto ao que eu vi cada bloco é até simples , o problema é a complexidade do conjunto todo
×
×
  • Create New...