关于在Anaconda与Jupyter Notebook中使用tf-slim的mobilenet_v2及导入失败的咨询
你的tf-slim Mobilenet使用问题解答
嘿,针对你的两个问题,我整理了清晰的解决方案:
1. Anaconda环境与Jupyter Notebook中能用tf-slim的MobilenetV2吗?
当然可以!只要你的Anaconda环境配置了合适的TensorFlow版本(优先推荐TensorFlow 1.x系列,因为tf-slim在TF2.x中不再属于contrib模块,需要单独安装),就能在Jupyter Notebook里正常调用tf-slim的MobilenetV2模型,和你用Inception的流程完全一致。
2. 导入Mobilenet模块失败的解决办法
你遇到的导入报错,核心原因是TensorFlow版本差异导致的模块路径变化,下面给你两种适配不同版本的解决方案:
方案一:适配TensorFlow 1.x版本
在早期TF1.x中,Mobilenet的代码并没有放在tensorflow.contrib.slim.nets这个路径下,而是在更细分的目录里。你可以修改导入代码为:
import tensorflow as tf # 导入MobilenetV2 from tensorflow.contrib.slim.python.slim.nets import mobilenet_v2 # 导入MobilenetV1(如果需要的话) # from tensorflow.contrib.slim.python.slim.nets import mobilenet # 别忘了导入slim核心模块 import tensorflow.contrib.slim as slim
这样应该就能成功导入了。
方案二:适配TensorFlow 2.x版本
如果你的环境用的是TF2.x,tf.contrib模块已经被官方移除,这时候需要单独安装独立的tf-slim库:
- 先在Anaconda环境的终端(或者Jupyter的命令行单元格)里执行安装命令:
pip install tf-slim
- 然后在代码里这样导入:
import tensorflow as tf import tf_slim as slim from tf_slim.nets import mobilenet, mobilenet_v2
额外小提示:加载预训练权重
不管用哪种方案,加载预训练权重的时候,记得用slim提供的工具方法,比如:
# 替换成你下载的预训练checkpoint文件路径 checkpoint_path = "your/path/to/mobilenet_v2_1.0_224.ckpt" # 映射权重变量路径,完成初始化 slim.init_from_checkpoint(checkpoint_path, { 'MobilenetV2/': 'MobilenetV2/' })
内容的提问来源于stack exchange,提问作者Joey Carson
相关产品推荐
相关产品推荐

