[英]what assert do in the neural network?
我看到了NN某些層之間的斷言層。
model = tf.keras.Sequential()
model.add(layers.Dense(7*7*256, use_bias=False, input_shape=(100,)))
model.add(layers.BatchNormalization())
model.add(layers.LeakyReLU())
model.add(layers.Reshape((7, 7, 256)))
assert model.output_shape == (None, 7, 7, 256) # Note: None is the batch size
這個斷言做什么? 這是必要的嗎?
斷言恰如其名所說,斷言! 在python中,我們使用“ assert”命令來確保語句是否完全等於我們的期望。 看一下這個簡單的代碼:
a = 2
b = 3
assert a + b == 5
這部分代碼可以正確運行,因為a + b正是我們所期望的5。但是,如果您以這種方式更改代碼,則:
assert a + b == 6 # 6 or other any number except 5,It doesn't matter
該代碼將引發斷言錯誤,因為a + b!= 6 ...您提到的代碼中的斷言命令將檢查模型的輸出是否正好是7 * 7 * 256的形狀,否則將引發錯誤。 這對於防止由於尺寸不匹配而導致的下一行代碼中可能出現的問題很有用,因此,如果刪除它,則什么也不會發生,但是如果尺寸不是您期望的尺寸,則不會引起您的注意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.