如何将softmax的每一行乘以张量流中的特定矩阵?

时间:2017-10-23 14:48:07

标签: python tensorflow deep-learning

我想解决的问题如下: 给定softmax的输出y_pred,维度为[batch_size, n_classes],张量包含每个预测的一个矩阵T,这意味着张量的维度为[batch_size, n_classes, n_classes]

我希望能够将y_pred的每一行乘以T中的一个矩阵,并在每个迭代训练步骤中将结果保存在y_pred中。

示例:

y_pred[0,:] = y_pred[0,:]*T[0,;,:]
y_pred[1,:] = y_pred[1,:]*T[1,;,:]

1 个答案:

答案 0 :(得分:0)

此代码示例应该为您提供所需的结果。

import tensorflow as tf
batch_size=3
num_classes=7
y_pred = tf.random_normal((batch_size, num_classes))
T = tf.random_normal((batch_size, num_classes, num_classes))

output = []
for i in range(batch_size):
  output.append(tf.matmul(tf.expand_dims(y_pred[i], axis=0), T[i]))

y_pred = tf.concat(output, axis=0)