Keras人工智能神经网络 Regressor 回归 神经网络搭建

前期分享了使用tensorflow来进行神经网络的回归,tensorflow构建神经网络

本期我们来使用Keras来搭建一个简单的神经网络

Keras神经网络可以用来模拟回归问题 (regression),例如给下面一组数据,用一条线来对数据进行拟合,并可以预测新输入 x 的输出值,也就是线性回归问题(Y=w*X+b)

1创建随机数据

import numpy as np
np.random.seed(1337) # 随机数
from keras.models import Sequential # models.Sequential,用来一层一层的建立神经层
from keras.layers import Dense # layers.Dense 个神经层是全连接层
import matplotlib.pyplot as plt # 可视化模块

# 创建数据

X = np.linspace(-1, 1, 300)
np.random.shuffle(X) # 数据随机化
Y = 0.5 * X + 2 + np.random.normal(0, 0.05, (300, ))
# 显示创建的数据
plt.scatter(X, Y)
plt.show()
X_train, Y_train = X[:260], Y[:260] # train 前 260 data points
X_test, Y_test = X[260:], Y[260:] # test 后 40 data points

数据创建完后,我们查看一下生成的随机数据

建立神经网络模型

Sequential 建立 model

model.add 添加神经层,添加的是 Dense 全连接神经层。

参数有两个,一个是输入数据和输出数据的维度,本代码的例子中 x 和 y 是一维的。

如果需要添加下一个神经层的时候,不用再定义输入的纬度,因为它默认就把前一层的输出作为当前层的输入(这一点大大简化了神经网络的搭建过程)

model = Sequential()
model.add(Dense(output_dim=1, input_dim=1))
model.compile(loss='mse', optimizer='sgd') 
# 参数中,误差函数用的是 mse 均方误差;优化器用的是 sgd 随机梯度下降法

以上3行代码便是keras神经网络的搭建过程(比tensorflow减少了很多),构建完成神经网络后,开始训练

keras神经网络训练

for step in range(401):
cost = model.train_on_batch(X_train, Y_train)
if step % 100 == 0:
print('train cost: ', cost)
'''
train cost: 4.0291815
train cost: 0.076484405
train cost: 0.004810586
train cost: 0.0029513359
train cost: 0.002760151
'''

训练400步,每100步打印一下训练的结果,使用model.train_on_batch 一批一批的训练 X_train, Y_train

keras 神经网络的验证

使用 model.evaluate,输入测试集的x和y, 输出 cost,weights 和 biases。其中 weights 和 biases 是取在模型的第一层 model.layers[0] 学习到的参数

从训练的结果看出, weights 比较接近0.5,bias 接近 2,符合我们输入的模型

cost = model.evaluate(X_test, Y_test, batch_size=40)
print('test cost:', cost)
W, b = model.layers[0].get_weights()
print('Weights=', W, '\nbiases=', b)
40/40 [==============================] - 0s 450us/step
test cost: 0.003141355235129595
Weights= [[0.51579475]]
biases= [1.9971616]

可视化模型

验证完成后,我们可以可视化模型,看看神经网络预测的数据与实际数据的差异

Y_pred = model.predict(X_test)
plt.scatter(X_test, Y_test)
plt.plot(X_test, Y_pred)
plt.show()

以上便是keras构建回归神经网络的步骤,我们下期分享一下如何使用keras构建分类模型的神经网络

 动画详解transformer  

更多transformer,VIT,swin tranformer
参考头条号:人工智能研究所
v号:启示AI科技
微信中复制如下链接,打开,免费体验chatgpthttps://wx2.expostar.cn/qz/pages/manor/index?id=1137&share_from_id=79482&sid=24

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/160008.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ActiveMQ是什么?-九五小庞

MQ是消息中间件,是一种在分布式系统中应用程序借以传递消息的媒介,常用的有ActiveMQ,RabbitMQ,kafka。ActiveMQ是Apache下的开源项目,完全支持JMS1.1和J2EE1.4规范的JMS Provider实现。特点:1、支持多种语言…

