Olá, Raphael!
Parece que você está enfrentando um problema de incompatibilidade de dimensões entre os arrays que está tentando operar. O erro "operands could not be broadcast together with shapes" indica que as dimensões dos arrays não estão alinhadas de forma que possam ser operadas juntas.
No seu caso, a função forward_noise()
está tentando operar arrays com as formas (3, 28, 28, 3, 1)
e (3, 1, 1, 1)
. Isso sugere que há uma discrepância na forma como os arrays a
e b
estão sendo usados.
Aqui estão algumas sugestões para resolver o problema:
Verifique as Dimensões: Certifique-se de que as dimensões dos arrays que você está passando para forward_noise()
são consistentes. No seu caso, parece que x_treino
tem a forma (3, 28, 28, 1)
após a expansão do canal, então a
e b
devem ser reshaped para (3, 1, 1, 1)
para que a operação de broadcast funcione corretamente.
Corrija o Reshape: No código da função forward_noise()
, ao fazer o reshape de a
e b
, você pode tentar ajustar para que as dimensões sejam compatíveis. Por exemplo:
a = a.reshape((-1, 1, 1, 1)) # Certifique-se de que isso está correto
b = b.reshape((-1, 1, 1, 1)) # Certifique-se de que isso está correto
Verifique o Código de Geração de Ruído: Certifique-se de que o ruído gerado tem a mesma forma que x
. Você pode verificar o shape
de cada array antes de operar para garantir que eles sejam compatíveis.
Teste com Diferentes Tamanhos de Lote: Se o problema persistir, tente testar com diferentes tamanhos de lote para ver se o problema é específico para o tamanho atual.
Espero que essas dicas ajudem a resolver o problema que você está enfrentando. Bons estudos!