R-Python Reticulate: TypeError: 'размер' должен быть целым числом - PullRequest
0 голосов
/ 31 августа 2018

Новичок в Reticulate, я пытаюсь запустить этот пример кода без удачи: (

library(reticulate)
use_virtualenv("~/virtualenv", required = TRUE)
np <- import("numpy", convert = FALSE)
plt <- import("matplotlib.pyplot")
img <- import("pyts")

# R variables
image_data <- runif(25)
reshape_image_data <- array_reshape(image_data, c(25,1))

# Reticulated Python variables
x_array <- np$array(reshape_image_data)

mtf <- img$image$MTF(c(5, 5))
#mtf <- img$image$MTF(as.integer(c(as.integer(5),as.integer(5))))

X_mtf <- mtf$fit_transform(x_array)

Получите эту ошибку:

Error in py_call_impl(callable, dots$args, dots$keywords) : 
  TypeError: 'size' must be an integer.

Detailed traceback: 
  File "~/virtualenv/lib/python3.6/site-packages/sklearn/base.py", line 517, in fit_transform
    return self.fit(X, **fit_params).transform(X)
  File "~/virtualenv/lib/python3.6/site-packages/pyts/image/image.py", line 268, in transform
    raise TypeError("'size' must be an integer.")

Это происходит из pyts.image.image.py, где код проверки выглядит так:

if not isinstance(self.image_size, int):
            raise TypeError("'size' must be an integer.")

Не заставил его работать. Кто-нибудь пробовал? Thanx

1 Ответ

0 голосов
/ 01 сентября 2018

Наконец-то понял. Обратите внимание на array_reshape c(1,25) и MTF as.integer(5) :

library(reticulate)
use_virtualenv("~/virtualenv", required = TRUE)
np <- import("numpy", convert = FALSE)
plt <- import("matplotlib.pyplot")
img <- import("pyts")

# R variables
image_data <- runif(25)
reshape_image_data <- array_reshape(image_data, c(1,25))

# Reticulated Python variables
x_array <- np$array(reshape_image_data)

mtf <- img$image$MTF(as.integer(5))

X_mtf <- mtf$fit_transform(x_array)
...