Итак, у меня есть ndarray формы: (28, 28, 1)
, и я хочу использовать интерполяцию bicubi c, чтобы увеличить ее до (33, 33, 1)
. Вот что я получил, выполнив поиск в Интернете:
import numpy as np
from PIL import Image as pil_image
...
img = np.array(pil_image.fromarray(img).resize(intermediate_dim, pil_image.BICUBIC))
# print(img.shape) -> (28, 28, 1), print(intermediate_dim) -> (33, 33)
Но я получаю сообщение об ошибке:
Traceback (последний вызов был последним): Файл "filters.py", строка 256, в visualize_layer (mnist, LAYER_NAME) Файл "filters.py", строка 232, в visualize_layer img_loss = _generate_filter_image (input_img, output_layer.output, f) Файл "filters.py", строка 161, в _generate_filter_image img = np.array (pil_image.fromarray (img) .resize (промежуточный_дим, pil_image.BICUBI C)) Файл "BlaBlaBla \ Python37 \ site-packages \ PIL \ Image.py", строка 2682, в формате fromarray повысить TypeError («Не удается обработать этот тип данных:% s,% s»% typekey) Ошибка типа: не удается обработать этот тип данных: (1, 1, 1), | u1
Увидев это, я попытался использовать img.astype(np.uint8)
, но ничего не помогло. Что я делаю не так?
PS Я уверен, что массив содержит допустимые значения (целые числа из [0, 255])