Python 如何将矩阵转换为与keras兼容的图像?

Python 如何将矩阵转换为与keras兼容的图像?,python,python-3.x,keras,Python,Python 3.x,Keras,我想做的是转换类似于这个矩阵的东西(python中的2D列表) 0 0 0 11 0 0 0 像这样的图像 黑黑 白色 黑黑 哪一个将与keras的卷积层兼容 p、 美国 我对keras使用的“图像”的实际数据结构缺乏了解,因此我陷入了一种陈规。如果可能的话,如果有人能告诉我图像是什么样的数据结构就好了。我目前的猜测是宽度、高度和RGB值的三维数组,或者单色图像的二维数组。但是,我不确定它是0到1还是0到255之间的值。我还怀疑该值必须是“float32”类型,但我不确定该如何处理这些事实。Ke

我想做的是转换类似于这个矩阵的东西(python中的2D列表)

0 0 0

11

0 0 0

像这样的图像

黑黑

白色

黑黑

哪一个将与keras的卷积层兼容

p、 美国


我对keras使用的“图像”的实际数据结构缺乏了解,因此我陷入了一种陈规。如果可能的话,如果有人能告诉我图像是什么样的数据结构就好了。我目前的猜测是宽度、高度和RGB值的三维数组,或者单色图像的二维数组。但是,我不确定它是0到1还是0到255之间的值。我还怀疑该值必须是“float32”类型,但我不确定该如何处理这些事实。

Keras是数值型的,因此,
0
1
非常适合该任务,除了观察第一层所需的
输入形状
,您不必做任何其他事情

如果使用0到255也不是什么大问题,但标准是使用0到1。重要的是,您的输出与您上次使用的“激活”相匹配。(例如:“sigmoid”激活将提供介于0和1之间的输出)

卷积层输入形状:

要将数据作为卷积层的输入,必须按如下方式塑造数据:

(NumberOfImages, Width, Heigth, channels) #W and H may be inverted, but it doesn't matter much as long as they will not be swapped along the model.    
例如,通道代表具有红色、绿色、蓝色通道的图像。有些图像可能有4个通道。黑白图像有一个通道

图像是什么样的数据结构?

这在很大程度上取决于您使用哪个库来加载图像。 如果您有numpy数组,只需像以前一样处理从0到1的数字

当使用
pillow
(一个图像库)时,它将返回从0到255的值,您只需从中创建一个numpy数组并将其除以255即可

from PIL import Image
import numpy as np

im = Image.open(filename)
im = im.resize(size,Image.LANCZOS) #if your images are not already the size you want    
im = np.asarray(im)/255

谢谢!我的代码现在可以工作了!我还希望能够将这些矩阵显示为渲染图像(而不是疯狂地将0和1打印到我的控制台上)。我只需将形状数组(宽度、高度、通道)转换为0到255之间的值即可。是吗?使用
matplotlib
可以从0到1绘制numpy数组,没有问题。可能还有许多其他库用于将numpy阵列打印为图像。