TensorFlow、批量索引(第一维)和排序

2024-02-25

我有一个形状为 params 张量(?,368,5),以及具有形状的查询张量(?,368)。查询张量存储用于对第一个张量进行排序的索引。

所需的输出具有以下形状:(?,368,5)。由于我需要它作为神经网络中的损失函数,因此所使用的操作应该保持可微分。另外,在运行时第一个轴的大小?对应于批量大小。

到目前为止我尝试过tf.gather and tf.gather_nd, 然而tf.gather(params,query)结果得到形状为的张量(?,368,368,5).

查询张量是通过执行以下操作来实现的:

query = tf.nn.top_k(params[:, :, 0], k=params.shape[1], sorted=True).indices

总的来说,我尝试按第三轴上的第一个元素对参数张量进行排序(用于某种倒角距离)。最后要提的是,我与Keras框架。


您需要将第一个维度的索引添加到query为了使用它tf.gather_nd。这是一种方法:

import tensorflow as tf
import numpy as np

np.random.seed(100)

with tf.Graph().as_default(), tf.Session() as sess:
    params = tf.placeholder(tf.float32, [None, 368, 5])
    query = tf.nn.top_k(params[:, :, 0], k=params.shape[1], sorted=True).indices
    n = tf.shape(params)[0]
    # Make tensor of indices for the first dimension
    ii = tf.tile(tf.range(n)[:, tf.newaxis], (1, params.shape[1]))
    # Stack indices
    idx = tf.stack([ii, query], axis=-1)
    # Gather reordered tensor
    result = tf.gather_nd(params, idx)
    # Test
    out = sess.run(result, feed_dict={params: np.random.rand(10, 368, 5)})
    # Check the order is correct
    print(np.all(np.diff(out[:, :, 0], axis=1) <= 0))
    # True
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TensorFlow、批量索引(第一维)和排序 的相关文章

  • 在 django ORM 中查询时如何将 char 转换为整数?

    最近开始使用 Django ORM 我想执行这个查询 select student id from students where student id like 97318 order by CAST student id as UNSIG
  • 处理 Python 行为测试框架中的异常

    我一直在考虑从鼻子转向行为测试 摩卡 柴等已经宠坏了我 到目前为止一切都很好 但除了以下之外 我似乎无法找出任何测试异常的方法 then It throws a KeyError exception def step impl contex
  • Python getstatusoutput 替换不返回完整输出

    我发现了这个很棒的替代品getstatusoutput Python 2 中的函数在 Unix 和 Windows 上同样有效 不过我觉得这个方法有问题output被构建 它只返回输出的最后一行 但我不明白为什么 任何帮助都是极好的 def
  • Pandas 日期时间格式

    是否可以用零后缀表示 pd to datetime 似乎零被删除了 print pd to datetime 2000 07 26 14 21 00 00000 format Y m d H M S f 结果是 2000 07 26 14
  • 使用 kivy textinput 的 'input_type' 属性的问题

    您好 我在使用 kivy 的文本输入小部件的 input type 属性时遇到问题 问题是我制作了两个自定义文本输入 其中一个称为 StrText 其中设置了 input type text 然后是第二个文本输入 名为 NumText 其
  • 您可以格式化 pandas 整数以进行显示,例如浮点数的“pd.options.display.float_format”?

    我见过this https stackoverflow com questions 18404946 py pandas formatdataframe and this https stackoverflow com questions
  • 如何使用 Pandas、Numpy 加速 Python 中的嵌套 for 循环逻辑?

    我想检查一下表的字段是否TestProject包含了Client端传入的参数 嵌套for循环很丑陋 有什么高效简单的方法来实现吗 非常感谢您的任何建议 def test parameter a list parameter b list g
  • Pandas Merge (pd.merge) 如何设置索引和连接

    我有两个 pandas 数据框 dfLeft 和 dfRight 以日期作为索引 dfLeft cusip factorL date 2012 01 03 XXXX 4 5 2012 01 03 YYYY 6 2 2012 01 04 XX
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • Python,将函数的输出重定向到文件中

    我正在尝试将函数的输出存储到Python中的文件中 我想做的是这样的 def test print This is a Test file open Log a file write test file close 但是当我这样做时 我收到
  • 如何通过 TLS 1.2 运行 django runserver

    我正在本地 Mac OS X 机器上测试 Stripe 订单 我正在实现这段代码 stripe api key settings STRIPE SECRET order stripe Order create currency usd em
  • pyspark 将 twitter json 流式传输到 DF

    我正在从事集成工作spark streaming with twitter using pythonAPI 我看到的大多数示例或代码片段和博客是他们从Twitter JSON文件进行最终处理 但根据我的用例 我需要所有字段twitter J
  • 加快网络抓取速度

    我正在使用一个非常简单的网络抓取工具抓取 23770 个网页scrapy 我对 scrapy 甚至 python 都很陌生 但设法编写了一个可以完成这项工作的蜘蛛 然而 它确实很慢 爬行 23770 个页面大约需要 28 小时 我看过scr
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • 如何在 Windows 命令行中使用参数运行 Python 脚本

    这是我的蟒蛇hello py script def hello a b print hello and that s your sum sum a b print sum import sys if name main hello sys
  • 如何在 pygtk 中创建新信号

    我创建了一个 python 对象 但我想在它上面发送信号 我让它继承自 gobject GObject 但似乎没有任何方法可以在我的对象上创建新信号 您还可以在类定义中定义信号 class MyGObjectClass gobject GO
  • Python ImportError:无法导入名称 __init__.py

    我收到此错误 ImportError cannot import name life table from cdc life tables C Users tony OneDrive Documents Retirement retirem
  • 如何计算Python中字典中最常见的前10个值

    我对 python 和一般编程都很陌生 所以请友善 我正在尝试分析包含音乐信息的 csv 文件并返回最常听的前 n 个乐队 从下面的代码中 每听一首歌曲都是一个列表中的字典条目 格式如下 album Exile on Main Street
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解
  • 张量流中的复杂卷积

    我正在尝试运行一个简单的卷积 但包含复数 r np random random 1 10 10 10 i np random random 1 10 10 10 x tf complex r i conv layer tf layers c

