【发布时间】:2018-11-21 16:11:14
【问题描述】:
我是新来的 tf.我已经使用 tensorflow 训练了一个编码器 - 解码器。该程序将一个单词作为输入并打印出它的音素。
例如:Hello World -> ['h', 'E', 'l', '"', '@U', '', 'w', '"', '3`', 'r ', '5', 'd']
我想访问每个所选音素的预测概率。
在预测部分,我使用的代码如下:
def predict(words, sess):
if len(words) > hp.batch_size:
after = predict(words[hp.batch_size:], sess)
words = words[:hp.batch_size]
else:
after = []
x = np.zeros((len(words), hp.maxlen), np.int32) # 0: <PAD>
for i, w in enumerate(words):
for j, g in enumerate((w + "E")[:hp.maxlen]):
x[i][j] = g2idx.get(g, 2)
preds = np.zeros((len(x), hp.maxlen), np.int32)
for j in range(hp.maxlen):
xpreds = sess.run(graph.preds, {graph.x: x, graph.y: preds})
preds[:, j] = xpreds[:, j]
提前谢谢你!
我的主要问题是这些概率“隐藏”在哪里以及如何访问它们。例如,单词“Hello”中的字母“o”与音素“@U”映射。我想知道“@U”被选为理想音素的概率有多大。
【问题讨论】:
-
你能正确格式化代码吗?不确定代码块中的所有内容是否都应该在
predict函数中。你有什么尝试打印出概率?试图确定这是否是一个重复的问题,或者是否还有更多问题 -
感谢您的回答。实际上,我已经尝试了一些在网上找到的东西。我已经尝试过 np.argmax、tf.argmax、tf.nn.top_k 和其他命令。问题的一部分是即使上面的命令产生了一些东西,也存在访问和读取数据的问题。主要是因为它们是张量
-
看
tf.Print或evalstackoverflow questions with answers -
我使用的代码基于:github.com/Kyubyong/g2p 我所做的更改主要是在预处理上,以便使用我自己的数据。但心始终如一。我使用 train.py 来训练我的模型,并使用 g2p.py 进行预测。兴趣点位于 g2p.py 的第 85 行。我必须找到一种方法来利用“ _preds = sess.run(graph.preds, {graph.x: x, graph.y: preds}) ”中的信息,不仅可以进行预测,还可以打印每个预测的概率
标签: python tensorflow