我想要做的是转换像这个矩阵(python中的2D列表)
之类的东西0 0 0
1 1 1
0 0 0
到这样的图像
黑色黑色黑色
白色白色白色
黑色黑色黑色
哪个与keras的卷积层兼容?
P.S。
我不了解"图像"的实际数据结构。由keras使用,因此我陷入了困境。如果可能的话,如果有人能告诉我图像的数据结构是什么样的话会很好。我目前的猜测是宽度,高度和RGB值的三维数组,或单色图像的二维数组。但是,我不确定它是否是0到1或0到255之间的值。我还怀疑该值必须是" float32"但我不确定如何处理这些事实。
答案 0 :(得分:0)
Keras是数字,因此,0
和1
非常适合完成任务,除了观察所需的input_shape
之外,您不必做任何其他事情。第一层。
如果您使用0到255也不是一个大问题,但标准是使用0到1.您的输出与最后一次激活相匹配非常重要&#39 ;你用。 (例如:' 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