tensorflow神经网络多维曲线拟合

1、参考:神经网络(二) 曲线拟合纯python代码参考(BP算法)

计算智能 作业二
题目:自选非线性分类或曲线拟合问题,用BP网络训练、学习。
自选题目:
下面列表中的数据是某地区20年公路运量数据,其中属性“人口数量”、“机动车数量”和“公路面积”作为输入,属性“公路客运量”和“公路货运量”作为输出。请用神经网络拟合此多输入多输出曲线。
在这里插入图片描述

2、结果对比

纯python代码BP算法的结果:

100000步训练后,结果为:
在这里插入图片描述

python+Tensorflow Adam优化算法的结果:

100000步训练后,结果为:
在这里插入图片描述
优化的更快!可能过拟合

Tensorflow计算图(神经网络模型=拟合函数数学模型

cmd命令:tensorboard --logdir=C:\temp\log_simple_stats
在这里插入图片描述

训练迭代过程中,损失函数值:
在这里插入图片描述

注意训练的数据需要正则化

samplein = np.mat([population,vehicle,roadarea]) #3*20
sampleinminmax = np.array([samplein.min(axis=1).T.tolist()[0],samplein.max(axis=1).T.tolist()[0]]).transpose()#3*2
sampleout = np.mat([passengertraffic,freighttraffic])#2*20
sampleoutminmax = np.array([sampleout.min(axis=1).T.tolist()[0],sampleout.max(axis=1).T.tolist()[0]]).transpose()#2*2
sampleinnorm = (2*(np.array(samplein.T)-sampleinminmax.transpose()[0])/(sampleinminmax.transpose()[1]-sampleinminmax.transpose()[0])-1).transpose()
sampleoutnorm = (2*(np.array(sampleout.T).astype(float)-sampleoutminmax.transpose()[0])/(sampleoutminmax.transpose()[1]-sampleoutminmax.transpose()[0])-1).transpose()

注意正则化时,公式分母不能为0
上面公式中的2* 和-1可以没有

3、python+Tensorflow代码

# coding=utf-8
import os  
os.environ["TF_CPP_MIN_LOG_LEVEL"]='2' 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值