tensorflow 文档中关于tf.nn.depthwise_conv2d的说明没有提到步幅的限制,

jutyujz0  于 4个月前  发布在  其他
关注(0)|答案(3)|浏览(97)

问题类型

文档错误

你是否在TensorFlow Nightly版本中重现了这个bug?

问题来源

二进制文件

TensorFlow版本

2.14.0

自定义代码

OS平台和发行版

macOS 13.6

移动设备

Python版本

3.11

Bazel版本

  • 未回复*

GCC/编译器版本

  • 未回复*

CUDA/cuDNN版本

  • 未回复*

GPU型号和内存

  • 未回复*

当前行为?

显然,TensorFlow的tf.nn.depthwise_conv2d最近失去了与不等步长一起工作的能力(参见#60391;显然它在TF 2.11之前是受支持的)。这在tf.keras.layers.SeparableConv2D的文档中有所提及(尽管我认为鉴于这是深度卷积的特定限制,应该更加强调这一点)。

重现问题的独立代码

import tensorflow as tf
import numpy as np
layer1 = tf.nn.depthwise_conv2d(np.ones((2,3,4,5)),filter=np.ones((1,2,5)),strides=(1,1,2,1),padding="SAME")

相关日志输出

InvalidArgumentError: {{function_node __wrapped__DepthwiseConv2dNative_device_/job:localhost/replica:0/task:0/device:CPU:0}} Current implementation only supports equal length strides in the row and column dimensions. [Op:DepthwiseConv2dNative] name:
arknldoa

arknldoa1#

你好 @burnpanck ,
我能够复现这个问题。我在 TensorFlow 2.14 和 tf.nightly 中检查了等长和不等长步幅的情况。滤波器Tensor的格式应该是:' [filter_height, filter_width, in_channels, channel_multiplier]',这样它才能在等长步幅下运行。否则,即使是等长步幅,它也会显示错误。我已经附上了相关代码供您参考。
谢谢!

zrfyljdw

zrfyljdw2#

@Venkat6871,我不太确定我是否理解你的意思,除了你可以确认tf.nn.depthwise_conv2d不符合其文档。就我所见,不幸的是,没有一种解决方法能让我们高效地执行等效操作。所以这仍然是一个应该修复的文档错误。我花了很多时间研究如何将自定义层Map到TF,我能做的唯一方法是使用不相等的步长。如果文档提到了这个限制,那么我就不用费那个劲了。可能还有其他人会遇到这个问题,所以我认为应该修复它。

6rvt4ljy

6rvt4ljy3#

但是,移除这个限制可能会很有趣!

相关问题