1.keras 实现线性回归模型【完整步骤】

(1)建立顺序模型
(2)选择层,确认参数个数
(3)编译模型
(4)预测模型

import keras
from keras.models import Sequential
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,100,30)
y = 3*x +7 +np.random.randn(30)*6
plt.scatter(x,y)
plt.show()
model = keras.Sequential() # 建立顺序模型
from keras import layers
model.add(layers.Dense(1,input_dim=1)) # y=ax+b 自动建立a,b
print(model.summary())
# 编译模型
model.compile(optimizer='adam',loss='mse')
# 训练模型
model.fit(x,y,epochs=30)
model.predict(x)

2.keras 实现逻辑回归【知识点】

(1)使用sigmoid函数计算二分类问题,binary_crossentropy计算二元交叉熵
(2)使用softmax函数计算多分类问题,categorical_crossentropy和sparse_categorical_crossentropy计算多分类交叉熵

来自文档中损失函数的介绍
损失函数的使用
损失函数(或称目标函数、优化评分函数)是编译模型时所需的两个参数之一:

model.compile(loss='mean_squared_error', optimizer='sgd')
from keras import losses
model.compile(loss=losses.mean_squared_error, optimizer='sgd')

损失函数的参数说明
该符号函数为每个数据点返回一个标量,有以下两个参数:

y_true: 真实标签。TensorFlow/Theano 张量。
y_pred: 预测值。TensorFlow/Theano 张量,其 shape 与 y_true 相同。

实际的优化目标是所有数据点的输出数组的平均值。
常用的Losses请见官方文档

3.手写数字识别案例

import keras
from keras.models import Sequential
import numpy as np
import matplotlib.pyplot as plt
import keras.datasets.mnist as mnist
from keras import layers
(train_image,train_label),(test_image, test_label) = mnist.load_data()
plt.imshow(train_image[0])
plt.show()
print(train_label.shape)
print(train_label[1000])
# 建立全连接层
model = keras.Sequential()
model.add(layers.Flatten()) # 首先展平数据,将(60000.28,28)——>(60000,28*28)
model.add(layers.Dense(64,activation='relu')) # 第一个隐藏层使用relu函数激活
model.add(layers.Dense(10,activation='softmax'))# 第二个隐藏层使用softmax函数激活
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['acc'])
model.fit(train_image,train_label,epochs=50,batch_size=512)# 分批次处理图片
print(model.evaluate(test_image,test_label)) # 输出训练集与测试集的准确率
print(model.evaluate(train_image,train_label))
import numpy as np
model.predict(test_image[:10])

4.激活函数(Activations)

激活函数可以通过设置单独的激活层实现,也可以在构造层对象时通过传递 activation 参数实现:

from keras.layers import Activation, Dense
model.add(Dense(64))
model.add(Activation('tanh'))
# 等价于
model.add(Dense(64, activation='tanh'))

也可以通过传递一个逐元素运算的 Theano/TensorFlow/CNTK 函数来作为激活函数:

from keras import backend as K
model.add(Dense(64, activation=K.tanh))
model.add(Activation(K.tanh))

常用的激活函数:见官方文档

5.正则化( Regularizers)

正则化器允许在优化过程中对层的参数或层的激活情况进行惩罚。 网络优化的损失函数也包括这些惩罚项。惩罚是以层为对象进行的。
正则化器开放 3 个关键字参数:

kernel_regularizer: keras.regularizers.Regularizer
# 可进行l1正则化和l2正则化
bias_regularizer: keras.regularizers.Regularizer
# 偏置项进行惩罚
activity_regularizer: keras.regularizers.Regularizer
# 激活项进行惩罚

使用模板

from keras import regularizers
model.add(Dense(64, input_dim=64,kernel_regularizer=regularizers.l2(0.01),activity_regularizer=regularizers.l1(0.01)))

常用的正则化器

keras.regularizers.l1(0.)
keras.regularizers.l2(0.)
keras.regularizers.l1_l2(l1=0.01, l2=0.01)

