一、正确安装 Keras TensorFlow 并调用 TensorBoard 绘制训练曲线

news/2024/11/19 8:47:38/

  本博客主要内容为使用Keras实例化深度学习模型,并对在这个过程中遇到的问题进行总结,主要参考《Keras中文文档》,在配置环境、安装软件以及调试的过程中遇到的各种问题主要参考各个网页,这些网页会在必要时给出参考。

  如本篇博客没有解决你的问题可在评论区留言,如果能帮上的一定会帮助;如果觉得解决了你的问题请在最下面顶一下;也欢迎积极留言~~~~

一、本篇博客的主要目的

  Keras作为一种深度学习框架对初学者具有良好的实用性,使用者只需将所用的模块像搭积木一样搭起来既可以实现预期的功能。虽然Keras可以使用TensorFlow作为后端,但是在调用TensorBoard时会出现不报错,但是也无法显示训练曲线的问题。因此本文的主要目的在于正确安装Keras&TensoFlow两种主流的深度学习框架,并正确配置环境已实现在Keras中调用TensorBoard绘制训练曲线的目的。在完成改目的的过程中还会介绍博主在安装过程中遇到的问题及调试办法。

二、安装Keras & TensorFlow

2.1 Ubuntu 初始环境设置

  请注意在本文中使用的电脑是一台刚刚重装过系统,里面任何软件没有配置过的电脑。具体配置为64位英文版 Ubuntu16.04Python2.7显卡 GT635(因此仅安装TensorFlow的CPU版本),没有AVX2指令集

  首先为电脑安装深度学习必备的软件,这部分主要参考《Keras中文文档》 Keras安装和配置指南(Linux)。在这里要首先注意阅读其中“关于计算机的硬件配置说明”,根据自己电脑的实际配置选择对应的安装方式。
  根据上述内容,本文所采用的机器为刚刚重装的系统且GPU较为落后的电脑,因此安装CPU版。
  首先安装开发包,打开“终端”(Terminal)输入

# 系统升级
sudo apt update
sudo apt upgrade# 安装python基础开发包
sudo apt install -y python-dev python-pip python-nose gcc g++ git gfortran vim

之后安装运算加速库,打开“终端”输入

# 系统升级
sudo apt install -y libopenblas-dev liblapack-dev libatlas-base-dev

  之后跳过“CUDA开发环境的搭建”和“加速库cuDNN”,因为这两部分都需要GPU的支持。

   :在系统升级的过程中,运行sudo apt update的过程中可能会出现如下的报错

Reading package lists... Done
E: Problem executing scripts APT::Update::Post-Invoke-Success
'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli;then appstreamcli refresh > /dev/null;fi'
E: Sub-process returned an error code

修改这种错误采用的方法如该博客,具体方法如下

sudo pkill -KILL appstreamcli
wget -P /tmp https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb
sudo dpkg -i /tmp/appstream_0.9.4-1ubuntu1_amd64.deb /tmp/libappstream3_0.9.4-1ubuntu1_amd64.deb

执行完上述命令之后再次运行sudo apt-get update就不会再出现上面的错误。

2.2 安装 TensorFlow

  在Ubuntu的环境下安装 TensorFlow 是最简单的一种安装方式,但是网上有着各种各样的教程令人眼花缭乱,但实际上只需要参考TensorFlow中文社区的“二进制安装”方法即可

# 仅使用 CPU 的版本
$ pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

  在安装TensorFlow的过程中主要有以下几点

  • 版本问题
    在这里需要注意,这里安装的是tensorflow-0.5.0,是一个十分古老的版本,但是我们在这里只是使用TensorBoard,所以才安装了这个版本。至于Keras使用的tensorflow,可以在后面进行操作。
  • Bazel
    Bazel 是一个很神奇的东西,在“终端”中运行由Keras编写的文件会出现如下的警告
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.

这段警告的实际含义是,在你的电脑中存在着SSE4.1,SSE4.2,AVX三种指令集,这三种指令集可以加速你得CPU计算,但是你没有使用。在网上搜索相关的解决办法大多是建议你在电脑中安装 Bazel,这是一种解决办法,但是也有一点需要注意:安装 Bazel 后,在执行Keras程序的过程中也是需要 AVX2、FMA 指令集的,但是如果你的电脑没有这种指令集就会无法执行程序。
  言而总之,是否安装 Bazel 根据你的电脑中是否同时具有AVX2、FMA 指令集(一般的 SSE4.1,SSE4.2,AVX 都有)。如果已经安装了,我并没有发现完全卸载的办法,所以我重新装了一下系统,如果有卸载的办法请在评论区留言,万分感谢~

  • 安装位置
    要注意 TensorBoard 的安装位置,在终端中进入到这个文件夹的指令为
cd /usr/local/lib/python2.7/dist-packages/tensorboard

2.3 安装 Keras

  将目光转回到《Keras中文文档》 Keras安装和配置指南(Linux),继续安装 Keras,刚刚对于TensorFlow的安装主要是为了使用其中的TensorBoard功能。而这里我们将安装一个作为Keras后端的TensorFlow,再安装 Keras,具体过程如下

