【TensorFlow学习笔记】完美解决 pip3 install tensorflow 没有models库,读取PTB数据

版权声明:欢迎关注公众号:AI蜗牛车 || 本文为博主原创文章,未经博主允许不得转载, 若转载请与我联系。 https://blog.csdn.net/qq_33431368/article/details/79360585

##安装tensorflow
我使用的是最最最简单的容易的 pip3 install

《TensorFlow学习笔记》 一、 安装win10下python3.6的tensorflow的CPU版本安装

##读取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库剔除,当做第三方库来使用了
解决方案:

  1. 直接重新下载安装 tf的低的版本

  2. 手动安装models库
    ###安装models库

  3. 我首先尝试 直接下载github上的models
    直接放到tf文件夹下,后来发现tf根本找不到这个包,本人不才(因为平时用包全都是直接pip3 install的方式所以没太在意这些东西),主要原因不知为何,我猜是因为此刻这个的models相当于第三方库,这里直接复制到文件夹下没有编译,所以根本没用

  4. 查了下这个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])

这里写图片描述

完美运行

PS: 如果觉得本篇本章对您有所帮助,欢迎关注、评论、点赞!

猜你喜欢

转载自blog.csdn.net/qq_33431368/article/details/79360585