原因:目前tf1.0版本的也就是比较新的版本都将models库剔除,当做第三方库来使用了。
解决方案:
1. 直接重新下载安装 tf的低的版本
2. 手动安装models库
我这里选择的是手动安装models库:
网上查的资料说可以通过提前下载好model文件,然后将models文件放在/Users/lilong/anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/
下,然后再次运行代码,如果还是出现错误,就修改ptb下的__init__.py
文件。
将
import reader
import uril
修改为:
from tensorflow.models.tutorials.rnn.ptb import reader
from tensorflow.models.tutorials.rnn.ptb import uril
但是我的mac还是报错找不到models模块。。。
最后选择另一种安装方式,直接命令行下在线安装,首先cd到tensorflow包的安装路径下,mac下查找tensorflow的包路径的方法是在python或者ipython的交互式下敲入:import tensorflow
,然后敲入tensorflow
,我的mac下spyder显示的是:
In [3]: tensorflow
Out[3]: <module 'tensorflow' from '/Users/lilong/anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/__init__.py'>
在得到tensorflow包安装的路径后就在终端cd到对应的目录下敲入如下命令:
cd /Users/lilong/anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/
git clone --recurse-submodules https://github.com/tensorflow/models
安装好以后会发现有了models目录:
这时敲入命令:vim models/tutorials/rnn/ptb/__init__.py
编辑该.py文件,修改的方式即是上述的:
#修改为:
from tensorflow.models.tutorials.rnn.ptb import reader
from tensorflow.models.tutorials.rnn.ptb import uril
这时再运行代码就不会报错了。。亲测有效
这里注意的是:原先下载好models-master.zip后,直接复制到相应的目录下然后修改__init__.py
还报错的原因,可能是路径的问题,应该先新建一个models文件,然后把解压后的models-master.zip里的文件再拷贝到新建的models文件下,最后修改__init__.py
文件,这个方法我没测试过,所以仅是猜测供参考。