ModuleNotFoundError: No module named ‘tensorflow.keras.layers.advanced_activations‘
原代码
from tensorflow.keras.layers.advanced_activations import PReLU
出现上面的报错
解决方法:
加上python
from tensorflow.python.keras.layers.advanced_activations import PReLU
TypeError: ‘Tuple’ Object is not Callable in Python
会报错的代码:
image = np.array(data).shape(48, 48)
解决方法:
image=np.array(data).reshape(48,48)
cv2.write报错
cv2.write(image_Name, image)
解决方法:
cv2.imwrite(image_Name, image)
搭建cnn报错代码
from keras.models import Sequential
from keras.layers.advanced_activations import PReLU
from keras.layers import Convolution2D, BatchNormalization, AveragePooling2D, Dropout, Flatten, Dense, Activation
def simple_CNN(input_shape, num_classes):
model = Sequential()
model.(Convolution2D(16, 7, 7, padding='same', input_shape=input_shape))
······
return model
input_shape = (48, 48, 1)
num_classes = 7
model = simple_CNN(input_shape, num_classes)
model.summary()
解决方法
from keras.models import Sequential
from tensorflow.keras.layers import PReLU, Conv2D, BatchNormalization, AveragePooling2D, Dropout, Flatten, Dense
def simple_CNN(input_shape, num_classes):
model = Sequential()
model.add(Conv2D(16, (7, 7), padding='same', input_shape=input_shape))
model.add(PReLU())
model.add(BatchNormalization())
model.add(AveragePooling2D(pool_size=(5, 5), strides=(2, 2), padding='same'))
model.add(Dropout(.5))
model.add(Conv2D(32, (5, 5), padding='same'))
model.add(PReLU())
model.add(BatchNormalization())
model.add(AveragePooling2D(pool_size=(3, 3), strides=(2, 2), padding='same'))
model.add(Dropout(.5))
model.add(Conv2D(32, (3, 3), padding='same'))
model.add(PReLU())
model.add(BatchNormalization())
model.add(AveragePooling2D(pool_size=(3, 3), strides=(2, 2), padding='same'))
model.add(Dropout(.5))
model.add(Flatten()) # 展平
model.add(Dense(1028))
model.add(PReLU())
model.add(Dropout(.5))
model.add(Dense(1028))
model.add(PReLU())
model.add(Dropout(.5))
model.add(Dense(num_classes))
model.add(Activation('softmax'))
return model
input_shape = (48, 48, 1)
num_classes = 7
model = simple_CNN(input_shape, num_classes)
model.summary()
ValueError: The filepath provided must end in .keras
(Keras model format). Received: filepath=‘simpler_CNN2.hdf5’
问题代码:
model_save_path = 'haar\\simpler_CNN2.keras'
尽管在过去,.hdf5
扩展名被广泛用于保存 Keras 模型,但在 TensorFlow 2.x 版本中,官方更倾向于使用 .keras
扩展名。
要解决这个问题,只需将保存模型的文件路径扩展名改为 .keras
即可。
解决方法:
model_save_path = 'desktop\\simpler_CNN2.keras'