人工智能:手把手教你搭建单层神经网络(思路清晰&简单易懂&上手快)

搭建单层神经网络首先需具备的知识如下:

1、人工智能基本理论
2、深度学习基本知识
3、机器学习基本知识
4、tensorflow基本知识
5、numpy(矩阵运算)基本知识
6、神经网络(搭建模型)基本知识
7、matplotlib(绘图)基本知识
8、pandas(python语言编写的软件库)基本知识

》不要吓到了,慢慢来,查查资料就能懂了(来自小白的仰望)

一、人工智能开发环境的安装(以下安装在Anaconda Prompt终端输入即可)

1、安装tensorflow

pip install --user --upgrade tensorflow  -i https://mirrors.aliyun.com/pypi/simple/ 

2、安装matplotlib

pip install --user --upgrade matplotlib notebook -i https://mirrors.aliyun.com/pypi/simple/

3、安装pandas

pip install --user --upgrade pandas  -i https://mirrors.aliyun.com/pypi/simple/

4、安装notebook

pip install --user --upgrade jupyter     -i https://mirrors.aliyun.com/pypi/simple/
注意:安装目录中的Scripts,需要添加到系统path中(不懂的可以发邮件询问我:Zhangyc_Engineer@qq.com)

二、使用的工具

1、Anaconda prompt(Miniconda)
该工具的安装,在我的博客主页大家可以自己去find
2、jupyter notebook

三、搭建单层神经网络(例如:全连接线性模型)

1、导入tensorflow和numpy包

import tensorflow as tf
import numpy as np

2、加载训练集(给人工智能投喂原始数据)

data = np.loadtxt("./xxxxx/yyyyy.csv",delimiter=',',skiprows=1)  #第一个参数为文件路径,第二个参数为里面的内容用逗号隔开,第三个参数为跳过第一行表头

3、可以打印以下读取的数据

print("data.shape:",data.shape)  #读取矩阵的形状,为x行y列,第一列为标号,第二列为经验年限,第三列为收入
experience=data[:,1]   #获取第1列的所有行
print("experience=",experience)
income=data[:,2]   #获取第二列的所有行
print("income=",income)

4、绘制图形(更直观地看数据的分布)

#下面可以绘图看一看
#首先导入matplotlib包
import matplotlib.pyplot as plt   #导入matplotlib包

plt.scatter(experience,income)   #画散点图,x为经验年限,y为收入

5、构建单层神经网络模型

#下面就是需要构建单层神经网络模型
model = tf.keras.Sequential()   #通过keras建立一个序列模型/线性模型,例如,f(x)=ax+b
#向模型中添加一个层及激活函数,全连接层的用法
model.add(tf.keras.layers.Dense(1,input_shape=(1,)  )) #第一个参数“1”,表示输出维度为1维,使用关键字input_shape=1,),表示输入的维度也是1维并且输入的参数只有1个,它是一个元组类型的数据

6、查看构建的模型的参数

model.summary()   #该方法可以查看模型,dense(Dense):Dense表示全连接层;(None,1):None第一个维度,表示样本的个数很多;param中的2表示有2个参数

7、模型建立完成就进行complie

#上面神经网络的模型就已经建立好了,下面需要配置和编译指定梯度算法、优化、损失等
model.compile(optimizer="adam",loss='mse',metrics=['acc']) #采用adam优化算法、损失函数为均方误差,metrics目的是监控准确性

8、compile之后就可以进行训练

#神经网络配置好之后,就可以开始训练
logs=model.fit(experience,income, epochs=5000)  #进行匹配experience和income,即训练,训练的次数为5000

9、训练完之后,可以绘制训练次数与损失度的图形

#训练完之后,可以画个图看看
plt.scatter(logs.epoch, logs.history.get('loss'))

10、训练完之后就可以进行预测

#训练完之后,就可以进行预测
#比如预测有20.6666年的经验experience,他的收入能达到多少?
result=model.predict([20.6666]) #这里必须是元组类型
print(result)
预测结果:
[[64.90245]]

四、总结

1、训练集需要大家自己去准备
格式:x行3列(第一列为标号,第二列为输入的经验experience,第三列为输出的收入income),文件后缀为.csv格式
2、本次训练为单层神经网络模型
3、神经网络为Dense全连接形式
4、模型为线性模型,例如:f(x)=ax+b
5、未添加激活函数activation
6、训练此时对预测结果有一定的影响&准备的训练集不够好也会对结果有一定的影响
7、建议大家网上去爬一下别人公开的数据集,来对人工智能进行投喂,这样结果比较准确且有实际应用意义

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cheems_Pak Choi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值