【问题标题】:what assert do in the neural network?在神经网络中断言做什么?
【发布时间】:2019-05-01 06:42:09
【问题描述】:

我看到了一些神经网络层之间的断言层。

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

这个断言有什么作用?这是必要的吗?

https://www.tensorflow.org/alpha/tutorials/generative/dcgan

【问题讨论】:

    标签: python neural-network conv-neural-network tensorflow2.0


    【解决方案1】:

    断言正如它的名字所说,断言! 在 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 的形状,否则会引发错误。 这对于防止由于尺寸不匹配而在下一行代码中可能出现的问题很有用,因此如果您将其删除,则不会发生任何事情,但如果尺寸不是您所期望的,您将不会被注意到。

    【讨论】:

      猜你喜欢
      • 2017-01-17
      • 2017-07-08
      • 1970-01-01
      • 1970-01-01
      • 2011-09-26
      • 1970-01-01
      • 2010-10-15
      • 2020-05-09
      • 1970-01-01
      相关资源
      最近更新 更多