属性错误:模块“tensorflow.python.keras.layers”没有属性“BatchNormalization”

问题描述 投票:0回答:1

我目前正在开发一个项目,需要在 TensorFlow Keras 中使用 BatchNormalization。我已经从tensorflow.python.keras导入了层,但是当我尝试使用BatchNormalization时,遇到以下错误:

AttributeError: module 'tensorflow.python.keras.layers' has no attribute 'BatchNormalization'

这是我的代码片段:

from tensorflow.python.keras import Model, Input
from tensorflow.python.keras.optimizers import adam_v2 as Adam
from tensorflow.python.keras import layers
class InceptionBlock(layers.Layer):
    def __init__(self, f, pooling=True):
        super(InceptionBlock, self).__init__()
        
        self.f = f
        self.pooling = pooling
   
        self.conva0 = layers.Conv2D(self.f, (1, 1), activation='relu', padding='same')
        self.batch_norma0 = layers.BatchNormalization()
        self.conva1 = layers.Conv2D(self.f, (3, 3), activation='relu', padding='same')
        self.batch_norma1 = layers.BatchNormalization()
        self.conva2 = layers.Conv2D(self.f, (1, 3), activation='relu', padding='same')
        self.batch_norma2 = layers.BatchNormalization()
        self.poola = layers.MaxPooling2D(pool_size=(2, 2))
        self.conva3 = layers.Conv2D(self.f, (3, 1), activation='relu', padding='same')
        self.batch_norma3 = layers.BatchNormalization()
            

我的tensorflow版本是2.16.1,python版本是3.11.9。我检查了文档,似乎 BatchNormalization 应该在图层模块中可用。有人能解释一下为什么我可能会遇到这个错误吗?我是否应该使用不同的方法在 TensorFlow Keras 中导入 BatchNormalization?

如有任何帮助,我们将不胜感激。

谢谢!

我正在尝试在我的 InceptionBlock 路径中使用 BatchNormalization。

python python-3.x tensorflow machine-learning image-processing
1个回答
0
投票

希望可以帮助解决您的问题。

import tensorflow as tf

tf.compat.v2.keras.layers.BatchNormalization
© www.soinside.com 2019 - 2024. All rights reserved.