python - 使用矩阵的张量索引
问题描述
我有矩阵(3 x 15)dummies
,其中标记序列为行:
[[ 1 66 67 68 0 0 0 0 0 0 0 0 0 0 0]
[ 1 66 67 66 68 66 67 66 0 0 0 0 0 0 0]
[ 1 66 67 68 18 19 20 21 22 23 24 25 26 17 0]]
此外,还有一个probs
形状张量 (3 x 15 x n_tokens) 和令牌概率。
从probs
我只需要选择dummies
.
我认为,可以将矩阵用作张量的索引,但我还没有找到如何做到这一点。
解决方案
你可以这样做:
import tensorflow as tf
dummies = ...
probs = ...
s = tf.shape(dummies)
i = tf.range(s[0])
j = tf.range(s[1])
ii, jj = tf.meshgrid(i, j, indexing='ij')
idx = tf.stack([ii, jj, dummies], axis=-1)
result = tf.gather_nd(probs, idx)
推荐阅读
- ansible - 使用 getent 获取用户和用户目录
- reactjs - 在连接组件上使用浅层时酶错误:“浅层渲染仅适用于自定义组件”
- linux - PHP进程内存泄漏
- php - Laravel:缓存记住永远关闭不运行
- http - 在本地服务器上隐藏机密文本文件
- c++ - 如何在c ++中从字符串评估算术运算
- typescript - 为什么 webpack 无法加载块?
- javascript - 用 JS map 构造对象会导致一些未定义的键。为什么?
- google-apps-script - 谷歌表单触发选项选择警报
- php - 从 SQL 表中获取文件列表,在 PHP 中显示并检查文件是否处于活动状态