python3.7中的tensorflow2.0模块没有的问题。

小白刚做手写字识别,遇到tensorflow导入模块的一些问题,模块ModuleNotFoundError: No module named 'tensorflow.examples.tutorials'不会解决。

import keras # 导入Keras
import numpy as np
from keras.datasets import mnist # 从keras中导入mnist数据集
from keras.models import Sequential # 导入序贯模型
from keras.layers import Dense # 导入全连接层
from keras.optimizers import SGD # 导入优化函数

from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data", one_hot = True)

图片说明

在网上找了好久,也不怎么懂,能告诉我详实点的解决办法。

https://blog.csdn.net/qq_35637447/article/details/86299825

tensorflow2.0版本太高了,是刚刚出来的版本,针对以前的版本,有很大的整合和改动,你的from tensorflow.examples.tutorials.mnist import input_data

这句代码是2.0版本以前版本的代码。现在很多人还没有使用2.0的版本,建议先使用以前的版本,经典的数据和例子都会完美的使用。熟悉了以后,再尝试去看2.0的改动。
改动很大,甚至取消了session域,好多人还没适应呢。

可以通过一些通用的步骤来测试问题所在与解决,遇到类似问题都可以尝试以下测试途径:

  1. 是否是包没有安装成功(这里就是TensorFlow)
  2. 是否是包的版本与代码运行版本不一致(其实就是看此时的TensorFlow版本是否是代码运行版本)

测试1:是否TensorFlow包安装成功,通过

可以看出已经安装成功了。
 

测试2:是否是包的版本与代码运行版本不一致。这个可以通过查阅TensorFlow官网api搜索examples.tutorials:
https://tensorflow.google.cn/api_docs/python/tf

我查找过以后发现2.0版本并没有这个examples.tutorials



通过上述两步可以基本判定,是代码版本匹配原因。解决思路有两个:1,修改代码以匹配此版本TF;2,换支持此代码的版本的TF(这个需要定位到examples.tutorials 所在版本)
这里我以思路1,举例说明下:

from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data", one_hot = True)

用到examples.tutorials的就是这两个代码,其实功能就是加载mnist数据集,明白代码功能后,我们就可以从TensorFlow官网api https://tensorflow.google.cn/api_docs/python/tf:查找mnist加载代码。我找到了下面这个

再从下方https://tensorflow.google.cn/guide/keras/writing_a_training_loop_from_scratch?hl=en

 


中找到示例使用 load_mnist代码:

 由此可以看出,只需要把这两行改为:

minst = tensorflow.keras.datasets.mnist.load_data()

其实修改代码以匹配当前版本包方法如上所述,类似问题也可以通过此方法解决。。