
446 | Capítulo 15: Autoencoders
Como a forma de X é apenas parcialmente denida durante a
fase de construção, não podemos saber antecipadamente a for-
ma do ruído que devemos adicionar a
X. Nós não podemos recorrer a
X.get_shape() porque isso apenas retornaria a forma parcialmen-
te denida de
X ([None, n_inputs]), e random_normal() espera
uma forma totalmente denida para que possa gerar uma exceção.
Em vez disso, chamamos
tf.shape(X), que cria uma operação que
retornará a forma de
X em tempo de execução, que será totalmente
denida nesse ponto.
Não é difícil implementar a versão dropout, que é a mais comum:
dropout_rate = 0.3
training = tf.placeholder_with_default(False, ...