如何有效地处理整批张量?

时间:2018-05-10 09:13:45

标签: tensorflow

<div style="text-align: center; padding: 1em; margin: 1em; background-color: #eee; border-radius: 10px;"><strong>Total<br>Score</strong>
  <div><span id="count" style="font-size: 2em;">87</span></div>
</div>

<div style="text-align: center; padding: 1em; margin: 1em; background-color: #eee; border-radius: 10px;">
  Rank #1 out of 321
</div>

我想处理两个批次:a和b以及产品c。批量大小为1000。 每个元素ci是ai和bi的合约结果。合同操作由我自己定义。 但我不确定这是否是一种有效的方法呢?有什么简单的方法吗?感谢。

1 个答案:

答案 0 :(得分:1)

我认为你想要实现的目标只需:

import tensorflow as tf

with tf.variable_scope('experiment'):
    a = tf.get_variable('a', [1000, 24, 128], dtype=tf.float32,
                         initializer=tf.random_normal_initializer(stddev=0.1))
    b = tf.get_variable('b', [1000, 15, 128], dtype=tf.float32,
                        initializer=tf.random_normal_initializer(stddev=0.1))
    c = tf.matmul(a, tf.transpose(b, (0, 2, 1)))
    # Since Python 3.5 you can also do
    # c = a @ tf.transpose(b, (0, 2, 1))
print(c.shape)
# TensorShape([Dimension(1000), Dimension(24), Dimension(15)])

# Test compute the value
init = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    c_value = sess.run(c)
print(c_value.shape)
# (1000, 24, 15)