我有一个内置于TF中的CNN,其使用Input(shape = (1000,1000,5))
。这是因为该图像是5张黑白图像的堆栈。我所有的样本都是不同地点的航拍照片,因此原始图像的大小各不相同(并且远大于1000、1000)。但是,TF要求所有输入都具有相同的预定大小,因此我们决定从所有图像中裁剪1000、1000。
这显然会丢失很多可用信息。我正在研究使网络具有动态输入形状的方法,以便可以拍摄所有原始图像。我在网上发现了多个建议,但每个建议都存在问题。
Input()
,然后可以将其卷积为相同的形状张量。问题在于,这意味着一个卷积层将不会受到不良观察值的一半的影响(除非我误解了下一层的工作原理)。例如:# a and b are fixed, different, image shapes
for image in inputs:
if image.shape == a:
x = Input(shape = a)
x = conv2d_transpose(output_shape = (1000, 1000, 5))
else:
y = Input(shape = b)
y = conv2d_transpose(output_shape = (1000, 1000, 5))
任何输入(很抱歉)。
答案 0 :(得分:0)
有什么理由不采用最大可能的尺寸和零填充输入?这就是您在链接的线程中所做的事情。 Kinda具有粘性,但它曾经是NLP中的常见做法,并且可以选择在卷积层内进行。