首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >高效地计算两个矩阵的所有组合(行向),作为TensorFlow中经过预处理的二进制分类器的输入?

高效地计算两个矩阵的所有组合(行向),作为TensorFlow中经过预处理的二进制分类器的输入?
EN

Stack Overflow用户
提问于 2017-08-06 06:10:09
回答 1查看 165关注 0票数 0

我正在对我在TensorFlow推荐系统领域的研究进行评估。我预先训练了一个二进制分类器,它在0,1内输出一个值,它需要一个用户和一个项表示,并将其进一步转换为模型中的嵌入。

我有100,000个用户,每个用户由3‘283个特性表示,因此用户矩阵的维度为100000x3283。大约有170万个项目,它们所代表的特征数量(3277)也几乎相同。这些特征被进一步划分为连续的和明确的parst。因此,模型中有4个占位符,它们期望在括号中包含特征量的值:

  • 用户连续(12)
  • 用户分类(3271)
  • 项目连续(6)
  • 项目分类(3271)

我需要为>10^11组合中的每一个计算各自的值,并为每个用户rgd收集最佳1000项的索引和输出值。最高的网络输出。

,什么是最有效的方法?

在遇到tf.nn.top_k函数时,我仍然不确定是否将数据(部分)预加载到张量变量(因为常量由于TF的内部副本而占用了太多内存),或者通过numpy数组进行输入,以及如何在内部进行组合。我在会话运行过程中使用循环和np.repeat,但是这太过内存紧张和时间效率太低。因此,下面的代码是第一次尝试--知道它的效率很低,但至少让它发挥作用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sess = tf.Session()
saver.restore(sess, tf.train.latest_checkpoint('logging_embed/'))
results = np.zeros(len(items))
start = time.time()
results = sess.run(out_layer, feed_dict={user_cont: np.repeat(np.atleast_2d(profiles[user, :12]), len(items), axis=0),
                                         user_cat: np.repeat(np.atleast_2d(profiles[user, 12:]), len(items), axis=0),
                                         item_cont: np.atleast_2d(items[:, :6]),
                                         item_cat: np.atleast_2d(items[:, 6:])})
print(str(time.time() - start))

我正在2特斯拉K80上运行实验,总GPU约为23 be,但已经注意到,使用tf.float32的变量表示是应该的3-4倍,因此需要分块的项目,例如200 K,或300 K。

,谢谢您的任何有益建议!

EN

回答 1

Stack Overflow用户

发布于 2017-08-22 21:06:42

我不知道这是否是最有效的方法,但是我会按照下面的方法来处理这个问题。使您的模型将n用户和m项目配置文件作为输入并输出为输出的n x m矩阵--输入中的每个用户/项对对应一个。一旦您有了这个模型,您就可以试验nm的值,这些值在您的硬件上运行得很好。然后,只需使用正确的用户/项块调用该模型,并在每次模型调用之后更新每个用户当前的最佳项。

维护应该是可管理的,并且很可能可以在CPU上完成。为100 k用户提供1000项-> 4*1000*100 k=400 for矩阵。如果您为每个用户排序的项目评分,更新可以相当便宜。而且,您一次只与n用户打交道。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45532840

