python - 张量内容的逻辑运算
问题描述
我有一个名为“datastate”的列表,形状为 (?,10),其中填充了 tensorflow 中 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]
解决方案
我自己找到了一个令人满意的答案 - 关键是 numpy 是比 pandas 更好的模拟插件......首先我创建了一个我的数据状态的副本,它在顶部用零填充然后我切掉这个副本的底行最后我减去他们俩。
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])
推荐阅读
- scala - 试图了解使用哪个播放库
- spring-boot - 邮递员返回空值作为响应
- javascript - React Tensorflow JS 加载用户上传的csv文件
- r - 在 ggplot2 中使用 facet_wrap() 对齐标题对齐?
- asp.net - ASP.NET 如何从某些列为空的表中获取前 10 名
- kubernetes - 如何根据 EKS 中的平均内存使用量自动扩展 Kubernetes Pod?
- multithreading - 使用 bufio.NewWriter 但不使用 io.MultiWriter 的竞争条件
- python - 如何在函数内调用任意数量的函数?
- javascript - 如何在 Mongoose 中正确创建数组模式并按给定条件过滤?
- maven - 为什么 Maven 在第一次执行时需要很多时间