keras 初步学习相关推荐

  1. Keras深度学习实战(3)——神经网络性能优化技术详解

    Keras深度学习实战(3)--神经网络性能优化技术详解 0. 前言 1. 缩放输入数据集 1.1 数据集缩放的合理性解释 1.2 使用缩放后的数据集训练模型 2. 输入值分布对模型性能的影响 3. ...

  2. HTMLParser的初步学习

    Python的自带模块--HTMLParser的初步学习 HTMLParser是Python自带的模块,使用简单,能够很容易的实现HTML文件的分析. 本文主要简单讲一下HTMLParser的用法. ...

  3. 怎么装python的keras库_matlab调用keras深度学习模型(环境搭建)

    matlab没有直接调用tensorflow模型的接口,但是有调用keras模型的接口,而keras又是tensorflow的高级封装版本,所以就研究一下这个--可以将model-based方法和le ...

  4. 初步学习pg_control文件之三

    接前文,初步学习pg_control文件之二 继续学习: 研究 DBState,先研究 DB_IN_PRODUCTION ,看它如何出现: 它出现在启动Postmaster时运行的函数处: /* * ...

  5. eclipsevue代码怎么运行_[Java教程]使用eclipse初步学习vue.js操作

    [Java教程]使用eclipse初步学习vue.js操作 0 2017-11-26 19:00:06 一.vue.js的初步认识 https://unpkg.com/vue ">vu ...

  6. json2.js的初步学习与了解(转)

    转载来源:http://apps.hi.baidu.com/share/detail/6092406 json2.js的初步学习与了解 1.)该js的下载地址是:http://www.json.org ...

  7. DL之Keras: Keras深度学习框架的注意事项(默认下载存放路径等)、使用方法之详细攻略

    DL之Keras: Keras深度学习框架的注意事项(自动下载存放路径等).使用方法之详细攻略 目录 Keras深度学习框架的注意事项 1.Keras自动下载默认数据集/模型存放位置 Windows系 ...

  8. 深度学习者的入门福利-Keras深度学习笔记

    Keras深度学习笔记 最近本人在github上发现一个不错的资源,是利用keras来学习深度学习的笔记,笔记内容充实,数据完善,本人亲自实操了里面的所有例子,深感收获颇丰,今天特意推荐给大家,希望能 ...

  9. [Python人工智能] 三十.Keras深度学习构建CNN识别阿拉伯手写文字图像

    从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章分享了生成对抗网络GAN的基础知识,包括什么是GAN.常用算法(CGAN.DCGAN.infoGAN.WGAN). ...

  10. 【TensorFlow-serving】初步学习模型部署

    前言 初步学习tensorflow serving的手写数字识别模型部署.包括简单的模型训练.保存.部署上线.因为对docker和网络不太熟悉,可能会有部分错误,但是看完博客,能跑通整个流程.此博客将 ...

最新文章

  1. 180508 - 解决有关VIVO的2018-04-01安全补丁导致的APP闪退问题
  2. git push时提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支
  3. Texture Inspection 纹理检验halcon算子,持续更新
  4. JS数据结构与算法——冒泡排序(把大的数字依次往后放)
  5. LeetCode 1910. 删除一个字符串中所有出现的给定子字符串
  6. LeetCode 938. 二叉搜索树的范围和(二叉树遍历+搜索剪枝)
  7. go 文件服务器 搜索,golang文件服务器,可以访问任何目录
  8. 竞彩足球混合过关赔率API调用示例代码
  9. Android sendEmptyMessage(0)里面的“0”是啥意思?
  10. Detours学习之十二:Detours API用于修改二进制文件的api
  11. matlab导入数据后画图_利用三维坐标matlab创建三维曲面
  12. ue4移动到一定距离_UE4 移动物体的几种方法
  13. 如何上色?怎样才能配出好看的颜色?
  14. 深度|加州大学Russell教授:人工智能基础概念与34个误区
  15. java基础:运算符
  16. 下拉列表组合折线图,这样的Excel动态图表,你会吗?
  17. Linux常见的使用命令
  18. DataGridView中某一行的某一列及当前行的选取方法(C#实现)
  19. STM32 ADC单通道与多通道_DMA学习笔记
  20. Oracle时间函数 to_char()及常用时间格式

热门文章

  1. matlab myupdatefcn,MATLAB笔记
  2. python读配置文件转字典_python中读取配置文件的方式
  3. ftp测试工具_Linux网络配置 | FTP 实战-本地用户登录
  4. i2c通信的详细讲解_STM32Cube15 | 使用硬件I2C读写温湿度传感器(SHT30)
  5. 中画图title函数_Matlab对量子力学中的一维无限深势阱的模拟计算
  6. java 盘符 系统_给想学java的小白们的福利——java开发入门
  7. java产生随机数(可个性化定制)
  8. html空格暂停,关于audio标签暂停的问题
  9. TypeScript:数组
  10. Mavon-editor:获取html内容和text内容