Home › Fóruns › Fórum Visão Computacional: O Guia Completo › Erro auto encoder convolucional
- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 3 semanas, 5 dias atrás por Gabriel Alves.
- AutorPosts
- 13 de setembro de 2024 às 15:50 #46083
na aula
https://iaexpert.academy/topic/autoencoder-convolucional-4/
estou com um erro no auto encoder convolucional quanto tento acessar o input.
seguem abaixo o código e o erro, se alguém puder me ajudar, pois ate mesmo o colab compartilhado da aula, não executou e retornou o mesmo erro.
ae = Sequential()
# Encoder
ae.add(Conv2D(filters=16, kernel_size=(3,3), activation=’relu’, padding=’valid’, input_shape=(28,28,1)))
ae.add(MaxPooling2D(pool_size=(2,2)))ae.add(Conv2D(filters=8, kernel_size=(3,3), activation=’relu’, padding=’same’))
ae.add(MaxPooling2D(pool_size=(2,2), padding=’same’))# ae.summary()
ae.add(Conv2D(filters=8, kernel_size=(3,3), activation=’relu’, padding=’same’, strides=(2,2)))
ae.add(Flatten())
# ae.summary()#Decoder
ae.add(Reshape((4,4,8)))
ae.add(Conv2D(filters=8, kernel_size=(3,3), activation=’relu’, padding=’same’))
ae.add(UpSampling2D((2,2)));ae.add(Conv2D(filters=8, kernel_size=(3,3), activation=’relu’, padding=’same’))
ae.add(UpSampling2D((2,2)));ae.add(Conv2D(filters=16, kernel_size=(3,3), activation=’relu’))
ae.add(UpSampling2D((2,2)));ae.add(Conv2D(filters=1, kernel_size=(3,3), activation=’sigmoid’, padding=’same’))
ae.summary();
ae.input
—————————————————————————
ValueError Traceback (most recent call last)
<ipython-input-32-d823f823871b> in <cell line: 1>()
—-> 1 ae.input1 frames
/usr/local/lib/python3.10/dist-packages/keras/src/ops/operation.py in _get_node_attribute_at_index(self, node_index, attr, attr_name)
283 “””
284 if not self._inbound_nodes:
–> 285 raise ValueError(
286 f”The layer {self.name} has never been called ”
287 f”and thus has no defined {attr_name}.”ValueError: The layer sequential_8 has never been called and thus has no defined input.
14 de setembro de 2024 às 13:12 #46102Olá Douglas!
Na linha que ocorreu o erro, troque .input por .get_layer(‘conv2d’).input
e também faça a troca no método Model() que está na linha logo na sequência.
Na dúvida, acesse o Colab compartilhado na aba “Materiais” dentro da primeira aula dessa seção sobre Autoencoders, eu rodei aqui novamente e funcionou conforme esperado (nesse Colab já está atualizado essa linha de código).
Isso ocorre em razão de uma atualização recente do tensorflow, onde é necessário um pequeno ajuste. Alternativamente, você tem a opção de usar uma versão anterior, desse modo não precisa fazer esse ajuste nessa linha de código. Se optar por usar uma versão um pouco anterior (por exemplo a 2.12.0) então basta rodar esse comando abaixo antes de todo o código, colocando como o primeiro bloco.
!pip install tensorflow==2.12.0
E após executar isso reiniciar a sessão do Colab. Caso não apareça já automaticamente um botão para reiniciar, basta ir em ‘Ambiente de execução > reiniciar sessão’. Com isso vai funcionar e não precisa fazer nenhum ajuste.
- AutorPosts
- Você deve fazer login para responder a este tópico.