问题类型
文档错误
你是否在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:
3条答案
按热度按时间arknldoa1#
你好 @burnpanck ,
我能够复现这个问题。我在 TensorFlow 2.14 和 tf.nightly 中检查了等长和不等长步幅的情况。滤波器Tensor的格式应该是:' [filter_height, filter_width, in_channels, channel_multiplier]',这样它才能在等长步幅下运行。否则,即使是等长步幅,它也会显示错误。我已经附上了相关代码供您参考。
谢谢!
zrfyljdw2#
@Venkat6871,我不太确定我是否理解你的意思,除了你可以确认
tf.nn.depthwise_conv2d
不符合其文档。就我所见,不幸的是,没有一种解决方法能让我们高效地执行等效操作。所以这仍然是一个应该修复的文档错误。我花了很多时间研究如何将自定义层Map到TF,我能做的唯一方法是使用不相等的步长。如果文档提到了这个限制,那么我就不用费那个劲了。可能还有其他人会遇到这个问题,所以我认为应该修复它。6rvt4ljy3#
但是,移除这个限制可能会很有趣!