如何将形状的数组(150,150,3)重塑为形状的数组(1,8192)

问题描述 投票:0回答:1

我训练了一个深度学习模型,如下,它是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)的 tensors 进行预测。

2-我有形状的测试图像(150,150,3),这些图像被转换为数组。

3-现在我想要一种方法将我的(150,150,3)图像转换为形状(1,8192)的tensors。

python numpy tensorflow deep-learning neural-network
1个回答
3
投票

输入的维度似乎很随意,不适合任务。如果你很固执地要继续,你可以简单地把它投成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)

虽然还不是很好,但总比天真无邪的方法好。

© www.soinside.com 2019 - 2024. All rights reserved.