机器学习快速入门教程 Scikit-Learn实现

机器学习是什么? 机器学习是一帮计算机科学家想让计算机像人一样思考所研发出来的计算机理论。他们曾经说过,人和计算机其实本没有差别,同样都是一大批互相连接的信息传递和存储元素所组成的系统。所以有了这样的想法,加上他们得天独厚的数学功底,机器学习的前身也就孕育而生…

Linux学习笔记之二(环境变量)

Linux learning note 1、环境变量1.1、修好PATH环境变量 1、环境变量 环境变量(environment variables)即系统运行的一些环境参数。主要的环境变量有以下这些: PATH:决定了系统查找可执行文件的目录范围。HOME:指定当前用户的主目录路径。U…

python 数据挖掘库orange3 介绍

orange3 是一个非常适合初学者的data mining library. 它让使用者通过拖拽内置的组件来形成工作流。让你不需要写任何代码就可以体验到数据挖掘和可视化的魅力。 它的桌面如下,这里我创建了 3 个节点,分别是数据集、小提琴图,散点图 其中 …

C++笔记之vector的成员函数swap()和data()

C笔记之vector的成员函数swap()和data() 标准C中的std::vector类确实有swap()和data()这两个成员函数。下面是它们的简要描述: swap(): std::vector的swap()成员函数用于交换两个向量的内容,实现了高效的交换操作,不需要复制向量的元素。这…

儿童听力损伤了,家长怎么办?

很多家长对儿童听力损伤问题存在较大误区,认为儿童除了先天性耳聋以外不会有听力问题。家长总认为孩子上课或做事不专心是因为注意力不集中、多动等问题所致,大部分家长没有意识到孩子可能出现了听力损伤问题。 儿童听力损伤主要是指因各种原因导致双耳不…

数据结构(超详细讲解!!)第二十节 数组

1.定义 1.概念 相同类型的数据元素的集合。 记作:A(A0,A1,…,Am-1) 二维数组可看作是每个数据元素都是相同类型的一维数组的一维数组。多维数组依此类推。 二维数组是数据元素为线性表的线性表。 A(A0,A1,……,An-1) 其中…

JumpServer开源堡垒机与万里安全数据库完成兼容性认证

近日,中国领先的开源软件提供商FIT2CLOUD飞致云宣布,JumpServer开源堡垒机已经与万里安全数据库软件GreatDB完成兼容性认证。针对产品的功能、性能、兼容性方面,经过双方共同测试,万里安全数据库软件(简称:…

Anaconda安装与配置

1.打开Anaconda官网,选择对应版本,下载到对应目录即可 或者进入: Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 2.双击打开.exe文件,然后点击next ; 3.点击agree 4.点击just me,然后next; 5.在Choose Install L…

【JavaEE初阶】 网络编程基础与Socket套接字

文章目录 🎋网络编程基础🚩为什么需要网络编程?🚩什么是网络编程?🚩网络编程中的基本概念📌发送端和接收端📌请求和响应📌客户端和服务端📌常见的客户端服务端…

【蓝桥杯软件赛 零基础备赛20周】第2周——常考知识点+判题

文章目录 0. 第1周答疑1. 常考知识点2. 蓝桥杯怎么判题2.1 判题系统如何判题2.2 测试数据和得分的关系2.3 自己做测试数据 3. 备赛计划4. 本周刷题 0. 第1周答疑 问题1:蓝桥杯怎么报名,什么时候报名? 答:集体报名或个人报名。大…

Redis中的List类型

目录 List类型的命令 lpush lpushx rpush lrange lpop rpop lindex linsert llen lrem ltrim lset 阻塞命令 阻塞命令的使用场景 1.针对一个非空的列表进行操作 2.针对一个空的列表进行操作 3.针对多个key进行操作. 内部编码 lisi类型的应用场景 存储(班级…