原因:目前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
文件,這個方法我沒測試過,所以僅是猜測供參考。