【发布时间】:2016-10-27 23:23:24
【问题描述】:
这个问题的两个部分:
(1) 在 tensorflow 中更新张量子集的最佳方法是什么?我看过几个相关的问题:
Adjust Single Value within Tensor -- TensorFlow 和 How to update a subset of 2D tensor in Tensorflow?
而且我知道可以使用 Variable.assign()(和/或 scatter_update 等)分配变量对象,但对我来说 tensorflow 没有更直观的方式来更新部件似乎很奇怪一个张量对象。我已经通过 tensorflow api 文档和 stackoverflow 搜索了很长一段时间,似乎找不到比上面链接中提供的更简单的解决方案。这似乎特别奇怪,特别是考虑到 Theano 具有与 Tensor.set_subtensor() 等效的版本。我是否遗漏了什么,或者目前没有简单的方法可以通过 tensorflow api 做到这一点?
(2)如果有更简单的方法,是否可微分?
谢谢!
【问题讨论】:
-
用numpy数组初始化张量值够吗?那我推荐一下方式。
-
在最近的 Tensorflow 版本中,您可以使用类似 numpy 的切片来更新变量,如下所示:
v[2:4].assign([1, 2]),其中v是Variable。这能回答你的问题吗? -
感谢两位,感谢您的想法/cmets。不幸的是,这并不是我想要的……使用类似 numpy 的切片的更新变量就是这样,除了它仅适用于“变量”而不适用于“张量”。我重新设计了我的模型以避免对这个操作的明确需要,bc 似乎现实是张量对象在 tf 中是完全不可变的(与变量对象不同)。再次感谢您的想法!
标签: tensorflow