多层感知器(神经网络)的代码实现 | 学习笔记

简介: 快速学习多层感知器(神经网络)的代码实现

开发者学堂课程【Tensorflow2.0入门与实战多层感知器(神经网络)的代码实现】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/664/detail/11102


多层感知器(神经网络)的代码实现


用Tf.keras来实现多层感知器

1、引入 import tensorflow as tf 版本2.0、pandas、numpy、matplotlib。使用 matplotlib inline 将头像直接显示在页面下。

import tensorflow as tf

print(Tensorflow Version:{}’.format(tf._version))

Tensorflow Version:2.0.0-alpha0

import pandas as pd

import numpy as np

import matplotlib.pyplot asp lt

%matplotlib inline

读取数据使用 pd.read_csv 方法,dataset/Advertising.csv 代表广告、电视、报纸、广播、广告对应的销量情况。

data.head 读取数据,有三个特征列 TV、radio、newspaper 预测数据 sales。投放的广告越多,销量就越多。

image.png

2、用 plt.scatter 预测 TV 与 sales 之间的关系。它们之前存在一种线性关系,TV的投放量越大对应的收入越多。image.png

radio 与 sales 之间的线性关系不如 TV 与 sales 之间的线性关系明显,但也是一种线性关系。radio 投放的广告越多,销量越多。

image.png

newspaper 与 sales 的线性关系比较差,随着在 newspaper 广告投放量的增加,对应的 sales 并没有很明显的线性增加。

image.png

3、已知 TV、radio、newspaper 的广告投放量,建立一个模型来预测销量值。

x取中间的三列特征,使用 data.iloc 除去第一列和最后一列。y取最后一列。

使用 tf.keras.Sequential 第一层 tf.keras.layers.Dense 输出十个单元 ,在 input_shape 输入维度3,添加 activation =relu 激活函数。输出层输出一个单元 sales 。

x=data.iloc[:,1:-1]

y=data.iloc[:,-1]

model=tf.keras.Sequential([tfkeras.layers.Dense(10,input_shape=(3,))]

4、model.summary 运行,中间层 Dense 层包含10个隐藏单元,4个 Param 乘以10个隐藏层共40个参数。

Dense 输出,10个隐藏单元+一个偏置共11个参数,输出维度为1。

image.png

 5、model.compile 训练模型,使用 optimizer='adm' 优化器。输出为连续的值,损失函数使用 mse。

model.compile(optimizer=’adam’,

loss=mse

)

model. fit(x,y,epochs=100)

Epoch 1/100

200/200[==============================]-0s459us/sample-loss:1829.4733

Epoch 2/100

200/200[==============================]-0s50us/sample-loss:1561.3462 Epoch 3/100

200/200[==============================]-0s35us/sample-loss:1316.3282

 

可预测前十个数据可与实际数据相比对

test=data.iloc[:10,1:-1]

model.predict(test)

array([[22.688574 ],

[14.024084],

[7.5851073],

[19.333755],

[13.577582],

[6.6950374],

[11.60217 ],

相关文章
|
2月前
|
Ubuntu 网络安全 图形学
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
在Ubuntu 20.04系统中解决网络图标消失和无法连接有线网络问题的方法,其中第三种方法通过检查并确保Windows防火墙中相关服务开启后成功恢复了网络连接。
830 0
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
用MASM32按Time Protocol(RFC868)协议编写网络对时程序中的一些有用的函数代码
用MASM32按Time Protocol(RFC868)协议编写网络对时程序中的一些有用的函数代码
|
2月前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
116 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
3月前
|
安全 C#
某网络硬盘网站被植入传播Trojan.DL.Inject.xz等的代码
某网络硬盘网站被植入传播Trojan.DL.Inject.xz等的代码
|
2月前
|
机器学习/深度学习 数据可视化 Linux
Seaborn可视化学习笔记(一):可视化神经网络权重分布情况
这篇文章是关于如何使用Seaborn库来可视化神经网络权重分布的教程,包括函数信息、测试代码和实际应用示例。
72 0
|
3月前
|
机器学习/深度学习 自动驾驶 搜索推荐
深度学习之探索神经网络、感知器与损失函数
在当今的数字化时代,深度学习作为一种强大的机器学习技术,正在迅速改变着我们的生活方式。无论是智能推荐系统、自动驾驶车辆还是语音识别应用,深度学习都在背后默默地发挥作用。
66 1
完成切换网络+修改网络连接图标提示的代码框架
完成切换网络+修改网络连接图标提示的代码框架
|
4月前
|
开发者 图形学 API
从零起步,深度揭秘:运用Unity引擎及网络编程技术,一步步搭建属于你的实时多人在线对战游戏平台——详尽指南与实战代码解析,带你轻松掌握网络化游戏开发的核心要领与最佳实践路径
【8月更文挑战第31天】构建实时多人对战平台是技术与创意的结合。本文使用成熟的Unity游戏开发引擎,从零开始指导读者搭建简单的实时对战平台。内容涵盖网络架构设计、Unity网络API应用及客户端与服务器通信。首先,创建新项目并选择适合多人游戏的模板,使用推荐的网络传输层。接着,定义基本玩法,如2D多人射击游戏,创建角色预制件并添加Rigidbody2D组件。然后,引入网络身份组件以同步对象状态。通过示例代码展示玩家控制逻辑,包括移动和发射子弹功能。最后,设置服务器端逻辑,处理客户端连接和断开。本文帮助读者掌握构建Unity多人对战平台的核心知识,为进一步开发打下基础。
159 0
|
4月前
|
安全 开发者 数据安全/隐私保护
Xamarin 的安全性考虑与最佳实践:从数据加密到网络防护,全面解析构建安全移动应用的六大核心技术要点与实战代码示例
【8月更文挑战第31天】Xamarin 的安全性考虑与最佳实践对于构建安全可靠的跨平台移动应用至关重要。本文探讨了 Xamarin 开发中的关键安全因素,如数据加密、网络通信安全、权限管理等,并提供了 AES 加密算法的代码示例。
73 0
|
4月前
|
安全 Apache 数据安全/隐私保护
你的Wicket应用安全吗?揭秘在Apache Wicket中实现坚不可摧的安全认证策略
【8月更文挑战第31天】在当前的网络环境中,安全性是任何应用程序的关键考量。Apache Wicket 是一个强大的 Java Web 框架,提供了丰富的工具和组件,帮助开发者构建安全的 Web 应用程序。本文介绍了如何在 Wicket 中实现安全认证,
50 0