人工智能学习笔记-Keras介绍及简单应用

来源:互联网 发布:生活的乐趣 知乎 编辑:程序博客网 时间:2024/06/07 15:57

  • Keras介绍及安装
    • 1 什么是Keras
    • 2 一些基本概念
      • 21 符号计算
      • 21 张量
    • 3 安装
  • 使用演示
    • 1 一个简单神经网络
    • 2 模型可视化
  • 参考阅读


1 Keras介绍及安装

1.1 什么是Keras

Keras 是一个基于 Python 的高层神经网络库,其可以使用 Tensorflow、Theano 以及 CNTK 等著名深度学习框架作为后端。Keras 的设计理念为简单而便捷,你可以通过几行代码构建一个复杂的卷积神经网络或循环神经网络。

1.2 一些基本概念

1.2.1 符号计算

笼统的说,符号主义的计算首先定义各种变量,然后建立一个“计算图”,计算图规定了各个变量之间的计算关系。建立好的计算图需要编译以确定其内部细节,然而,此时的计算图还是一个“空壳子”,里面没有任何实际的数据,只有当你把需要运算的输入放进去后,才能在整个模型中形成数据流,从而形成输出值。
个人理解,计算图就可以看做一个更加复杂的公式,代入数据获得输出。

1.2.1 张量

通俗的讲就是多维数组,我们用张量来表示广泛的数据类型,来代入计算图中参与计算。
张量的阶数有时候也称为维度,或者轴,轴这个词翻译自英文axis。譬如一个矩阵[[1,2],[3,4]],是一个2阶张量,有两个维度或轴,沿着第0个轴(为了与python的计数方式一致,本文档维度和轴从0算起)你看到的是[1,2],[3,4]两个向量,沿着第1个轴你看到的是[1,3],[2,4]两个向量

1.3 安装

python、tensorflow、numpy等常用环境安装就不再概述了,必须tensorflow环境安装好了再运行下面命令

# CPU 版本 Tensorflowsudo pip install --upgrade tensorflow# Keras 安装sudo pip install keras

Keras 已经默认采用 Tensorflow 作为后端,一般情况下,也无必要再采用 Theano 作为后端了。

2 使用演示

2.1 一个简单神经网络

一个同样的神经网络,Tensorflow、Theano需要敲一堆代码,而Keras只需要简单的几行代码。
下面代码演示建立一个网络,它与介绍Tensorflow、Theano时候演示用的是同样的网络,明显简单了很多:

#coding=utf-8import matplotlib.pyplot as pltimport numpy as npfrom keras.models import Sequentialfrom keras.layers import Dense, Activationfrom keras.optimizers import SGD#随机生成一份数据x_data = np.linspace(-1,1,30)[:,np.newaxis]noise = np.random.normal(0,0.05,x_data.shape)y_data = np.square(x_data) - 0.5 + noise#定义函数模型,序惯model = Sequential()#添加一个10个神经元的隐藏层,激励函数relumodel.add(Dense(10,activation='relu', input_dim=1))#添加一个输出层model.add(Dense(1))#随机梯度下降,学习率0.1sgd = SGD(lr=0.1)#编译,损失函数是平方差model.compile(loss='mse', optimizer=sgd, metrics=['accuracy'])#开始训练,训练100次,每次取10个数据model.fit(x_data, y_data, epochs=100, batch_size=10)#测试与展示结果plt.scatter(x_data, y_data)testx = np.linspace(-1,1,100)[:,np.newaxis]testy=model.predict_on_batch(testx)testy = testy.reshape((100,))testx = testx.reshape((100,))#print(testx)print(testy)plt.plot(testx,testy, c='r')plt.show()

代码运行的展示结果如下:
这里写图片描述

2.2 模型可视化

用可是化工具,展示2.1中的模型结构

#需要安装如下环境sudo apt-get install graphvizsudo pip install pydot-ngsudo pip install graphviz

然后再添加如下代码输出图片

from keras.utils import plot_modelplot_model(model,to_file='model.png')

最总展示2.1中网络的模型结构如下:
这里写图片描述

参考阅读

  • keras中文文档