Keras 入门实例
使用Keras构建神经网络的基本工作流程主要可以分为 4个部分。(而这个用法和思路,很像是在使用Scikit-learn中的机器学习方法)
# # 首先 人为地造一组由 y=0.5x+2 加上一些噪声而生成的数据,数据量一共有200个,其中160作为train set ,后40作为test set
import numpy as np
import matplotlib.pyplot as plt X = np.linspace(-2,6,200)
np.random.shuffle(X)
Y = 0.5 * X +2+0.15*np.random.randn(200,) # plot data
plt.scatter(X,Y)
plt.show() X_train, Y_train = X[:160], Y[:160] #train first 160 data points
X_test, Y_test = X[160:], Y[160:] # test remaining 40 data points
绘制出的数据的分布情况如下:
from keras.models import Sequential
from keras.layers import Dense
(1)Sequential是Keras中构建NN最常用的一种Model(也是最简单的一种),一个Sequential的Model 就是 a linear stack of layers,也就是说,你只要按顺序(使用add()方法)一层一层地顺序地添加神经网络层就可以了。
model = Sequential()
model.add(Dense(output_dim = 1, input_dim = 1))
model.compile(loss='mse', optimizer='sgd')
from keras.optimizers import SGD
model.compile(loss='mse', optimizer=SGD(lr=0.01, momentum=0.9, nesterov=True))
model.fit(X_train, Y_train, epochs=100, batch_size=64)
model.train_on_batch(x_batch, y_batch) # 运行一批样品的单次梯度更新。
print('Training -----------')
for step in range(100):
cost = model.train_on_batch(X_train, Y_train)
if step % 20 == 0:
print('train cost: ', cost)

cost = model.evaluate(X_test, Y_test, batch_size=40)
具体来说针对上面这个例子则有:
print('\nTesting -------------')
loss_and_metrics =model.evaluate(X_test,Y_test,batch_size=40)
print('test cost:',loss_and_metrics)
W,b = model.layers[0].get_weights()
print('Weights= ',W, '\n biases=',b)

