深刻解析如何解决在pycharm中导入tensorflow的子模块keras时的报错(导入语法正确)

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

只是导入时报错,但代码仍可以运行

1.导入方式正确,但pycharm将其标红

 2.通过查看tensorflow的官方文件,猜测可能是python版本不适配

 python需为python3.6-3.9,而我的为python3.11

3.配置python3.9的环境(详情可看我的另一篇文章),但依然报错

 

 4.经过仔细分析,觉得可能是pycharm与tensorflow的适配问题,pycharm无法寻找到tensorflow包中的文件,进行报错,但这种报错可以忽视。例如:导入的ModelCheckpoint进行报错,但是后面在真实调用时,确没进行报错

5.但当查看tensorflow的源代码,发现keras的调用方式为lazy-load

lazy-load:

1.解释:只有在实际用到该模块时才加载模块,而不是在代码开头时立即导入。

2.好处:可以极大的节省内存,加快启动速度

 总结:语法正确且能运行但pycharm报错的原因大概率是keras的导入方式为lazy-load,未在代码开头直接导入

解决方法

1.简单粗暴,直接忽视

2.按照源码中的结构进行导入

查看源码,发现源码中对于导入的结构这样定义

将原代码加上python,报错消失

反思:

1.若再遇见只有导入时报错,而代码可以正常运行,应猜测是否为lazy-load

2.若以后遇见导入问题,发现无法解决时,可以尝试查看包的源代码如何书写,或许就会发现问题

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值