- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些如下所示的 TensorFlow 代码:
input_layer = tf.reshape(X, [-1, length, channels])
conv1_filters = 10
conv1_kernel_size = 5
conv1 = tf.layers.conv1d(
inputs=input_layer,
filters=conv1_filters,
kernel_size=conv1_kernel_size,
padding='same',
activation=tf.nn.relu,
)
它实际上工作正常,但在 TF 1.6.0 中它现在收到警告:
警告:tensorflow:来自 C:\Users\w\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\util\deprecation.py:497:调用 conv1d(来自 tensorflow.python .ops.nn_ops) with data_format=NHWC 已弃用,将在未来版本中删除。更新说明:data_format 的 NHWC
已弃用,请改用 NWC
好吧,也许我应该更新我的代码。我尝试向 conv1d 调用添加一个参数:
data_format='NWC',
但是出现错误:
ValueError:data_format
参数必须是“channels_first”、“channels_last”之一。收稿:NWC
好的,我尝试按照错误信息所说的去做:
data_format='channels_last',
但这会得到原始弃用警告。
还有什么我应该做的,还是应该忽略警告?
最佳答案
我也在想同样的事情,你的问题促使我对此进行调查。调用 tf.layers.conv1d
实际上会导致调用一长串与卷积相关的类/方法(ops using ops using ops...)。
准确地说(如果不感兴趣可以跳过):
layers.conv1d
使用 layers._Conv
(所有转换层的基类)。layers._Conv
调用 nn_ops.Convolution
作为它的 _convolution_op
。nn_ops.Convolution
使用 _WithSpaceToBatch
作为其 conv_op
。_WithSpaceToBatch
获取 _NonAtrousConvolution
作为其 build_op
。_NonAtrousConvoluton
将(在 1D 情况下)使用 conv1d
作为其 conv_op
(准确地说它使用 self._conv1d
调用 conv1d
)。这就是tf.nn.conv1d
,当然和我们一开始调用的tf.layers.conv1d
有很大的不同。tf.nn.conv1d
会产生弃用警告。我强烈怀疑沿着这条链的某个地方,从“用户友好”channels_first/last
(由 tf.layers
接口(interface)使用)到更通用的转换NCHW/NHWC
(由较低级别的操作使用)等格式未正确更新为使用 NCW/NWC
进行一维卷积。
简短而乏味的答案:See this github issue .显然这不会在 TF 1.7 中得到修复。
关于tensorflow - conv1d data_format 弃用警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49477144/
我是一名优秀的程序员,十分优秀!