Python 你在神经网络中做什么?

Python 你在神经网络中做什么?,python,neural-network,conv-neural-network,tensorflow2.0,Python,Neural Network,Conv Neural Network,Tensorflow2.0,我看到了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))) asser

我看到了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的形状,否则会抛出错误。
这有助于防止下一行代码中可能出现的问题,因为维度不匹配,因此如果删除它,将不会发生任何事情,但如果维度不是您所期望的,您将不会被注意到。

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