人工智能原理自学笔记(三)——Keras入门,搭建简单的神经网络框架

初识Keras——完成一次神经网络的搭建

什么是Keras

如果说之前学习实践的过程就像是机器学习中的汇编语言写法,Keras框架就如同机器学习里的高级语言,实现了对机器学习神经网络底层复杂的数学运算的封装,我们可以轻松地通过它提供的各种上层接口搭建模型。此外,还有类似的机器学习框架,比如:TensorFlow。相比于Keras,TensorFlow对底层的封装没有那么完全,对编程者而言就显得更加灵活。这两者的关系就如同python与C/C++的关系一般。

简单易用
灵活/强大
Keras
Python
TensorFlow
C语言

“你恰好发现了Keras”
Keras中文文档

代码:

先通过代码展示较为简单的神经网络架构:

import dataset
import numpy as np
import plot_utils
from keras.models import Sequential #用来堆叠神经网络的序列,可以理解为用来堆叠神经网络的载体
from keras.layers import Dense      #意为全连接层,全连接即意为,这一层的每一个输入和输出,和上一层、下一层的每一个全都连接着,一个也不少
from keras.optimizers import SGD
m = 100
X,Y = dataset.get_beans(m)
plot_utils.show_scatter(X,Y)
#创建一个模型
model = Sequential()
# 创建一层,units表示这一层有几个神经元,设定激活函数类型以及输入维度
dense1 = Dense(units = 1,activation = 'sigmoid',input_dim = 2)
#dense2 = Dense(units = 1,activation = 'sigmoid')
model.add(dense1)
#model.add(dense2)
#创建两个隐藏层神经元,使用Sigmoid激活函数
#units:神经元数量 
#创建一个输出层神经元,使用Sigmoid函数激活,用于将上一行两个隐藏层神经元的输出汇合
#model.add(Dense(units = 1,activation = 'sigmoid'))
#使用均方误差代价函数和随机梯度下降算法(sgd)
model.compile(loss = 'mean_squared_error',  #代价函数
                optimizer = SGD(lr = 0.05), #优化器,手动设置学习率
                #optimizer = 'sgd',          #优化器
                metrics = ['accuracy'])     #评估标准
#开始训练
model.fit(X,Y,epochs = 5000,batch_size = 10)
#epochs:训练回合数
#batch_size:每一次训练使用的样本数量
pres = model.predict(X) #预测函数,得到的pres就是经过训练后的预测结果

本段代码片中用到的主要即是Keras中的models、layers以及optimizers三个包,除去与之前类似的生成随机数据的过程,代码首先调用Sequential()函数生成了一个名为model的神经网络模型。而Dense()函数则是用来生成神经网络的一层结构。
units:该层的神经元数量
activation :该层神经元输出的激活函数类型(代码片中选用Sigmoid)函数
input_dim:该层的输入参数数量
完成对该层神经网络的定义后,通过model.add(Densen)将定义好的该层Dense对象加入神经网络中。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值