當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。