【问题标题】:tf.extract_image_patches Produces different outputtf.extract_image_patches 产生不同的输出
【发布时间】:2018-04-16 02:38:50
【问题描述】:

我有张量 [batch, height, width, depth] 中的图像,我想使用 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] 相同。

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

知道当输入张量包含超过 1 个深度且没有循环时如何产生与案例 1 相同的结果吗?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 仍然无法解决可视化时输出差异很大的问题,或者使用 tf.equal 进行测试。
    • 那么您对 ​​extract_image_patches 对频道的作用感到困惑吗?
    • 是的,当有多个深度/通道时。
    猜你喜欢
    • 2014-05-06
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多