我正在研究卷积神经网络,但出现错误
AttributeError: 模块“keras.utils.generic_utils”没有属性“populate_dict_with_module_objects”
这是不包括数据集上的数据处理的代码。我的 Keras 版本是 2.4.3,TensorFlow 是 2.5.0,python 是 3.8
我见过很多其他人面临类似的问题,但我相信这与 TensorFlow 的兼容性版本有关。我尝试了 3-4 个版本的 TensorFlow,但它们都给了我像上面那样的模糊错误。
我希望这可以解决,否则我不知道我将如何继续使用网络
import pickle
import time
import os
import cv2
import random
import matplotlib.pyplot as plt
import numpy as np
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Dense, Flatten, Activation
model = Sequential()
model.add(Conv2D(64,(3,3), activation = 'relu'))
model.add(MaxPooling2D(2,2))
model.add(Conv2D(64,(3,3), activation = 'relu'))
model.add(MaxPooling2D(2,2))
model.add(Flatten())
model.add(Dense(128, input_shape = X.shape[1:]), activation = 'relu')
model.add(Dense(4,activation = 'softmax'))
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics = ['accuracy'])
model.fit(X,Y, epochs =2, validation_split = 0.2)
如果您使用的是tensorflow 2.x,则不应在同一导入中混合使用独立的keras和新的tf.keras。您上面的代码应该按如下方式导入:(在 colab 中测试 2.4、2.5 版)。
import pickle, time, os ,cv2, random
import matplotlib.pyplot as plt
import numpy as np
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import (Conv2D, MaxPooling2D, Dense,
Flatten, Activation)
model = Sequential()
model.add(Conv2D(64,(3,3), activation = 'relu'))
model.add(MaxPooling2D(2,2))
model.add(Conv2D(64,(3,3), activation = 'relu'))
model.add(MaxPooling2D(2,2))
model.add(Flatten())
model.add(Dense(128, activation = 'relu'))
model.add(Dense(4,activation = 'softmax'))
另外,请注意,input_shape
模型中间没有任何效果(就像在Dense
图层中所做的那样)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句