Tensorflow:将张量切成重叠的块

2023-11-27

我有一个一维张量,我希望将其分割成重叠的块。我在想这样的事情:tensor = tf.constant([1, 2, 3, 4, 5, 6, 7])

overlapping_blocker(tensor,block_size=3,stride=2)
=> [[1 2 3], [3, 4, 5], [5, 6, 7]]

到目前为止,我只找到了将张量划分为不重叠块的方法。有人知道解决这个问题的方法吗?

这需要适用于任意输入维度(即我的输入就像tf.placeholder([None])


您可以使用tf.nn.conv2d帮助。基本上,您在输入上采用 block_size 的滑动过滤器,一步一步地进行。为了使所有矩阵索引对齐,您必须进行一些重塑。

通用解决方案

import tensorflow as tf


def overlap(tensor, block_size=3, stride=2):
  reshaped = tf.reshape(tensor, [1,1,-1,1])

  # Construct diagonal identity matrix for conv2d filters.
  ones = tf.ones(block_size, dtype=tf.float32)
  ident = tf.diag(ones)
  filter_dim = [1, block_size, block_size, 1]
  filter_matrix = tf.reshape(ident, filter_dim)

  stride_window = [1, 1, stride, 1]

  # Save the output tensors of the convolutions
  filtered_conv = []
  for f in tf.unstack(filter_matrix, axis=1):
    reshaped_filter = tf.reshape(f, [1, block_size, 1, 1])
    c = tf.nn.conv2d(reshaped, reshaped_filter, stride_window, padding='VALID')
    filtered_conv.append(c)

  # Put the convolutions into a tensor and squeeze to get rid of extra dimensions.
  t = tf.stack(filtered_conv, axis=3)
  return tf.squeeze(t)


# Calculate the overlapping strided slice for the input tensor.
tensor = tf.constant([1, 2, 3, 4, 5, 6, 7], dtype=tf.float32)
overlap_tensor = overlap(tensor, block_size=3, stride=2)

with tf.Session() as sess:
  sess.run(tf.initialize_all_variables())
  in_t, overlap_t = sess.run([tensor, overlap_tensor])
  print 'input tensor:'
  print in_t
  print 'overlapping strided slice:'
  print overlap_t

应该给你输出:

input tensor:
[ 1.  2.  3.  4.  5.  6.  7.]
overlapping strided slice:
[[ 1.  2.  3.]
 [ 3.  4.  5.]
 [ 5.  6.  7.]]

更容易理解的解决方案

这是我工作的初始版本,它不允许使用变量 block_size,但我认为更容易看到卷积滤波器发生了什么 - 我们采用 3 个值的向量,每一步。

def overlap(tensor, stride=2):
  # Reshape the tensor to allow it to be passed in to conv2d.
  reshaped = tf.reshape(tensor, [1,1,-1,1])

  # Construct the block_size filters.
  filter_dim = [1, -1, 1, 1]
  x_filt = tf.reshape(tf.constant([1., 0., 0.]), filter_dim)
  y_filt = tf.reshape(tf.constant([0., 1., 0.]), filter_dim)
  z_filt = tf.reshape(tf.constant([0., 0., 1.]), filter_dim)

  # Stride along the tensor with the above filters.
  stride_window = [1, 1, stride, 1]
  x = tf.nn.conv2d(reshaped, x_filt, stride_window, padding='VALID')
  y = tf.nn.conv2d(reshaped, y_filt, stride_window, padding='VALID')
  z = tf.nn.conv2d(reshaped, z_filt, stride_window, padding='VALID')

  # Pack the three tensors along 4th dimension.
  result = tf.stack([x, y, z], axis=4)
  # Squeeze to get rid of the extra dimensions.
  result = tf.squeeze(result)
  return result
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tensorflow:将张量切成重叠的块 的相关文章

  • 为什么 tf.matmul() 给出看似不一致的结果?

    sess tf InteractiveSession num elements 10 output 0 76158798 num elements softmax w 0 1 0 1 0 1 0 1 0 1 0 1 0 1 num elem
  • 张量流如何处理复杂的梯度?

    Let z是一个复变量 C z 是它的共轭 在复分析理论中 导数C z w r t z不存在 但在张量流中 我们可以计算dC z dz结果就是1 这是一个例子 x tf placeholder complex64 2 2 y tf redu
  • 在 keras 中使用条件实现自定义损失函数

    我需要一些有关 keras 损失函数的帮助 我一直在使用 Tensorflow 后端在 keras 上实现自定义损失函数 我已经在 numpy 中实现了自定义损失函数 但如果它可以转换为 keras 损失函数 那就太好了 损失函数采用数据帧
  • 如何正确将 tflite_graph.pb 转换为 detector.tflite

    我正在使用tensorflow对象检测API使用tensorflow中的ssdlite mobilenet v2 coco 2018 05 09来训练自定义模型模型动物园 https github com tensorflow models
  • 调用 tf.linalg.inv 时,TensorFlow 崩溃并显示无法创建 cuSolverDN 实例

    我正在运行tensorflow tensoflow latest gpu码头集装箱 我可以运行简单的向量运算 例如 矩阵乘法没有问题 但是 当我运行以下最小示例时 import tensorflow as tf tf linalg inv
  • 如何在对象检测 API Tensorflow 中仅检测人体

    我在用tensorflow对象检测 API 用于检测对象 它在我的 Windows 系统中运行良好 我如何对其进行更改以仅检测提到的对象 例如 我只想检测人类而不是所有对象 根据此中的第 1 条评论answer https stackove
  • 如何访问 tf.layers.conv2d 中的内核变量?

    我想可视化卷积层中的权重以观察它们如何变化 但我找不到一种方法来访问卷积层中的权重tf layers conv2d 谢谢 您可以通过名称访问该变量 weights sess run
  • 在 Android 上保持 TensorFlow 模型加密

    我搜索了解是否有一种技术可以在 Android 应用程序中保持经过训练的张量流模型 pb 文件 的安全 但没有找到任何有用的东西 我正在发布一个包含我在训练集上构建的张量流模型的应用程序 当我发布该应用程序时 任何人都可以访问该模型并将其用
  • 从图中删除节点或重置整个默认图

    使用默认全局图时 是否可以在添加节点后将其删除 或者将默认图重置为空 当我在 IPython 中交互地使用 TF 时 我发现自己必须反复重新启动内核 如果可能的话 我希望能够更轻松地尝试图表 更新 11 2 2016 tf reset de
  • 您必须使用 dtype float(Tensorflow) 为占位符张量“Placeholder”提供值

    import tensorflow as tf import os import sklearn preprocessing import pandas as pd import numpy as np print os getcwd os
  • 用于测试张量流安装的速度基准

    我怀疑我的 GPU 机器上是否正确配置了张量流 因为在我精美的 GPU 机器上训练一个简单的线性回归模型 批量大小 32 1500 个输入特征 150 个输出变量 的每次迭代速度比在笔记本电脑上慢 100 倍 我使用的是 Titan X 配
  • Tensorboard 和 Dropout 层

    我有一个非常基本的查询 我制作了 4 个几乎相同 差异在于输入形状 的 CNN 并在连接到全连接层的前馈网络时合并了它们 几乎相同的 CNN 的代码 model3 Sequential model3 add Convolution2D 32
  • tf.gfile 在 TensorFlow 中起什么作用?

    我见过人们使用以下几个函数tf gfile例如tf gfile GFile or tf gfile Exists 我有一个想法tf gfile处理文件 但是 我无法找到官方文档来了解它还提供了什么 如果你能帮我的话那就太好了 对于登陆这里的
  • AttributeError:模块“keras.engine”没有属性“Layer”

    当我试图运行时Parking Slot mask rcnn py文件我收到如下错误mrcnn model py文件我该如何解决 gt 2021 06 17 08 25 18 585897 W tensorflow stream execut
  • 通过 cmake 使用预编译的张量流

    我已经建立了一个 C 项目CLion使用CMake 我正在使用各种第三方库 并且还想集成张量流 我试过了bazel编译张量流到共享库libtensorflow so哪种工作有效 但是仍然有相当多的依赖项 例如当前的 protobuf 版本
  • Tensorflow如何生成不平衡组合数据集

    我对新数据集 API tensorflow 1 4 有疑问 我有两个数据集 我需要创建一个组合的不平衡数据集 即 每个批次应包含第一个数据集中一定数量的元素和第二个数据集中一定数量的元素 例如 dataset1 tf data Datase
  • 如何将两个 keras 模型连接成一个模型?

    假设我有一个 ResNet50 模型 我希望将该模型的输出层连接到 VGG 模型的输入层 这是 ResNet 模型和 ResNet50 的输出张量 img shape 164 164 3 resnet50 model ResNet50 in
  • 有没有办法在bigquery中使用kmeans、tensorflow保存的模型?

    我知道这有点愚蠢 因为 BigQueryML 现在为 Kmeans 提供了良好的初始化 尽管如此 我还是需要在张量流中训练一个模型 然后将其传递给 BigQuery 进行预测 我保存了模型 一切正常 直到我尝试将其上传到 bigquery
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp

随机推荐

  • 如何清除表单中所有文本框的文本?

    private void CleanForm foreach var c in this Controls if c is TextBox TextBox c Text String Empty 上面这个方法不起作用 控件没有被清除 它编译
  • .Net WebDAV 服务器

    我正在寻找在 ASP Net 中实现 WebDAV 服务器 该应用程序将部署到 IIS 6 我见过一些提供此功能的框架 但我似乎无法确定它们如何在不 显然 修改 IIS 设置的情况下完成此功能 我的具体问题是如何配置 IIS 和 ASP N
  • 设置土耳其语文本转语音[重复]

    这个问题在这里已经有答案了 我正在开发文本到语音应用程序 我想将土耳其语设置为这样 tts setLanguage Locale TR 但这在android中不可用 这种添加方式是错误的还是有不同的方法将土耳其语添加到文本到语音中 任何帮助
  • 如何在多项目 Android 构建中排除重复的 C 共享库 (.so)?

    当使用两个库模块构建父项目时 我遇到 重复文件 冲突 这两个模块使用相同的库模块libc shared so共享库 NOTE 请不要认为这是一个 重复的问题 我读过几篇相关的文章 它们帮助我走到了这一步 但是 没有帖子提供适用于我的案例的答
  • 多处理写入 pandas 数据框

    所以我试图用下面的代码做的是读取列表列表并将它们放入名为的函数中checker然后有log result处理函数的结果checker 我尝试使用多线程来执行此操作 因为变量名称rows to parse实际上有数百万行 因此使用多个内核应该
  • 为自定义类实现 hashcode 和 equals

    所以我有许多自定义类 其中也有使用组合的自定义类 我的自定义类具有经常更改的变量 我将它们添加到 HashSets 中 所以我的问题是当我实现 hashCode 时 对于只有不断变化的私有字段的类 我该怎么办 以下是一个自定义类的示例 pu
  • Html Agility Pack - 删除元素,但不删除innerHtml

    我可以通过 note Remove 轻松删除该元素 如下所示 HtmlDocument html new HtmlDocument html Load Server MapPath Site themes default index csh
  • Laravel 急切加载有限制

    我有两个表 即 users 和 users actions 其中 users actions 与用户有 hasMany 关系 users id name surname email actions id id action id user
  • 等待页面加载 - Cypress

    我遇到问题 因为页面未完全加载 我尝试过cy wait 1000 方法 我确实认为这不是一个好的解决方案 但仍然不起作用 页面未完全加载 这是我要测试的网站https www 24mx ie 这 代码在文件中homePage js clas
  • 如何关闭 gcc 编译器优化以启用缓冲区溢出

    我正在研究一个作业问题这需要禁用编译器优化保护才能工作 我在 ubuntu linux 上使用 gcc 4 4 1 但无法弄清楚哪些标志是正确的 我意识到它依赖于架构 我的机器运行 32 位 Intel 处理器 Thanks 这是个好问题
  • 如何使用 SQL 计算树中值的总和

    我需要对用户树所获得的每个级别的积分进行求和 1级是该用户以下1级的用户积分总和 2级是低于用户2级的用户的1级积分 以此类推 计算在非生产服务器上每月进行一次 无需担心性能 执行此操作的 SQL 会是什么样子 如果你感到困惑 别担心 我也
  • 为什么我不能使用 std::remove_if 从 std::set 中删除字符串? [复制]

    这个问题在这里已经有答案了 可能的重复 remove if 相当于 std map 我有一组字符串 set
  • 如何检查字符串是否包含单词的所有字符

    我想检查一个字符串是否包含给定单词的所有字符 例如 var inputString this is just a simple text string 并说我有一句话 var word ts Now it should pick out t
  • 如何将DataFrame直接保存到Hive中?

    是否可以保存DataFrame在 Spark 中直接连接到 Hive 我尝试过转换DataFrame to Rdd然后保存为文本文件 然后加载到配置单元中 但我想知道是否可以直接保存dataframe to hive 您可以使用 sqlCo
  • OpenCV 正样本尺寸?

    所以我看到了很多关于 OpenCV 的 haartraining 和级联训练工具的教程 我特别有兴趣使用 createsamples 工具训练汽车分类器 但关于 w 和 h 参数似乎到处都有冲突的陈述 所以我很困惑 我指的是命令 creat
  • JSF 和表达式语言:仅当属性存在时才绑定属性

    将数据列绑定到数据源中可能存在或不存在的属性的最佳方法是什么 例如 当您有一个类层次结构 其中某些子级可能属于具有该属性的子类型时 就会发生这种情况 数据源包含各种子类类型
  • 测试运行程序“JUnit 4”未找到测试

    我的 Java 测试在 Eclipse 中运行良好 但是现在 当我从运行菜单重新启动测试时 我收到以下消息 No tests found with test runner JUnit 4 In the classpath文件我都有jar文件
  • 如何使 Inno Setup 在执行长时间 Exec 时看起来不被冻结?

    长的Exec正在安装 NET 3 5 并且脚本基于以下脚本 http www blackhillsoftware com blog 2006 06 26 using innosetup with the dotnet framework 问
  • 如何在 Windows 中使用 CMake 链接共享库 *dll [重复]

    这个问题在这里已经有答案了 我有2个文件 library dll and library h以及我自己的项目中需要的一些代码 我正在使用 Clion 在 Windows 上工作 我应该使用 CMake 进行配置 我尝试了这样的方法 cmak
  • Tensorflow:将张量切成重叠的块

    我有一个一维张量 我希望将其分割成重叠的块 我在想这样的事情 tensor tf constant 1 2 3 4 5 6 7 overlapping blocker tensor block size 3 stride 2 gt 1 2