Почему / Как изменяются размеры dataet изображения после его преобразования в набор данных tenorflow 2.0 - PullRequest
1 голос
/ 15 февраля 2020

Я использую CIFAR10 набор данных. Имеет оригинальный размер: (60000,32,32,3) , после преобразования его в набор данных тензорного потока он преобразуется в tf .Тензор: форма (64,24,24,3) . Что я понимаю из вышесказанного, так это то, что в каждой партии имеется 64 изображения 24 x 24 в 3 каналах . (Дайте мне знать, если я ошибаюсь) Вот мой фрагмент кода.

(x_train,y_train),(x_test,y_test)=tf.keras.datasets.cifar10.load_data()
train_dataset=tf.data.Dataset.from_tensor_slices((x_train,y_train)).batch(64).shuffle(10000)
train_dataset=train_dataset.map(lambda x,y:(tf.cast(x,tf.float32)/255.0,y))
train_dataset=train_dataset.map(lambda x,y:(tf.image.central_crop(x,0.75),y))
train_dataset=train_dataset.map(lambda x,y:(tf.image.random_flip_left_right(x),y))
train_dataset=train_dataset.repeat()

как Насколько я понимаю, это потому, что он был обрезан на 75%. Если это правильно, то как именно?

1 Ответ

0 голосов
/ 18 февраля 2020

Ваше понимание верно. central_crop обрезает центральную область изображения, удаляя его внешние части. Поэтому с central_fraction=0.75 новые размеры изображения будут 32*0.75 = 24. Вот документация метода:

central_crop(image, central_fraction)
    Crop the central region of the image(s).

    Remove the outer parts of an image but retain the central region of the image
    along each dimension. If we specify central_fraction = 0.5, this function
    returns the region marked with "X" in the below diagram.

         --------
        |        |
        |  XXXX  |
        |  XXXX  |
        |        |   where "X" is the central 50% of the image.
         --------

    This function works on either a single image (`image` is a 3-D Tensor), or a
    batch of images (`image` is a 4-D Tensor).

    Args:
      image: Either a 3-D float Tensor of shape [height, width, depth], or a 4-D
        Tensor of shape [batch_size, height, width, depth].
      central_fraction: float (0, 1], fraction of size to crop
    Usage Example: ```python >> import tensorflow as tf >> x =
      tf.random.normal(shape=(256, 256, 3)) >> tf.image.central_crop(x, 0.5) ```

    Raises:
      ValueError: if central_crop_fraction is not within (0, 1].

    Returns:
      3-D / 4-D float Tensor, as per the input.
...