Как преобразовать массив формы (150,150,3) в массив формы (1,8192) - PullRequest
2 голосов
/ 26 апреля 2020

Я обучил модель глубокого обучения следующим образом, это база классификатора для VGG16.

model = tf.keras.models.Sequential([
tf.keras.layers.Dense(256, activation='relu', input_dim=4 * 4 * 512),
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Dense(1, activation='sigmoid')

1-Моя модель принимает тензоры формы (1,8192) для предсказаний.

2-У меня есть тестовые изображения формы (150,150,3), которые преобразуются в массивы.

3-Теперь я хочу метод преобразования моих (150,150,3) изображений в тензоры формы (1,8192) ).

1 Ответ

3 голосов
/ 26 апреля 2020

Входное измерение кажется очень произвольным и не подходит для задачи. Если вы очень упрямы, чтобы продолжить, вы можете просто привести его к 1d массиву и выполнить повторную выборку следующим образом:

import numpy as np 
from scipy import signal

image = np.random.rand(150,150,3)
image_8192 = signal.resample(image.ravel(), 8192)

... но это очень плохая идея. Несколько разумнее было бы более разумно уменьшить изображение, сначала преобразовав его в оттенки серого, а затем уменьшив:

from skimage.color import rgb2gray
from skimage.transform import resize

grayscale = rgb2gray(image) 
grayscale_91pix = resize(image, (91, 91)) # size 8291
image_8192 = signal.resample(grayscale_91pix.ravel(), 8192)

Это все же не здорово, но лучше, чем наивный подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...