tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法

yipeiwu_com7年前Python基础

如下所示:

# u [32,30,200]
# u_logits [400,32,30]
q_j_400 = [] 
for j in range(400):
 q_j_400.append(tf.squeeze(tf.matmul(tf.transpose(u,[0,2,1]),tf.expand_dims(tf.nn.softmax(u_logits[j]),-1)),[2])) # tf.matmul [32,200,30],[32,30,1]
test_result = tf.stack(q_j_400)
test_result = tf.transpose(test_result,[1,0,2])

可以通过tf.tile实现更高速的版本

# u [32,30,200]
# u_logits [32,400,30]
u_tile = tf.tile(tf.expand_dims(u,1),[1,400,1,1])
u_logits = tf.expand_dims(tf.nn.softmax(u_logits,-1),-1)
test_result = tf.reduce_sum(u_logits * u_tile,-2) # [32,400,30,1]*[32,400,30,200]

以上这篇tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python中比较两个列表的实例方法

cmp() 方法用于比较两个列表的元素。 cmp()方法语法: cmp(list1, list2) 参数: list1 -- 比较的列表。list2 -- 比较的列表。 返回值:...

Python3连接SQLServer、Oracle、MySql的方法

环境: python3.4 64bit pycharm2018社区版 64bit Oracle 11 64bit SQLServer· Mysql 其中三种不同的数据库安装在不同的服务器...

Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】

Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】

本文实例讲述了Python基于matplotlib画箱体图检验异常值操作。分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python3 imp...

简单讲解Python中的数字类型及基本的数学计算

Python有四种类型的数字: 1.整型  a = 2 print a 2.长整型  b = 123456789 print b 3....

python随机生成指定长度密码的方法

本文实例讲述了python随机生成指定长度密码的方法。分享给大家供大家参考。具体如下: 下面的python代码通过对各种字符进行随机组合生成一个指定长度的随机密码 python中的str...