如何解决未定义“批处理标准化”
尝试训练如下定义的稳健的CNN模型:
from keras.datasets import cifar10
from keras.utils import np_utils
from keras import metrics
from keras.models import Sequential
from keras.layers import Dense,Flatten,Conv2D,MaxPooling2D,LSTM,merge
from keras.layers import BatchNormalization
from keras import metrics
from keras.losses import categorical_crossentropy
from keras.optimizers import SGD
import pickle
import matplotlib.pyplot as plt
import numpy as np
from keras.preprocessing.image import ImageDataGenerator
from keras import layers
from keras.callbacks import EarlyStopping
def Robust_CNN():
model = Sequential()
model.add(Conv2D(256,(3,3),activation='relu',padding='same',init='glorot_uniform',input_shape=(2,128,1)))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(1,2),padding='valid',data_format=None))
model.add(layers.Dropout(.3))
model.add(Conv2D(128,padding='same'))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(1,data_format=None))
model.add(layers.Dropout(.3))
model.add(Conv2D(64,data_format=None))
model.add(layers.Dropout(.3))
model.add(Flatten())
model.add(Dense(128,init='he_normal'))
model.add(BatchNormalization())
model.add(Dense(11,activation='softmax',init='he_normal'))
return model
但是,当尝试这样做时,我收到一个NameError,提示未定义名称“ BatchNormalization” 。完整的错误消息如下:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-11-8084d29438f8> in <module>
55 # >>>>>>>>>>>>>>>>>>>>> choose a model by un-commenting only one of the three <<<<<<<<<<<<<<<<<<<<<<<<<<<
56 #xx_shape = (2,1)
---> 57 models = Robust_CNN()
58 #models = CLDNN()
59 #models = resnet(xx_shape)
~\AppData\Local\Programs\Python\Python37\Scripts\FYP\Optimizing-Modulation-Classification-with-Deep-Learning-master\Optimizing-Modulation-Classification-with-Deep-Learning-master\Robust_CNN Model\model.py in Robust_CNN()
19 def Robust_CNN():
20
---> 21 model = Sequential()
22 model.add(Conv2D(256,1)))
23 model.add(BatchNormalization())
NameError: name 'BatchNormalization' is not defined
即使我已经导入了BatchNormalization,似乎也无法弄清楚为什么会这样。
解决方法
首先从 tensorflow.keras.layers 导入 BatchNormalization,然后运行你的代码
从 tensorflow.keras.layers 导入 BatchNormalization
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。