前言
之前我学tensorflow时候遇到的一个问题,目前这篇文章在CSDN已经快破万阅读了,不知道对大家是否有用,我搬运了一下。
需要的就看一下吧。
安装tensorflow
SEU-AI蜗牛车:【手把手AI项目】三、Ubuntu环境下在已经装好的caffe环境下搭建tensorflow-gpuzhuanlan.zhihu.com读取PTB数据集发现问题
之前一直用的好好的,最近研究RNN 和LSTM 需要用到PTB数据集,这个数据集在介绍的用法里可以直接调用tensorflow的包进行read 出 训练集,测试集,验证集 PTB 可以直接百度下载 PTB目录为
需要的数据集在data下分别为ptb.test.txt ptb.train.txt ptb.valid.txt
代码如下
from tensorflow.models.rnn.ptb import reader
DATAPATH = './simple-example/data'
train_data, valid_data, test_data, _ = reader.ptb_raw_data(DATAPATH)
问题
发现pip3方式下安装的tensorflow没有models库 上网上查了一下得知
目前tf1.0版本的也就是比较新的版本都将models库剔除,当做第三方库来使用了 解决方案:
- 直接重新下载安装 tf的低的版本
- 手动安装models库
安装models库
- 我首先尝试 直接下载github上的
models: https://github.com/tensorflow/models 直接放到tf文件夹下,后来发现tf根本找不到这个包,本人不才(因为平时用包全都是直接pip3 install的方式所以没太在意这些东西),主要原因不知为何,我猜是因为此刻这个的models相当于第三方库,这里直接复制到文件夹下没有编译,所以根本没用
- 查了下这个models库的用法可以通过git命令进行clone到tensorflow文件下 ① 安装git 这个百度多的是就不多说了 ② 手动找到python36下的文件tensorflow文件夹
进行鼠标右键 点击 选择 Git Bash here (这个过程也可以先在任何一个地方Git Bash here 之后利用cd 到tf文件夹里也一样) ③ 在命令框里输入
git clone --recurse-submodules https://github.com/tensorflow/models
安装编译完毕 这回你会发现tf文件夹下已经有models文件夹了
导入程序试试看
from tensorflow.models.tutorials.rnn.ptb import reader#存在models了也可以导入了
随便写个整体程序
from tensorflow.models.tutorials.rnn.ptb import reader
DATAPATH = './simple-examples/data'
train_data, valid_data, test_data, _ = reader.ptb_raw_data(DATAPATH)
print(len(train_data))
print(train_data[:100])
万万没想到又出现一个问题
说找不到reader 这个 后来发现问题出在ptb的__init__.py文件下
发现这个import 是错的没法import 进去reader 我又查看了一下其他的第三方库的这个初始文件发现 需要这么操作就解决了
其实问题就是出在这个导入其他的py文件的时候 导入出错了。
from tensorflow.models.tutorials.rnn.ptb import reader
from tensorflow.models.tutorials.rnn.ptb import util
经过以上的这么折腾可算全部KO,这回再走一遍那个读取PTB数据的程序
from tensorflow.models.tutorials.rnn.ptb import reader
DATAPATH = './simple-examples/data'
train_data, valid_data, test_data, _ = reader.ptb_raw_data(DATAPATH)
print(len(train_data))
print(train_data[:100])
完美运行