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

  • 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 版本 Tensorflow
sudo pip install --upgrade tensorflow

# Keras 安装
sudo pip install keras

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

2 使用演示

2.1 一个简单神经网络

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

#coding=utf-8

import matplotlib.pyplot as plt
import numpy as np

from keras.models import Sequential
from keras.layers import Dense, Activation
from 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个神经元的隐藏层,激励函数relu
model.add(Dense(10,activation='relu', input_dim=1))
#添加一个输出层
model.add(Dense(1))
#随机梯度下降,学习率0.1
sgd = 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()

代码运行的展示结果如下:
人工智能学习笔记-Keras介绍及简单应用_第1张图片

2.2 模型可视化

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

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

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

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

最总展示2.1中网络的模型结构如下:
人工智能学习笔记-Keras介绍及简单应用_第2张图片

参考阅读

  • keras中文文档

你可能感兴趣的:(人工智能,python,人工智能,神经网络,深度学习)