在Jupyter Notebook导入MNIST input_data遇NotFoundError,请求协助
解决TensorFlow导入MNIST input_data时的NotFoundError问题
别慌,这个问题我碰到过好几次,本质是旧版TensorFlow的示例模块已经被弃用,再加上环境依赖的动态链接库没装好导致的,给你几个靠谱的解决办法:
方法1:改用官方推荐的MNIST加载方式(最优先推荐)
TensorFlow早就淘汰了tensorflow.examples.tutorials.mnist这个模块,现在官方统一用tf.keras.datasets来加载MNIST,代码简单还不会出奇怪的依赖问题:
import tensorflow as tf # 直接加载MNIST数据集,自动下载到本地缓存 (x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
用这个方式不仅能避开DLL缺失的坑,后续处理数据的接口也更简洁顺手。
方法2:修复旧版TensorFlow的DLL缺失问题(仅当你必须用旧模块时)
如果你非要坚持用原来的旧代码,可以试试下面的步骤:
- 先确认你的TensorFlow版本:只有1.x版本支持这个旧示例模块,如果你装的是2.x版本,先卸载重装对应1.x版本:
pip uninstall tensorflow pip install tensorflow==1.15.0 - 如果已经是1.x版本还是报错,大概率是安装不完整,建议用conda重新安装(conda处理动态链接库的兼容性更好):
conda uninstall tensorflow conda install tensorflow==1.15.0 - 极端情况下,你可以手动下载和你的TensorFlow版本完全匹配的
_lstm_ops.dll文件,放到报错提示的路径C:\Users\midhu\Anaconda3\lib\site-packages\tensorflow\contrib\rnn\python\ops\里,但这个方法风险高,版本不匹配的话会出更多奇怪问题,不推荐。
为啥会出现这个错误?
tensorflow.examples.tutorials.mnist依赖TensorFlow的contrib旧组件,而contrib模块在2.x版本里已经被彻底移除;就算是1.x版本,如果安装过程中动态链接库没正确解压或下载,就会出现找不到DLL的情况。所以最稳妥的还是直接用方法1的keras加载方式。
内容的提问来源于stack exchange,提问作者ninja0094
相关产品推荐
相关产品推荐

