对张量内容的逻辑运算

时间:2018-06-03 04:14:51

标签: python tensorflow data-manipulation tensor

我有一个名为' datastate'的列表。形状(?,10),其在张量流(所有张量)中填充10个批次样品的结果。换句话说,批量大小为256时,将填充10个大小为256的不同张量。

以下伪代码....

datastate = {}

for sample in range(num_samples):
    datastate[sample] = batch_results

我接下来想要做的是定义一个像' datastate_change'这样的变量,它将确定batch_results的第i条记录是否与batch_results的第(i-1)条记录相比发生了变化。如果Pandas样式语法有效,这可能看起来像下面这样......但是我在sess.run期间不清楚如何在tf内执行此操作。

for sample in range(num_samples):
    datastate[sample] = batch_results
    datastate_change[sample] = batch_results - batch_results.shift(1)

更具体一点,如果batch_results的单个实例是[1,1,1,0,1]我想拥有datastate [1] = [1,1,1,0,1]和datastate_change [1] = [1,0,0,-1,1]

1 个答案:

答案 0 :(得分:0)

我自己找到了一个满意的答案 - 关键是numpy是比熊猫更好的模拟插件.... 首先,我创建一个我的数据表的副本,它的顶部用零填充 然后我切掉这个副本的底行 最后我减去了两个。

top_paddings = tf.constant([[1, 0]]) #New tensor with the 'top' being zeros
top_padded_datastate_[sample] = tf.pad(datastate[sample], top_paddings, "CONSTANT")
top_padded_datastate[sample] = top_padded_datastate_[sample][:-1]
datastate_changes[sample] = tf.subtract(datastate[sample], top_padded_datastate[sample])