随机推荐

  • 在 Spring 中启用 WebSocket 的跨源请求

    我有一个 OpenShift Wildfly 服务器 我正在建立一个网站Spring MVC框架 我的一个网页也使用 WebSocket 连接 在服务器端 我使用了 ServerEndpoint注释和javax websocket 库来创建
  • 无法使用xampp控制面板安装Tomcat

    我按照以下步骤成功安装了 xampp v3 2 1JetBrains 指南 http confluence jetbrains com display PhpStorm Installing and Configuring XAMPP wi
  • 在 JavaScript 中增加变量的其他方法[重复]

    这个问题在这里已经有答案了 可能的重复 为什么在 JavaScript 中避免递增 和递减 运算符 https stackoverflow com questions 971312 why avoid increment and decre
  • 调用deleteRowsAtIndexPaths时,具有自动调整单元格大小的UITableView变得不稳定

    我有一个带有自动调整单元格大小的 UITableView 表包含 1 个部分和一些行 我有一些行说 30 我想在期间删除行didSelectRowAtIndexPath 当我删除 tableview 底部附近的可用行 例如第 28 行 时
  • 为 Ruby 编写模块

    如何为 ruby 编写模块 在Python中你可以使用 module py def helloworld name print Hello s name main py import module module helloworld Jim
  • Dj Rest Auth 自定义注册不起作用

    I am using DJ REST AUTH for user registration API I want the first name and last name to show in the API endpoint howeve
  • 仅在没有错误的情况下编译 TeX 源并启动 PDF 的 Vim 脚本

    我正在改用 Vim 作为我的 LaTeX 编辑环境 我希望能够从 Vim 中解析源文件 并在编译成功时启动外部查看 我了解 Vim Latex 套件 但是 如果可能的话 我宁愿避免使用它 它相当重量级 劫持了lot我的钥匙 并且用大量文件弄
  • mysql 计入 PHP 变量

    假设我们有以下查询 SELECT DISTINCT COUNT users id FROM users table 此查询将返回表中的用户数量 我需要将此值传递给 PHP 变量 我正在使用这个 sql result mysql query
  • C#从串口读取数据

    我正在尝试从串行端口读取数据 数据脱离了规模 我首先发送一个命令来开始读取秤 serialPort Write P 然后等了一段时间后我尝试使用 temp2 serialPort ReadLine 应用程序挂在这行代码处 我也尝试过 Rea
  • Unix 域套接字如何区分多个客户端?

    TCP 具有元组对 IP 地址 端口 类型 来区分一个客户端和另一个客户端 UDP 传递客户端 IP 和端口 unix 域如何跟踪不同的客户端 换句话说 服务器创建一个绑定到某个路径 例如 tmp socket 的套接字 2 个或更多客户端
  • 使用 htaccess 禁止文本文件中的 IP [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我阅读并理解了如何使用 htaccess 阻止 ip order deny allow deny from 111 222 33 44
  • 使用 OAuth 通过本机客户端 (.Net) 访问受保护的 Google Apps 脚本 Web 服务

    我的 Net 客户端应用程序 Winform 允许用户使用浏览器控件在 Google 上进行身份验证 我能够在响应中检索 access token 我按照说明进行操作here https developers google com acco
  • Scala 2.10 中验证和扩展构造函数参数的最佳方法

    我想要一个具有许多字段 例如字符串 布尔值等 的类 并且在构造该类时 我想要一个与每个字段关联的字段名并验证该字段 使用字符串的正则表达式 理想情况下 我只想在构造函数中指定参数需要满足某些条件 一些示例代码 case class Data
  • 我可以在 bash shell 中对变量进行 for 循环吗?

    我正在学习 shell 我希望能够循环一些变量 我似乎找不到任何地方有人这样做过 所以我不确定这是否可能 基本上我只是想通过对每个变量使用相同的 sed 命令来省去自己的麻烦 但是该代码显然不起作用 我的问题是 是否可以循环变量 如果不能循
  • PHPExcel - 图表渲染和加载 Excel 给出错误

    require once PHPExcel 1 7 7 Classes PHPExcel php inputFileName RN Tracker xlsx inputFileType PHPExcel IOFactory identify
  • 将此 cURL 转换为 Guzzle

    我尝试阅读 Guzzle 文档 但我无法解决这个问题 我想使用 Guzzle 而不是 cURL 来执行以下操作 protected url https secure abcdef com cgi xml request server php
  • Javascript AOP 库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您使用哪个 Javascript AOP 库 它的主要功能是什么 这是我到目前为止发现的 dotvoid
  • Angular 6/C#/MVC 以 Json Array of Array 的形式从控制器动态返回 JsonResult

    我正在尝试在 Angular 6 应用程序中将多个数据集导出到 Excel 为此 我使用 XLSX 和文件保存 如本例中所示 https medium com madhavmahesh exporting an excel file in
  • 使用 Redis 进行复合查询

    出于学习目的 我尝试在 Redis 中编写一个简单的结构化文档存储 在我的示例应用程序中 我正在对数百万个文档建立索引 这些文档看起来有点像下面这样
  • TensorFlow、批量索引(第一维)和排序

    我有一个形状为 params 张量 368 5 以及具有形状的查询张量 368 查询张量存储用于对第一个张量进行排序的索引 所需的输出具有以下形状 368 5 由于我需要它作为神经网络中的损失函数 因此所使用的操作应该保持可微分 另外 在运