tf.extract_image_patches生成不同的输出

时间:2018-04-16 02:38:51

标签: python python-3.x image-processing tensorflow image-manipulation

我有张量[批次,高度,宽度,深度]的图像,我想使用ksize=5x5stride=1x1从每个批次和每个深度中提取补丁。

tf.extract_image_patches(images=images, ksizes=[1, 5, 5, 1], strides=[1, 1, 1, 1], rates=[1, 1, 1, 1], padding='same')

现在问题是当输入张量的深度不同时,我会得到不同的结果,但我使用相同的图像。 案例1:输入张量,一批图像[4,28,28,1]产生输出张量[4,28,28,25]。

案例2:输入张量,一批图像,[4,28,28,8]产生输出张量[4,28,28,200]。

请注意,案例1 [0,:,:,]中的图像与案例2 [0,:,:,0]相同。

我认为Case 1 [0,:,:,]的输出张量值与Case 2 tensor [0,:,:,0:25]的值相同。 但是当我使用case1 == case 2检查矩阵时,我发现我的假设是错误的,返回false。

当输入张量包含多于1个没有循环的深度时,任何想法如何产生与情况1相同的结果?

1 个答案:

答案 0 :(得分:0)

不要case1 == case2;使用tf.equal(case1, case2)代替创建一个操作,该操作在运行时将评估它们是否相等。