那么对一些新的数据进行预测的话,可以使用 predict,而且它的使用也与Scikit-learn中的用法及其相似, 最终我们预测test set 中的每个的点,并绘制预测的模型。
Y_pred =model.predict(X_test)
plt.scatter(X_test,Y_test)
plt.plot(X_test,Y_test)
plt.show()
5、最后附上完整的代码文件:
import numpy as np
import theano.tensor as T
import keras
from keras import backend as K
from keras import initializations
# from keras import initializers ###### In Keras 2.0, initializations was renamed (mirror) as initializers.
from keras.models import Sequential, Model, load_model, save_model
from keras.layers.core import Dense, Lambda, Activation
from keras.layers import Embedding, Input, Dense, merge, Reshape, Merge, Flatten
from keras.optimizers import Adagrad, Adam, SGD, RMSprop
from keras.regularizers import l2
from Dataset import Dataset
from evaluate import evaluate_model
from time import time
import multiprocessing as mp
import sys
import math
import argparse print(keras.__version__) # 使用的默认的Backend:TensorFlow #修改 # # 首先 人为地造一组由 y=0.5x+2 加上一些噪声而生成的数据,数据量一共有200个,其中160作为train set ,后40作为test set
import numpy as np
import matplotlib.pyplot as plt X = np.linspace(-2,6,200)
np.random.shuffle(X)
Y = 0.5 * X +2+0.15*np.random.randn(200,) # # plot data
# plt.scatter(X,Y)
# plt.show() X_train, Y_train = X[:160], Y[:160] #train first 160 data points
X_test, Y_test = X[160:], Y[160:] # test remaining 40 data points # 第一步,即 Model Definition:
from keras.models import Sequential
from keras.layers import Dense model = Sequential()
model.add(Dense(output_dim=1, input_dim=1)) # 第二步,即Model compilation:
model.compile(loss='mse',optimizer='sgd') # 第三步,即 Training:
# model.fit(X_train,Y_train,epochs=100,batch_size=64) # epochs=100会报错是怎么回事
# 或者:
print('Training ----------------')
for step in range(100):
cost = model.train_on_batch(X_train,Y_train)
if step %20 ==0:
print('train cost: ',cost) # 第四步:Evaluation and Prediction的部分
# cost=model.evaluate(X_test,Y_test,batch_size=40)
# 具体来说针对我们现在这个例子则有:
print('\nTesting -------------')
loss_and_metrics =model.evaluate(X_test,Y_test,batch_size=40)
print('test cost:',loss_and_metrics)
W,b = model.layers[0].get_weights()
print('Weights= ',W, '\n biases=',b) # 那么对一些新的数据进行预测的话,可以使用 predict,而且它的使用也与Scikit-learn中的用法及其相似,
# 最终我们预测test set 中的每个的点,并绘制预测的模型。
Y_pred =model.predict(X_test)
plt.scatter(X_test,Y_test)
plt.plot(X_test,Y_test)
plt.show()
【Reference】
1、https://blog.csdn.net/baimafujinji/article/details/78384792
Keras 入门实例的更多相关文章
- React 入门实例教程(转载)
本人转载自: React 入门实例教程
- struts入门实例
入门实例 1 .下载struts-2.3.16.3-all .不摆了.看哈就会下载了. 2 . 解压 后 找到 apps 文件夹. 3. 打开后将 struts2-blank.war ...
- Vue.js2.0从入门到放弃---入门实例
最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用 ...
- wxPython中文教程入门实例
这篇文章主要为大家分享下python编程中有关wxPython的中文教程,分享一些wxPython入门实例,有需要的朋友参考下 wxPython中文教程入门实例 wx.Window 是一个基类 ...
- Omnet++ 4.0 入门实例教程
http://blog.sina.com.cn/s/blog_8a2bb17d01018npf.html 在网上找到的一个讲解omnet++的实例, 是4.0下面实现的. 我在4.2上试了试,可以用. ...
- Spring中IoC的入门实例
Spring中IoC的入门实例 Spring的模块化是很强的,各个功能模块都是独立的,我们可以选择的使用.这一章先从Spring的IoC开始.所谓IoC就是一个用XML来定义生成对象的模式,我们看看如 ...
- Node.js入门实例程序
在使用Node.js创建实际“Hello, World!”应用程序之前,让我们看看Node.js的应用程序的部分.Node.js应用程序由以下三个重要组成部分: 导入需要模块: 我们使用require ...
- Java AIO 入门实例(转)
Java7 AIO入门实例,首先是服务端实现: 服务端代码 SimpleServer: public class SimpleServer { public SimpleServer(int port ...
- Akka入门实例
Akka入门实例 Akka 是一个用 Scala 编写的库,用于简化编写容错的.高可伸缩性的 Java 和 Scala 的 Actor 模型应用. Actor模型并非什么新鲜事物,它由Carl Hew ...
随机推荐
- EWS:邮箱的一个开放的接口服务
https://3gstudent.github.io/3gstudent.github.io/Exchange-Web-Service(EWS)%E5%BC%80%E5%8F%91%E6%8C%87 ...
- git tag 常用笔记
git tag 常用笔记 查看 tag 列出现有 tag git tag 列出 v1.4.2 相关的 tag git tag -l "v1.4.2" 查看指定 tag 的信息 gi ...
- 本地eyoucms搬家
1.后台数据备份 2.删除install 里面的install.lock 3.清理缓存文件 data - runtime-删除所有文件: 4.项目中的文件全部压缩 即打包完毕:最后再把打包的文件放置到 ...
- Vue开发日志
一 搭建环境 mac 安装node brew install node 安装vue 全家桶 npm install -g vue-cli 选择一个目录做初始化 vue init webpack myp ...
- D2Admin基本使用
目录 d2-admin基本使用 1 安装 1.1 全局安装 d2-admin 1.2 创建项目 1.3 启动项目 1.4 注意事项 2 修改框架 title 和 logo 2.1 修改 title 2 ...
- 剑指:求1+2+…+n
题目描述 求 1+2+…+n,要求不能使用 乘除法.for.while.if.else.switch.case 等关键字及条件判断语句 A?B:C. 样例 输入:10 输出:55 解法 前面的和+后一 ...
- Html引入百度富文本编辑器ueditor及自定义工具栏
在日常工作用,肯定有用到富文本编辑器的时候,富文本编辑器功能强大使用方便,我用的是百度富文本编辑器,首先需要下载好百度编辑器的demo, 然后创建ueditor.html文件,引入百度编辑器,然后在h ...
- Elasticsearch 在 7.X版本中去除type的概念
背景说明 Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎.无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库. El ...
- itextpdf中表格中单元格的文字水平垂直居中的设置
在使用itextpdf中,版本是5.5.6,使用Doucument方式生成pdf时,设置单元格中字体的对齐方式时,发现一些问题,并逐渐找到了解决方式. 给我的经验就是:看官网的例子才能保证代码的效果, ...
- shell脚本遇到问题"$'\r': command not found"
shell脚本写得一切正常,但是一执行就报错: line: XXX "$'\r': command not found" 问题原因:文件格式问题(虽然在window和linux上选 ...