昨天,我开始自主学习关于#神经网络与tf.keras读取图片以及数据集的相关内容。
信心满满的照着教程、视频敲下了代码:
from tensorflow.python.keras.preprocessing.image import load_img
def main():
image = load_img("./test.png")
print(image)
if __name__ == '__main__':
main()
刚开始,导入部分标红
我也没太在意(有些地方代码导入部分标红不代表此段代码有问题,例如用Python控制word文档编辑的时候就有,然后是照常运行),就直接运行了,结果可想而知:
它报错了,于是我开始查询资料,寻求解决方案。
发现有很多解决方案是说tensorflow和keras版本不匹配导致的,然后我又去搜索和我tensorflow相匹配的版本,找了半天,发现根本不是这个的问题:
我的版本tensorflow版本是最新的(2.9.1),已经自动包含了keras,所以根本就不存在版本对不上号这个问题,得了,方向又错了,又要重新开始找。
我又开始回忆,在当初安装tensorflow之前,我好像有尝试过安装keras,会不会是两个地方的keras导致导入路径出现了错误,所以才显示没有这个模块呢?(在找的解决方式二中就是删除模块,重新下载)
索性我直接查看列表:
pip list
然后发现:
这一看,把我整蒙了,那些是keras和keras附带安装的模块呢?哪些又是tensorflow和tensorflow附带的模块呢?我索性心一横,把样子相近全部删除,然后重新下载了,前前后后不低于五次!!最后发现仍是无用功!!!
于是我又开始寻找其他的解决方案,在今天又让我找到一个看似可行的方法:
去掉导入模块中的python这几个字母,我顿时喜上眉梢,心想终于要把这个问题解决了吧!(该帖子的原文链接:(24条消息) ModuleNotFoundError: No module named ‘tensorflow.python.keras.preprocessing‘_秦词的博客-CSDN博客)
于是我兴冲冲的跑去修改代码:
删完发现红下标,就知道大概率没戏了,一运行,果然出了问题,于是我跑去询问发帖人:
可人家迟迟没有回复我,我也只得去别处想想办法(后面我发现这个方法是可行的,尽管标红,但程序还是正常运行起来了,见下图)
成功运行:
细心的朋友估计已经发现了,我之前的代码里面出了错误:
这里我写错了…………最后才导致代码运行出了错……
但,黄天不负有心人,终究还是让我找到了别的方法(详见:(24条消息) ImportError: cannot import name ‘load_img‘ from ‘keras.preprocessing.image‘(D:\anaconda3\envs\...)_HS_zhangjiong的博客-CSDN博客)来解决这个问题:
我找到了这片文章,不能说一模一样,只能说有些类似:
from keras.preprocessing.image import img_to_array
和
from tensorflow.python.keras.preprocessing.image import load_img
的共同点都是preprocessing,既然:from keras.preprocessing.image import img_to_array 可以改成:from keras.utils import image_utils
那么:from tensorflow.python.keras.preprocessing.image import load_img是不是可以改成:from tensorflow.keras.utils import load_img呢?
说干就干
于是
就诞生了,关键是:
也运行成功了!!!
这你找谁说理去?????????
再然后,我发现不报红下划线也能运行的方法,就是将 tensorflow去掉,即:
没有红下划线,看起来就是舒服!
结果如下图:
于是,问题就算成功解决了???????
哈哈,小记一笔,希望可以帮到有缘人解决问题!
最后补上一句:我虽然当初有尝试过安装keras,但实际上是没有成功的,是因为现在keras不支持安装了吗?如果使用pip安装会直接报错,在卸载之后我有重新安装过,没有成功,现在安装了tensorflow就顺带有了keras,所以安装keras的话会提示已经有了,所以就截不了图了。