运行Keras调库时遇到的问题,2021-5-24

在调用keras库时,出现了如下问题:

环境:Anaconda 3.6.5, Python 3.6
运行代码:

# import the necessary packages
import keras

from keras.models import Sequential
from keras.layers.normalization import BatchNormalization
from keras.layers.convolutional import Conv2D
from keras.layers.convolutional import MaxPooling2D
from keras.layers.core import Activation
from keras.layers.core import Flatten
from keras.layers.core import Dropout
from keras.layers.core import Dense
from keras import backend as K

问题1:
AttributeError: module ‘tensorflow.python.keras.utils.generic_utils’ has no attribute ‘populate_dict_with_module_objects’

问题2:
AttributeError: module ‘keras.utils.generic_utils’ has no attribute ‘populate_dict_with_module_objects’

问题3:
ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问。: ‘e:\anaconda3.6.5\lib\site-packages\~5py\defs.cp36-win_amd64.pyd’

在这里插入图片描述
在这里插入图片描述
问题3解决办法:pip install --user
添加 --user 来提高权限

问题1,2解决办法:

百度查了一些,发现全是在说keras和tensorflow版本不匹配的问题,下面是对应关系。
Tensorflow和Keras不同版本匹配(运行成功)

但是试了各种版本对应
tensorflow 2.2.0 + keras 2.3.1
tensorflow 2.1.0 + keras 2.3.1
tensorflow 2.0.0 + keras 2.3.1
tensorflow 1.14.0 + keras 2.2.5
均会报以上错误,都运行不了

最后,将tensorflow和keras全部卸载了,
然后重新安装tensorflow 而不额外安装keras
(因为tensorflow里有自带keras)

此时调用库不再报错。

过程中用到的命令:
pip install --upgrade keras==2.1.0 升级到指定版本
pip uninstall tensorflow

安装过程中还提示升级anaconda至 5.0.1,选了yes

查看keras版本
命令行下:
python (进入python环境)
import keras
print(keras._ _ version _ _) (2个短下划,无空格)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是基于PythonKeras的LeNet-5模型的实现。 ```python from keras.models import Sequential from keras.layers import Conv2D, AveragePooling2D, Flatten, Dense # 定义LeNet-5模型 def LeNet5(input_shape, num_classes): model = Sequential() model.add(Conv2D(filters=6, kernel_size=(5, 5), strides=(1, 1), activation='relu', input_shape=input_shape)) model.add(AveragePooling2D(pool_size=(2, 2), strides=(2, 2))) model.add(Conv2D(filters=16, kernel_size=(5, 5), strides=(1, 1), activation='relu')) model.add(AveragePooling2D(pool_size=(2, 2), strides=(2, 2))) model.add(Flatten()) model.add(Dense(units=120, activation='relu')) model.add(Dense(units=84, activation='relu')) model.add(Dense(units=num_classes, activation='softmax')) return model ``` 其中,LeNet-5模型包含两个卷积层、两个池化层和三个全连接层,具体结构如下: - 卷积层1:6个5x5的卷积核,步长为1,使用ReLU激活函数 - 池化层1:2x2的池化核,步长为2 - 卷积层2:16个5x5的卷积核,步长为1,使用ReLU激活函数 - 池化层2:2x2的池化核,步长为2 - 全连接层1:120个神经元,使用ReLU激活函数 - 全连接层2:84个神经元,使用ReLU激活函数 - 输出层:num_classes个神经元,使用softmax激活函数 注意:在Keras中定义LeNet-5模型,需要在第一层卷积层中指定输入图像的形状。例如,如果输入图像的形状为(32, 32, 3),则input_shape应该设置为(32, 32, 3)。同,模型的输出层应该有num_classes个神经元,其中num_classes是分类的类别数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值