【问题标题】:Input Tensor into tensorflow graph将张量输入到张量流图中
【发布时间】:2018-10-17 09:32:46
【问题描述】:

我正在关注simple audio recognition 的教程,目前正在编辑label_wav.py。在原始情况下,我们输入波形文件,图形预测标签(在它之间计算频谱,mfcc 在图形内)。现在我正在寻找直接输入mfcc而不是输入波形文件。 Run the graph 通过输入 mfcc 张量。

# mfccs:  Tensor("strided_slice:0", shape=(1, 98, 40), dtype=float32)
mfcc_input_layer_name = 'Reshape:0'
with tf.Session() as sess:
    predictions, = sess.run(softmax_tensor, {mfcc_input_layer_name: mfcc})

经过一番谷歌搜索,我找到了some discussion in git 并创建了一个session_handle

# mfccs:  Tensor("strided_slice:0", shape=(1, 98, 40), dtype=float32)
mfcc_input_layer_name = 'Reshape:0'
with tf.Session() as sess:
      h = tf.get_session_handle(mfccs)
      h = sess.run(h)
      predictions, = sess.run(softmax_tensor, {mfcc_input_layer_name: h})

代码按预期工作但我想知道是否有更好的方法来处理张量而不是创建句柄然后传递它?

【问题讨论】:

  • 这是一个已知的输入还是你试图强制的东西?
  • 知道输入。我使用this 教程计算过。除了我直接输入 pcm。
  • mfcc_input_layer_name 来自哪里?教程中没有。
  • 更新问题。

标签: python tensorflow tensor


【解决方案1】:

我想你想用 feed_dict 的值替换中间张量。如果你有一个 Tensor 对象,你可以用 feed_dict 替换它,如下所示

a = tf.constant(3, name="a")
b = tf.constant(4, name="b")
c = tf.add(a, b, name="c")
d = c * 3

with tf.Session() as sess:
    print(sess.run(d))    
    print(sess.run(d, feed_dict={c: 2}))

即使你没有 Tensor 对象,你也可以通过 get_tensor_by_name 得到它

a = tf.constant(3, name="a")
b = tf.constant(4, name="b")
c = tf.add(a, b, name="c")
d = c * 3

with tf.Session() as sess:
    c_tensor = tf.get_default_graph().get_tensor_by_name("c:0")
    print(sess.run(d, feed_dict={c_tensor: 2}))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 2018-10-31
    相关资源
    最近更新 更多