我们使用tf.keras进行摸模型搭建时,一般使用如下操作进行批量归一化
from keras.layers.normalization import BatchNormalization
但是训练的过程中会报错如下:
这是因为我们混用了tf和keras(注意是keras,而不是tf.keras)。
而如果我们换成了(tf较低版本可以使用):
from tensorflow.contrib.layers.python.layers import batch_norm
mModel.add(tf.keras.layers.batch_norm())
则就会报错为:
ModuleNotFoundError: No module named 'tensorflow.contrib'
这是因为我们的tf的版本过高了,网上一般建议回退版本。当然也有其它复杂的。但是的但是,
我们只需将其换为:
mModel.add(tf.keras.layers.BatchNormalization())
就行了,就行了啊。
额外说一句,针对tf的大多数低版本有的,而高版本导入报错的情况,都只需要更改其路径即可。如果不知道具体路径,就去官网、百度上查找。实在不行,我们可以用dir(tf.keras.layers)的方式自己一级一级的去寻找嘛。