复制
相关文章
ElementUI获取子组件验证结果
​ 尽管有 prop 和事件,但是有时仍然需要在 JavaScript 中直接访问子组件。为此可以使用 ref 为子组件指定一个引用 ID。ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例。通过这种方式,便可以在父组件中调用子组件方法!
奋飛
2019/08/14
2K0
提交表单时input字段非空验证
需求,当提交表单的时候,如果要验证的字段为空,则弹出提示框提示请完善表单信息,并且 return;不执行下一步。
王小婷
2019/08/07
3K0
当elementui的el-dialog组件中包含子组件时,用refs调用子组件时的undefined问题
今天用elementui写了一个el-dialog组件里面包着一个el-transfer穿梭框组件, 代码
李维亮
2021/07/08
1.5K0
Vue 在父(子)组件引用其子(父)组件方法和属性
<button @click="callChildMethod()">父组件调用子组件方法</button>
授客
2020/06/23
1.9K0
JS阻止表单submit提交(在提交之前做验证及判断)
在工作中遇到表单提交之前,需要验证用户输入的是否为空,之前使用ajax做提交,在js里面直接做判断,如果用户输入为空则弹出提示框(起初默认是隐藏的,非alert弹出框),让用户重新输入,当输入框获取焦点的时候,弹出的提示框隐藏。
浩Coding
2019/07/12
13.7K0
在 Vue 中,父组件中传递数据给子组件
在父组件中传递数据给子组件。在 Vue 中,可以通过 props 属性来实现父组件向子组件传递数据的功能。
王小婷
2023/09/11
3030
在 Vue 中,子组件如何向父组件传递数据?
在子组件中,使用 $emit 方法触发一个自定义事件,并传递要传递给父组件的数据作为参数。
王小婷
2023/09/03
6210
SSH 提交签名验证
HDFS采用master/slave架构。一个HDFS集群是由一个Namenode和一定数目的Datanodes组成。 Namenode是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。 集群中的Datanode一般是一个节点一个,负责管理它所在节点上的存储。 HDFS暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。 从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组Datanode上。 Namenode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录。它也负责确定数据块到具体Datanode节点的映射。 Datanode负责处理文件系统客户端的读写请求。在Namenode的统一调度下进行数据块的创建、删除和复制。
Cell
2023/10/23
1840
SSH 提交签名验证
vue中在父组件点击按钮触发子组件的事件
1、父组件的button元素绑定click事件,该事件指向notify方法 2、给子组件注册一个ref=“child” 3、父组件的notify的方法在处理时,使用了$refs.child把事件传递给子组件的parentMsg方法,同时携带着父组件中的参数msg 4、子组件接收到父组件的事件后,调用了parentMsg方法,把接收到的msg放到message数组中
江一铭
2022/06/16
6.3K0
在使用Git时你应该这样提交代码
目前大部分公司都在使用 Git 作为版本控制,每个程序员每天都要进行代码的提交。很多开发者也包括我自己,有时候赶时间或者图省事,就这么提交:
码农小胖哥
2021/02/01
1.3K0
vue子组件调用父组件函数_vue子组件修改父组件值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
1.7K0
vue父组件调用子组件属性_vue子组件获取父组件实例
但是在vue3中,很显然使用this.$emit() 已经开始报错了,为什么会报错呢?
全栈程序员站长
2022/11/10
2.1K0
vue 父组件调用子组件_react父组件向子组件传值
1.直接在子组件中通过“this.$parent.event”来调用父组件的方法。
全栈程序员站长
2022/11/15
1.9K0
18:验证子串
18:验证子串 总时间限制: 1000ms 内存限制: 65536kB描述 输入两个字符串,验证其中一个串是否为另一个串的子串。 输入输入两个字符串, 每个字符串占一行,长度不超过200且不含空格。输出若第一个串s1是第二个串s2的子串,则输出(s1) is substring of (s2)  否则,若第二个串s2是第一个串s1的子串,输出(s2) is substring of (s1)  否则,输出 No substring。样例输入 abc dddncabca 样例输出 abc is
attack
2018/04/03
1.5K0
vue父组件引入子组件_vue子组件传递方法给父组件
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
1K0
js表单提交前验证
<script type="text/javascript"> function check(form) {
用户5760343
2019/08/20
12K0
vue 父组件调用子组件的函数_vue子组件触发父组件方法
项目里将element-ui的el-upload写成公共组件方便调用,官方的before-upload方法用于处理上传前要做的事,如:比较文件大小,限制文件类型等,通过返回true 或 false 控制是否上传。 当该组件调用父组件方法,并且要能获取到父组件方法的返回值,如何实现?
全栈程序员站长
2022/11/10
3K0
pbootcms 提交留言取消验证码验证
1.找到app/home/controller/MessageController.php 2.全局搜索验证码,目前最新版本大概在47行 3.将图中画红圈的代码注释或者删除
小唐同学.
2022/02/23
1.6K0
pbootcms 提交留言取消验证码验证
angularjs子组件向父组件传值_react子组件传值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/03
1.9K0
vue 父组件调用子组件的方法_vue子组件修改父组件值
我们都知道通过$ref可以获取到某个DOM,但是它也可以用来获取子组件的实例,调用子组件的方法
全栈程序员站长
2022/11/09
2K0

相似问题

使用Vee验证提交时的子输入组件-验证

65

在表单提交时验证只读组件

10

在提交时将对象从父组件传递到子组件

10

角反应形式提交不触发子组件验证

11

在提交时使用Vee-Validate和vue js 2验证子输入组件

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文