由于 CNN 中的 tensorflow 版本支持导致 Keras 属性错误

艾哈迈德·安维尔

我正在研究卷积神经网络,但出现错误

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)

因纳特

如果您使用的是 2.x,则不应在同一导入中混合使用独立的和新的您上面的代码应该按如下方式导入:(在 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章