![深度学习:从Python到TensorFlow应用实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/281/31904281/b_31904281.jpg)
1.3 体验TensorFlow文本分类
以文本分类这个经典问题来体验TensorFlow。
1.3.1 安装TensorFlow
这里介绍在Linux操作系统下安装TensorFlow。当前推荐使用Ubuntu发行版本。
当用户最终让自己的Linux操作系统正常运行以后,请打开一个终端并安装一些必要的软件。
git:分布式版本控制系统。
wget:使用HTTP、HTTPS和FTP协议进行数据传输。
必须安装的软件包括:
awk:编程语言,用于搜索和处理文件和数据流中的模式。
bash:UNIX Shell和脚本编程语言。
grep:逐行处理文本并打印与指定模式匹配的任何行。
make:从源代码自动构建可执行程序和库。
bazel:从源代码自动构建TensorFlow可执行程序和库。
perl:动态编程语言,非常适合文本文件处理。
例如,安装git可以用如下的命令。
#apt-get install git
要仅为在CPU上使用而安装当前版本:
#pip install tensorflow
如果要使用支持CUDA的GPU卡,则安装TensorFlow的GPU版本:
#pip install tensorflow-gpu
在交互式环境测试TensorFlow:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P21_3089.jpg?sign=1739283417-2Fad727fP6rEV6GmAn97zsDYoLXhpqeP-0-aeed4516e236f30e32687df890e753f9)
使用函数tf.nn.softmax()测试Tensorflow。例如,有一个4维的向量。-1是最低值,3是最高值。这些值都归一化为0~1的数值。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P21_3087.jpg?sign=1739283417-wZBAZfQHPsvFJF4Pm1G6zqY2H5ZyTL3C-0-fc79725740d610ed6af128114502490f)
softmax是逻辑函数的推广,softmax将任意实数值的K维向量“压缩”到[0,1]区间的实数值的K维向量,向量中的元素值加起来为1。
如果TensorFlow依赖的numpy出错,则可以考虑先卸载numpy,然后重新安装Tensorflow。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P22_3096.jpg?sign=1739283417-IcM3Mc0FHXabqQxaVLXJ389MtQNsGHbL-0-abb7432ceb52c5db445b2ed2bc27cb2d)
可以使用交互式会话测试Tensorflow:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P22_3098.jpg?sign=1739283417-zv92tDbPoHKP9esfbWzM48peGBZ0hnaS-0-1021ff33a555e4ea862fe12753853beb)
1.3.2 实现文本分类
在训练文本分类模型之前,必须先准备数据。可以创建一个简单的JSON文件来保存训练所需的数据。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P22_3100.jpg?sign=1739283417-G5GSGwYptIrbEviJ3a916hk5k3PXq71o-0-4a4fd0bab9bdb87c8c8b56fb30421d82)
以下是示例JSON训练的数据文件,其中包含5个类别。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P22_3102.jpg?sign=1739283417-OKMJkXo98KjKiFAPE0Rq2tmUZq1tCJZI-0-4f3f02b2d844e9d190af9e9fe0c43f11)
数据加载和预处理:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P23_3103.jpg?sign=1739283417-76xekB8OGPHyU31l7HrjiGhXMuEwjeqb-0-9e784b3cabdd72b0dda955b42aa13df8)
构建一个简单的深度神经网络,并用它来训练模型。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P23_3104.jpg?sign=1739283417-2GlSGAyIOoF6WExsenjTgwhBnuQU7krl-0-0921ad07d0576058126d4c01f827556c)
使用下面的代码测试神经网络文本分类Python模型。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P24_3110.jpg?sign=1739283417-S3UknXgdH5mJEj1NuZHewPsNywN4CtsP-0-584c48be9376d3742aa558b630ca94ac)