[2]深度学习和Keras-----如何在Ubuntu上安装深度学习的框架:Keras

在上一节,我们已经了解到了什么是人工智能。人工智能和机器学习的区别和关系。这个章节,让我们来介绍一下Keras。 Keras是深度学习的一个开源实现。参考一下Keras的官方介绍,其概念如下:

Keras是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow或Theano。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras:

  • 简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性)
  • 支持CNN和RNN,或二者的结合
  • 无缝cpu和GPU切换

Keras适用的Python版本是:Python 2.7-3.5

Keras的设计原则是

  • 用户友好:Keras是为人类而不是天顶星人设计的API。用户的使用体验始终是我们考虑的首要和中心内容。Keras遵循减少认知困难的最佳实践:Keras提供一致而简洁的API, 能够极大减少一般应用下用户的工作量,同时,Keras提供清晰和具有实践意义的bug反馈。

  • 模块性:模型可理解为一个层的序列或数据的运算图,完全可配置的模块可以用最少的代价自由组合在一起。具体而言,网络层、损失函数、优化器、初始化策略、激活函数、正则化方法都是独立的模块,你可以使用它们来构建自己的模型。

  • 易扩展性:添加新模块超级容易,只需要仿照现有的模块编写新的类或函数即可。创建新模块的便利性使得Keras更适合于先进的研究工作。

  • 与Python协作:Keras没有单独的模型配置文件类型(作为对比,caffe有),模型由python代码描述,使其更紧凑和更易debug,并提供了扩展的便利性。

工欲善其事,必先利其器,那么在学习和使用Keras之前,必须要先安装Keras。那如何安装Keras。 Keras可以安装在Window,Linux和Mac系统上;但是笔者比较喜欢Ubuntu的系统,而且在Linux上面安装Keras也非常的简单,所有笔者以在Ubuntu系统上的安装为例子。

@首先解决sudo出现的unable to resolve host

运行hostname命令,获得当前的主机的名称;然后sudo vi /etc/hosts把127.0.0.1 <hostname> 加入到/etc/hosts文件中。

@准备一台Ubuntu 16.x的虚拟机并执行 sudo apt-get update

把ubuntu升级到最新的系统

@ 首先安装python3-pip

sudo apt install python3-pip

@Ubuntu 16.x认安装的是python3,这非常的好,然后我们在我们直接安装Keras

sudo pip3 install keras

@ 安装完成后,进入python3的环境,然后输入import keras



从上面的信息可以看出,其没有安装TensorFlow。

解决方法有两个:

@切换成theano

只要进入python3的环境,并输入下面的语句

>>> import os
>>> os.environ['KERAS_BACKEND']='theano'

恭喜你,Keras切换成theano成功。

有图有真相:


但是注意的是,这种方式的切换是临时切换,如果推出当前的Session,就立刻退出当的theano的后台(backend)

如果想一劳永逸,持久化的修改Keras的backend为theano,这个只需要修改下面这个文件

ubuntu@keras:~$ cat ~/.keras/keras.json
{
"floatx": "float32",
"image_data_format": "channels_last",
"epsilon": 1e-07,
"backend": "theano"
}


@安装TensorFlow

首先升级pip: sudo -H python -m pip install --upgrade pip

然后直接安装:sudo pip install tensorflow

相关文章

目录前言一、创建Hadoop用户二、更新apt和安装Vim编辑器三、...
原文连接:https://www.cnblogs.com/yasmi/p/5192694.html ...
电脑重启后,打开VirtualBox,发现一直用的虚拟机莫名的消失...
参见:https://blog.csdn.net/weixin_38883338/article/deta...
Ubuntu 18.04 LTS 已切换到 Netplan 来配置网络接口。Netpla...
介绍每个 Web 服务都可以通过特定的 URL 在 Internet 上访问...