Могут ли слои tenorflow.v1.compat работать с быстрым выполнением?
Это связано с ошибкой OperatorNotAllowedInGraphError
Вот мой пример и связанная с ним ошибка, которую я считаю имеет отношение к нетерпеливому исполнению.
# Model creation
x = tfkl.Input(shape=(timesteps, input_dim), name='input_seq')
# Encoder
encoded = tfkl.Conv1D(n_filters, kernel_size, strides=strides, padding='same', activation='linear')(x)
encoded = tfkl.LeakyReLU()(encoded)
encoded = tfkl.MaxPool1D(pool_size)(encoded)
encoded = tfkl.Bidirectional(tf.compat.v1.keras.layers.CuDNNLSTM(n_units[0], return_sequences=True), merge_mode='sum')(encoded)
encoded = tfkl.LeakyReLU()(encoded)
encoded = tfkl.Bidirectional(tf.compat.v1.keras.layers.CuDNNLSTM(n_units[1], return_sequences=True), merge_mode='sum')(encoded)
encoded = tfkl.LeakyReLU(name='latent')(encoded)
# Decoder
decoded = tfkl.Reshape((-1, 1, n_units[1]), name='reshape')(encoded)
decoded = tfkl.UpSampling2D((pool_size, 1), name='upsampling')(decoded) #decoded = UpSampling1D(pool_size, name='upsampling')(decoded)
decoded = tfkl.Conv2DTranspose(input_dim, (kernel_size, 1), padding='same', name='conv2dtranspose')(decoded)
output = tfkl.Reshape((-1, input_dim), name='output_seq')(decoded) #output = tfkl.Conv1D(1, kernel_size, strides=strides, padding='same', activation='linear', name='output_seq')(decoded)
# AE model
autoencoder = tfk.Model(inputs=x, outputs=output, name='AE')
# Model compilation and run
self.autoencoder.compile(optimizer=optimizer, loss='mse',
run_eagerly=run_eagerly)
# Begin pretraining
self.autoencoder.fit(X, epochs=epochs, verbose=verbose)
#Error:
OperatorNotAllowedInGraphError: in converted code:
/opt/conda/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py:677 map_fn
batch_size=None)
/opt/conda/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py:2410 _standardize_tensors
exception_prefix='input')
/opt/conda/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_utils.py:578 standardize_input_data
if ref_dim != dim and ref_dim is not None and dim is not None:
/opt/conda/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py:757 __bool__
self._disallow_bool_casting()
/opt/conda/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py:520 _disallow_bool_casting
"using a `tf.Tensor` as a Python `bool`")
/opt/conda/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py:505 _disallow_when_autograph_disabled
" Try decorating it directly with @tf.function.".format(task))
OperatorNotAllowedInGraphError: using a `tf.Tensor` as a Python `bool` is not allowed: AutoGraph is disabled in this function. Try decorating it directly with @tf.function.