Python tensorflow.nn.conv1d是否具有梯度?

Python tensorflow.nn.conv1d是否具有梯度?,python,python-3.x,tensorflow,Python,Python 3.x,Tensorflow,我尝试在tensorflow.nn.conv1d上使用get\u gradient\u函数(),如下所示: import tensorflow as tf from tensorflow.python.framework.ops import get_gradient_function d = tf.constant([1, 0, 2, 3, 0, 1, 1], dtype=tf.float32, name='d') k = tf.constant([2, 1, 3], dtype=tf.fl

我尝试在
tensorflow.nn.conv1d
上使用
get\u gradient\u函数()
,如下所示:

import tensorflow as tf
from tensorflow.python.framework.ops import get_gradient_function

d = tf.constant([1, 0, 2, 3, 0, 1, 1], dtype=tf.float32, name='d')
k = tf.constant([2, 1, 3], dtype=tf.float32, name='k')

data = tf.reshape(d, [1, int(d.shape[0]), 1], name='data')
kernel = tf.reshape(k, [int(k.shape[0]), 1, 1], name='kernel')

conv = tf.nn.conv1d(data, kernel, 1, 'SAME', name='conv')

with tf.Session() as sess:
    print (sess.run(conv))

op = tf.get_default_graph().get_operation_by_name('conv')
print(get_gradient_function(op))
我在倒数第二行遇到以下错误

KeyError:“名称‘conv’指的是不在图形中的操作。”


图中似乎没有“conv”,您可以通过
tf.get\u default\u graph().get\u operations()
打印所有操作,如下所示

d
k
data/shape
data
kernel/shape
kernel
conv/ExpandDims/dim
conv/ExpandDims
conv/ExpandDims_1/dim
conv/ExpandDims_1
conv/Conv2D
conv/Squeeze
conv.op.name
print
conv/squence
。因此,
name=conv
只需给出输出名称即可

这样,
op=tf.get\u default\u graph().get\u操作(按名称('conv/squence')
将起作用