sudo pip install -U --pre tensorflow ## CPU版本
sudo pip install -U --pre keras

2.4 测试安装结果

  安装完毕后,在终端中输入python,然后输入

import tensorflow
import keras

无错输出即表明已经安装成功。但是有的时候会出现

mportError: No module named protobuf

这时因为protobuf的版本比较旧了,所以采取的办法是先将其卸载,再将tensorflow卸载,最后再重新安装tensorflow即可,具体如下

sudo pip uninstall protobuf
sudo pip uninstall tensorflow
sudo pip install -U --pre tensorflow

再重新输入

import tensorflow
import keras

若没有报错,则证明已经成功安装了 Keras & TensorFlow。

3. 使用TensorBoard 绘制训练曲线

  在这里假设大家已经通过 Keras 搭建好了自己的神经网络,并可以通过程序对神经网络进行训练了。这里主要参考的是《Keras中文文档》 花式自动编码器首先我们需要在程序的最开始部分导入回调函数(callbacks),即

from keras.callbacks import TensorBoard

之后在后面的fit的参数callbacks给出记录神经网络输出情况的文件夹

model.fit(train_data, train_labels,nb_epoch=400, batch_size=32,callbacks=[TensorBoard(log_dir='mytensorboard/3')])

注意其中callbacks是存放输出文件的文件夹。训练结束后,训练过程中产生的数据会存放在log_dir所对应的文件夹中。
  之后打开终端,首先进入单独安装的TensorBoard(即第一个安装的TensorFlow所对应的TensorBoard)的安装目录,才能正常使用TensorBoard,即

cd /usr/local/lib/python2.7/dist-packages/tensorboard

之后在终端中输入

tensorboard --logdir='/home/lib321/my_keras/mytensorboard/3'

打开返回结果的链接即可在浏览器中观察对应曲线。要注意在这里TensorFlow所绘制的训练曲线是logdir文件夹内所有文件的曲线,比如说你对模型进行了多次的训练,并且把这些不同的训练结果都放在了同一个文件夹,则不同训练过程的相同指标会画在同一条直线上,所以为了区别每一次训练曲线的不同,虽好每次输出到不同的文件夹内。

  欢迎提问、建议、讨论等~期待大家的留言~~~


http://www.ppmy.cn/news/404550.html

相关文章

ac3165无线网卡驱动linux,英特尔ac3165驱动下载

ac3165网卡驱动是支持英特尔双频带Wireless-AC3165无线网卡的安装程序,让用户的台式电脑也可以接受wifi,并且不卡顿的玩游戏和浏览网页,低延迟、高速率,同插网线一样的网速效果,有该产品的可以试试,安装傻瓜…

关于GTPU

GTP协议 GTP(GPRS隧道协议(GPRS Tunneling Protocol)),可以分解成三种独立的协议,GTP-C、GTP-U及GTP。GTP-U用于在GPRS核心网内,无线接入网与核心网之间传送用户数据。 GTP可以用在UDP或TCP上,GTP v1仅用于…

python-文件操作指针

文件操作指针 文章目录 文件操作指针1. 文件指针的概念和作用:2. 移动文件指针的位置:3. 获取当前文件指针的位置:4. 文件指针的影响: 文件操作指针是在进行文件读写操作时用于标识当前位置的一个概念。它记录了文件中读写操作将要…

【OpenMMLab AI实战营二期笔记】第十天 底层视觉与MMEditing

1.图像超分辨率 1.1 什么是图像超分辨率? 根据从低分辨率图像重构高分辨率图像 1.2 目标: 提高图像的分辨率高分图像符合低分图像的内容恢复图像的细节、产生真实的内容 1.3 应用: 经典游戏高清重制动画高清重制照片修复节约传输高清图…

LuaJIT Bytecode结构布局

一、Bytecode的存储结构 LuaJIT的Bytecode位宽为32位,在parse阶段用结构体BCInsLine表示,ins表示32位长的字字节码指令,line表示字节码的行号: typedef struct BCInsLine {BCIns ins; /* Bytecode instruction. */BC…

JUC高级-0614

5.LockSupport与线程中断 5.1 线程中断 蚂蚁金服面试题:如何中等一个线程,如何停止一个线程什么是中断机制 首先:一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。所以,Thread.stop, Thread.…

el-table点击单元格变成输入框,以及其自动获取焦点失效可能的原因(focus失效)

1.el-table点击单元格变成输入框 这里主要使用了el-table三个自带的方法/属性&#xff1a; <el-table:data"MesTableData"bordercell-click"clickCell":row-class-name"tableRowClassName":cell-class-name"tableCellClassName" …

React基础教程(二):React的基本使用

React基础教程(二)&#xff1a;React的基本使用 1、HelloReact 1.1 引入react基础依赖包 注意点&#xff1a;①必须要在②之前引入 <!-- 引入react核心库--><script src"../js/react.development.js"></script><!-- 引入react-dom&…