TensorFlow 2.0 dataset.

it2024-11-28  16

def parse_function(filename, filename2): image = read_image(fn) def ret1(): return image, read_image(fn2), 0 def ret2(): return image, preprocess(image), 1 return tf.case({tf.less(tf.random.uniform([1])[0], tf.constant(0.5)): ret2}, default=ret1) dataset = tf.data.Dataset.from_tensor_slices((train,shuffled_train)) dataset = dataset.shuffle(len(train)) dataset = dataset.map(parse_function, num_parallel_calls=4) dataset = dataset.batch(1) dataset = dataset.prefetch(buffer_size=4) @tf.function def train(model, dataset, optimizer): for x1, x2, y in enumerate(dataset): with tf.GradientTape() as tape: left, right = model([x1, x2]) loss = contrastive_loss(left, right, tf.cast(y, tf.float32)) gradients = tape.gradient(loss, model.trainable_variables) optimizer.apply_gradients(zip(gradients, model.trainable_variables)) siamese_net.compile(optimizer=tf.keras.optimizers.RMSprop(learning_rate=1e-3)) train(siamese_net, dataset, tf.keras.optimizers.RMSprop(learning_rate=1e-3))

error:

dataset.__iter__() is only supported when eager execution is enabled.

I fixed it by enabling eager execution after importing tensorflow:

import tensorflow as tf tf.enable_eager_execution()

 转载

https://stackoverflow.com/questions/55576133/tensorflow-2-0-dataset-iter-is-only-supported-when-eager-execution-is-enab?noredirect=1&lq=1

 

 

最新回复(0)