TensorFlow函数:tf.sparse_reset_shape
2018-03-06 10:49 更新
tf.sparse_reset_shape 函数
sparse_reset_shape(
sp_input,
new_shape=None
)
定义在:tensorflow/python/ops/sparse_ops.py.
参见指南:稀疏张量>操纵
将带有索引和值的 SparseTensor 的形状重置为未更改.
如果 new_shape 是 None,则返回 sp_input 的副本, 其形状重置为 sp_input 的紧边界框.如果 sp_input 没有值,则这将是一个由全零组成的形状.
如果提供 new_shape,则它在所有维度中必须大于或等于 sp_input 的形状.当满足这个条件时,返回的 SparseTensor 将其形状重置为 new_shape,并将其索引和值与 sp_input 保持不变.
例如:
考虑一个形状为 [2,3,5] 的 sp_input,如下所示:
[0, 0, 1]: a
[0, 1, 0]: b
[0, 2, 2]: c
[1, 0, 3]: d
- 将 new_shape 设置为 [3,7] 是错误的,因为这代表了秩为2的张量,而 sp_input 的秩为3.这可能是图形构造期间的 ValueError(如果两个形状都已知)或运行时 OpError.
- 将 new_shape 设置为 [2,3,6] 会很好,因为与原始形状 [2,3,5] 相比,每个维度的形状都较大或相等.
- 另一方面,将 new_shape 设置为 [2,3,4] 也是一个错误:第三个维度小于原始形状 [2,3,5](并且 InvalidArgumentError 将会提高).
- 如果 new_shape 是 None,则返回的 SparseTensor 将具有一个形状 [2,3,4],这是 sp_input 的一个紧密的边界框.
函数参数:
- sp_input:输入的 SparseTensor.
- new_shape:无或表示返回的 SparseTensor的新形状的矢量.
函数返回:
该函数返回一个从 input_sp 中未做更改的 SparseTensor 指数和值.如果设置的话,它的形状是 new_shape.否则,它是 input_sp 的紧密边界框.
可能引发的异常:
- TypeError:如果 sp_input 不是 SparseTensor.
- ValueError:如果 new_shape 表示的张量与 sp_input 的秩不同(如果在构建图形时已知形状).
- ValueError:如果 new_shape 在图形构建过程中确定维度太小.
- OpError:如果 new_shape 的维度太小.如果在图形构建期间未知形状,并且在运行期间发现秩不匹配.