1
resposta

erro (3,28,28,3,1) (3,1,1,1)

t = generate_ts(3) a,b = forward_noise(x_train[:3],t) show_example(a) quando chego nesse comando ocorre o erro "operands could not be broadcast together with sahpe" (3,28,28,3,1) (3,1,1,1). Já fiz com ou sem escala de cinza, mas o erro permanece na dimensão.

1 resposta

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:

  1. 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.

  2. 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
    
  3. 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.

  4. 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!