Размер должен быть 1-мерным тензором int32

#r #tensorflow #keras

#r #тензорный поток #keras

Вопрос:

У меня есть данные MNIST и я выполняю некоторые преобразования, используя Tensorflow и keras в R

  dim(train_images) <- c(nrow(train_images), 28,28,1)
 dim(test_images) <- c(nrow(test_images), 28,28,1)

train_images <- tf$image$grayscale_to_rgb(tf$convert_to_tensor(train_images)) 
test_images <- tf$image$grayscale_to_rgb(tf$convert_to_tensor(test_images))
  

Теперь форма данных: 60000,28,28,3

Но мне нужны данные в форме: 60000,32,32,3

 train_images <- tf$image$resize(train_images, c(32,32))
test_images <-  tf$image$resize(test_images, c(32,32))
  

Это приводит к ошибке:

 Error in py_call_impl(callable, dots$args, dots$keywords): ValueError: 'size' must be a 1-D int32      Tensor

  Detailed traceback: 
  File "/usr/local/share/.virtualenvs/r-reticulate/lib/python3.7/site-        packages/tensorflow/python/util/dispatch.py", line 201, in wrapper
return target(*args, **kwargs)
 File "/usr/local/share/.virtualenvs/r-reticulate/lib/python3.7/site-   packages/tensorflow/python/ops/image_ops_impl.py", line 1546, in resize_images_v2
skip_resize_if_same=False)
 File "/usr/local/share/.virtualenvs/r-reticulate/lib/python3.7/site-packages/tensorflow/python/ops/image_ops_impl.py", line 1226, in _resize_images_common
 raise ValueError(''size' must be a 1-D int32 Tensor')

Traceback:

1. tf$image$resize(train_images, c(32, 32))
2. py_call_impl(callable, dots$args, dots$keywords)
  

Ответ №1:

Просто напишите вместо:

 train_images <- tf$image$resize(train_images, c(32L,32L))
test_images <-  tf$image$resize(test_images, c(32L,32L))
  

Комментарии:

1.Не могли бы вы объяснить, что 32 это из mode "double" и 32L из режима "integer" ?