Я попытался использовать функцию карты, чтобы повернуть изображение на 20 градусов, и прочитал данные изображения, чтобы убедиться, что оно работает, следующим образом.
Среда:
- Google colab
- Tensorflow 2.2
Код:
import tensorflow_datasets as tfds
import tensorflow as tf
import tensorflow_addons as tfa
import numpy as np
MODE_AUTOTUNE = tf.data.experimental.AUTOTUNE
batch_size = 128
def map_func(image, label):
image = tf.cast(image, tf.float32) / 255.
angle = 20. * 3.1415926 / 180.0
image = tfa.image.rotate(images=image, angles=angle, interpolation='NEAREST')
return image, label
## ... load x_train (images), y_train (labels) ... ##
train_data = tf.data.Dataset.from_tensor_slices((x_train, y_train))
train_data = train_data.shuffle(len(x_train))
train_data = train_data.map(map_func=map_func, num_parallel_calls=MODE_AUTOTUNE)
train_data = train_data.batch(batch_size)
train_data = train_data.prefetch(buffer_size=MODE_AUTOTUNE)
datas = tfds.as_numpy(train_data)
for data in datas:
print(data[0])
...
## try to plot datas ##
Произошел сбой по неизвестной причине. Однако, когда я удаляю следующий код, он работает нормально.
image = tfa.image.rotate(images=image, angles=angle, interpolation='NEAREST')
Понятия не имею. Функция карты работает хорошо, но tfds.as_ numpy () не может ее прочитать?