更新张量流中的张量切片

2024-04-05

我想更新 3 维张量的切片。下列的如何在 Tensorflow 中进行切片分配 https://stackoverflow.com/questions/39157723/how-to-do-slice-assignment-in-tensorflow/43139565#43139565我会做类似的事情

import tensorflow as tf

with tf.Session() as sess:
    init_val = tf.Variable(tf.zeros((2, 3, 3)))
    indices = tf.constant([[0, 0, 0], [0, 0, 1], [0, 1, 0], [0, 1, 1]])
    update = tf.scatter_nd_add(init_val, indices, tf.ones(4))

    init = tf.global_variables_initializer()
    sess.run(init)
    print(sess.run(update))

这是可行的,但由于我的实际问题更复杂,我想通过定义切片的开头和大小来以某种方式自动生成索引集,例如您是否会使用tf.slice(...)。你有什么想法?提前致谢!

我使用的是 TensorFlow 1.12,这是目前最新的版本。


tf.strided_slice https://www.tensorflow.org/api_docs/python/tf/strided_slice支持传递一个var参数来指示切片引用的变量,因此当您传递它时,它将返回一个可分配的对象(我不确定为什么他们不只是根据输入的类型这样做,但无论如何)。你可以这样做:

import tensorflow as tf
import numpy as np

var = tf.Variable(np.ones((3, 4), dtype=np.float32))
s = tf.strided_slice(var, [0, 2], [2, 3], var=var, name='var_slice')
s2 = s.assign([[2], [3]])
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init_op)
    print(sess.run(s2))

Output:

[[1. 1. 2. 1.]
 [1. 1. 3. 1.]
 [1. 1. 1. 1.]]

请注意,在tf.strided_slice https://www.tensorflow.org/api_docs/python/tf/strided_slice您给出开始和结束索引(不包括结束),与tf.slice https://www.tensorflow.org/api_docs/python/tf/slice,您可以在其中给出开始和大小。另外,按照目前的代码,您必须为切片或分配操作提供一个名称值(我认为这应该是一个错误,并且发生的原因是 API 的该部分几乎完全在内部使用)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更新张量流中的张量切片 的相关文章

随机推荐

  • 如何在运行时更改android中睡眠/定时器线程的延迟?

    我试图做的是每次计数器变为 5 的倍数时减少计时器延迟 但是 一旦代码进入 if 块 它就停止递增计时器 我不明白发生了什么事 这是代码 thread new Thread public void run try if count 5 0
  • 最小化 WPF 中的窗口?

    使用 Windows 时如何以编程方式最小化窗口WPF 我似乎可以找到 Resize 属性 set WindowState WindowState Minimized
  • ListView 中重复的行

    我知道这个问题已经出现过很多次了 但由于某种原因我似乎无法让它发挥作用 事实上 在某些情况下 getView 会被多次调用 但是 在此处给出的示例中 http android amberfog com p 296 http android
  • 如何检查 python 函数是否发生更改(在实时代码中)?

    如果我有一个函数的引用 我可以检查它的代码对象f code 获取签名 然后针对此签名执行后续检查以查看代码是否已更改 这很好 但是 如果函数的依赖项之一发生变化怎么办 例如 def foo a b return bar a b 比方说foo
  • 我应该直接访问mongodb吗?

    我们正在制作android应用程序 需要从mongodb数据库获取数据 数据库中会有很多条目 并且请求会非常频繁 我们应该直接访问它还是制作一个 PHP 脚本来访问它并以 JSON 格式返回所需的结果 我们应该直接访问它吗 You 确实不想
  • 使用knitr和RStudio在外部文件中进行代码折叠

    我找不到任何方法可以将语法上可接受的 RStudio 样式折叠插入到外部 R 代码文件中 该文件设置为从 knitr 文档中使用 或者我错过了什么 有几种方法可以做到这一点 1 允许代码标头 例如 knitr Q1 也许 knitr Q1
  • java中如何对对象进行排序? [复制]

    这个问题在这里已经有答案了 可能的重复 如何按属性对对象的数组列表进行排序 https stackoverflow com questions 2535124 how to sort an arraylist of objects by a
  • 将行恢复为默认列值 mysql

    我正在使用 MySQL 社区服务器 5 1 有没有一种方法可以通过一个查询将所有行设置回默认列值 我刚刚添加了很多行 我为大多数指定的列设置了默认值 但由于某种原因 所有列值都设置为 0 我想知道是否有一个查询将所有列值设置为其默认值 并且
  • java.lang.IllegalStateException:找不到工厂javax.faces.application.ApplicationFactory的备份[重复]

    这个问题在这里已经有答案了 我想从 jsf 2 1 迁移到 2 2 但无法运行我的服务器 Tomcat 导致出现以下错误 我谨通知您 我在项目 Maven 中使用了 Hibernate Spring JSF Root WebApplicat
  • Windows 7 中 NASM 程序中的 I/O

    我想用 NASM 汇编语言进行编程 我有 NASM 2 07 和 Borland C 编译器 5 0 bcc32 我的操作系统是Windows 7 我不知道如何在Windows平台上使用NASM进行输入和输出 请问你能帮我吗 最简单的方法是
  • 调试 javascript 有哪些好的技巧? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 所以我相当经常地使用 JavaScr
  • 关于C++类中typedef函数的疑问

    我需要定义一个返回类对象的函数 假设我有一个名为狗的类 h 中的类声明和 cpp 中的实现 当狗死时 我想调用一个函数让狗管理器知道这一点 在dog的SetFunc中我将收到要调用的函数 Dog h class Dog public typ
  • 从插件 (.so) 加载 Qt UI(带图像)时遇到问题

    我有一个插件 可以加载并显示一个自定义小部件 该小部件显示从资源文件 resources qrc 加载的图像 作为 QLabel 的背景 我面临的问题是 加载插件后 它会正确显示小部件 但不显示图像 我尝试将 Q INIT RESOURCE
  • Safari 上的 Flex-wrap 问题

    我试图让两个元素填充其容器并在达到某个最小尺寸时进行包装 我的代码在除 safari 之外的所有浏览器上都能完美运行 而且我无法找到替代方案 这似乎是 flex basis 0 的问题 问题是这样的 http www cssdesk com
  • 错误:“grep:参数列表太长”[重复]

    这个问题在这里已经有答案了 我正在尝试运行以下命令 但出现参数太长错误 你能帮我吗 HOST grep rl pattern home public html bash bin grep Argument list too long 有没有
  • Hadoop - 如何收集没有值的文本输出

    我正在从事地图缩减工作 我想知道是否可以向我的输出文件发出自定义字符串 没有计数 没有其他数量 只有一团文本 这是我正在思考的基本想法 public static class Map extends MapReduceBase implem
  • VueJS 和 Laravel 的 Textarea v-model 初始值

    我想使用刀片语法将用户名显示为 Markdown 编辑器的默认文本区域值
  • 自动滚动 JavaFX TextFlow

    我有一个 JavaFXTextFlow包裹在一个ScrollPane 我试图让它在有新内容时自动滚动到底部Text被添加到TextFlow 我尝试过附加监听器以最大化ScrollPane s vvalue to The ScrollPane
  • Rails 包含查询,其条件不返回左表中的所有结果

    我有两个表格 帖子和图像 以下是 schema rb 中的相关部分 create table posts force true do t t string name t string body t datetime created at t
  • 更新张量流中的张量切片

    我想更新 3 维张量的切片 下列的如何在 Tensorflow 中进行切片分配 https stackoverflow com questions 39157723 how to do slice assignment in tensorf