概述
最近需要在keras里面载入训练好的模型,因为模型是在python3.8中训练,而且里面包含了keras自带的lambda层,无法载入模型报错:unknown opcode
上网查找后,发现需要用python3.5以下版本,那么我们需要用anaconda切换不同python版本
创建版本
在WIN端搜索框搜索Anaconda,会发现
打开后在Environment里面选择create选择合适的python版本进行安装
然后切换到这个版本,安装jupyter notebook
激活环境与安装库
退出Navigator,在cmd里激活这个版本输入
conda activate python3_5
安装tensorflow
pip install tensorflow -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
结果安装失败报错:
could not find a version that satisfies the requirement tensorboard-data-server
上网查找后,各种解释都有,但实际上是Pip版本不够导致的,黄色的字也提示了这个,因此需要更新pip版本
python.exe -m pip install pip -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com --upgrade pip
再次重新安装,安装成功
在激活的python3.5里面更新安装ipykernel
pip install ipykernel -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
这个时候,我们需要将python3.5的内核放在jupyter notebook里面,这样就可以做到无缝切换
具体操作还是,conda 激活python35,然后输入你对应在anaconda里的kernal名字
python -m ipykernel install --user --name python3_5 --display-name "Python [conda env:python3_5]"
这时再打开jupyter notebook
发现已经可以无缝切换了,版本也是我们需要的版本
import sys
print(sys.version)
查看是否能检测的GPU
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
整个过程结束,然而当我尝试重新用keras load_model的时候发现依旧报错:
ValueError: bad marshal data (unknown type code)
没办法只能先建好模型然后载入权重了
model.load_weights('model.h5')
希望对大家有用
最后
以上就是快乐橘子为你收集整理的Anaconda 在jupyter notebook里不同python版本切换以及遇到的问题的全部内容,希望文章能够帮你解决Anaconda 在jupyter notebook里不同python版本切换以及遇到的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复