当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.debugging.assert_shapes用法及代码示例


断言张量之间的张量形状和尺寸大小关系。

用法

tf.debugging.assert_shapes(
    shapes, data=None, summarize=None, message=None, name=None
)

参数

  • shapes 带有(Tensor to shape)项目的字典,或(Tensor,shape)元组的列表。形状必须是可迭代的。
  • data 如果条件为 False,则打印出的张量。默认为错误消息和违规张量的前几个条目。
  • summarize 打印这么多张量条目。
  • message 默认消息的前缀字符串。
  • name 此操作的名称(可选)。默认为"assert_shapes"。

抛出

  • ValueError 如果静态检查确定违反了任何形状约束。

此操作检查张量形状关系的集合是否满足给定的约束。

例子:

n = 10
q = 3
d = 7
x = tf.zeros([n,q])
y = tf.ones([n,d])
param = tf.Variable([1.0, 2.0, 3.0])
scalar = 1.0
tf.debugging.assert_shapes([
 (x, ('N', 'Q')),
 (y, ('N', 'D')),
 (param, ('Q',)),
 (scalar, ()),
])
tf.debugging.assert_shapes([
  (x, ('N', 'D')),
  (y, ('N', 'D'))
])
Traceback (most recent call last):

ValueError:...

如果 x , y , paramscalar 不具有满足所有指定约束的形状,则 message 以及第一个遇到的违规张量的第一个 summarize 条目将被打印,并引发 InvalidArgumentError

指定形状中的大小条目通过其哈希值与其他条目进行检查,除了:

  • 如果可以将大小条目解析为整数原语,则将其解释为显式大小。
  • 如果大小条目为 None 或 '.',则将其解释为任何大小。

如果形状的第一个条目是...(类型Ellipsis)或'*',表示未指定大小的可变数量的外部尺寸,即约束仅适用于inner-most尺寸。

标量张量和长度为零的指定形状(不包括'inner-most' 前缀)都被视为具有大小为一的单一维度。

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.debugging.assert_shapes。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。