[英]Does the tensorflow.nn.conv1d has a gradient?
我試圖像這樣在tensorflow.nn.conv1d
上使用get_gradient_function()
:
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_default_graph().get_operaions()
打印所有操作,如下所示
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
打印conv/Squeeze
。 所以name=conv
只是給出外部名稱。
這樣, op = tf.get_default_graph().get_operation_by_name('conv/Squeeze')
將起作用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.