DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测实现代码-阿里云开发者社区

开发者社区> 一个处女座的程序猿> 正文

DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测实现代码

简介: DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测实现代码
+关注继续查看


输出结果


image.png

image.png


image.png




DNN层个数: 4

Epoch: 10; Error: 27.53608815309984;

Epoch: 20; Error: 15.587988598717738;

Epoch: 30; Error: 5.267765866606196;

Epoch: 40; Error: 10.140496350647503;

Epoch: 50; Error: 5.079891616494778;

Epoch: 60; Error: 3.110436198157976;

Epoch: 70; Error: 3.0505776071981976;

Epoch: 80; Error: 2.0470452207927634;

Epoch: 90; Error: 1.6924725768932345;

Epoch: 100; Error: 2.5475409087226364;

Epoch: 110; Error: 1.513617689770772;

Epoch: 120; Error: 0.9774818880573889;

Epoch: 130; Error: 0.7357319784881684;

Epoch: 140; Error: 0.5062486741399981;

Epoch: 150; Error: 0.36858951857282035;

Epoch: 160; Error: 0.10579190424889454;

Epoch: 170; Error: 0.7501528954178448;

Epoch: 180; Error: 0.1569651335395988;

Epoch: 190; Error: 0.0401085858434261;

Epoch: 200; Error: 0.1853771538352877;

Epoch: 210; Error: 0.226935061119185;

Epoch: 220; Error: 0.28111394966381015;

Epoch: 230; Error: 0.3562146752875339;

Epoch: 240; Error: 0.3724894089162408;

Epoch: 250; Error: 0.3561752398416774;

Epoch: 260; Error: 0.3236426722255826;

Epoch: 270; Error: 0.2885668109556121;

Epoch: 280; Error: 0.2572043517900261;

Epoch: 290; Error: 0.23029369331527166;

Epoch: 300; Error: 0.20803779483221144;

Epoch: 310; Error: 0.18987899895411228;

Epoch: 320; Error: 0.1751003352588656;

Epoch: 330; Error: 0.16301987044459731;

Epoch: 340; Error: 0.15307582602354491;

Epoch: 350; Error: 0.1448530992610844;

Epoch: 360; Error: 0.1380094212303546;

Epoch: 370; Error: 0.1322616743499235;

Epoch: 380; Error: 0.12737976463123774;

Epoch: 390; Error: 0.12318031752982836;

Epoch: 400; Error: 0.11952126817108025;

Epoch: 410; Error: 0.11629168617732298;

Epoch: 420; Error: 0.11340287009468039;

Epoch: 430; Error: 0.11078352616789013;

Epoch: 440; Error: 0.10837701810710192;

Epoch: 450; Error: 0.1061393686292495;

Epoch: 460; Error: 0.10403729965609014;

Epoch: 470; Error: 0.10204600752071749;

Epoch: 480; Error: 0.10014704709298072;

Epoch: 490; Error: 0.09832671725734078;

Epoch: 500; Error: 0.09657495553699556;

Epoch: 510; Error: 0.0948845612460488;

Epoch: 520; Error: 0.09325057372855716;

Epoch: 530; Error: 0.09166970424895651;

Epoch: 540; Error: 0.09013981294864583;

Epoch: 550; Error: 0.08865947620790891;

Epoch: 560; Error: 0.0872276767678218;

Epoch: 570; Error: 0.0858436083693136;

Epoch: 580; Error: 0.08450656054878204;

Epoch: 590; Error: 0.08321584654903212;

Epoch: 600; Error: 0.08197074975024388;

Epoch: 610; Error: 0.08077048045613139;

Epoch: 620; Error: 0.07961414564320868;

Epoch: 630; Error: 0.07850073580998633;

Epoch: 640; Error: 0.07742912871119105;

Epoch: 650; Error: 0.07639810503131741;

Epoch: 660; Error: 0.07540636915993743;

Epoch: 670; Error: 0.0744525694417052;

Epoch: 680; Error: 0.07353531516078457;

Epoch: 690; Error: 0.07265319027750355;

Epoch: 700; Error: 0.07180476535781301;

Epoch: 710; Error: 0.07098860906861564;

Epoch: 720; Error: 0.07020329970334115;

Epoch: 730; Error: 0.06944743627741302;

Epoch: 740; Error: 0.06871964830919088;

Epoch: 750; Error: 0.06801860355980571;

Epoch: 760; Error: 0.06734301351347784;

Epoch: 770; Error: 0.0666916369040811;

Epoch: 780; Error: 0.06606328188418115;

Epoch: 790; Error: 0.06545680741994404;

Epoch: 800; Error: 0.06487112427154507;

The maximum number of train epochs is reached



实现代码


# coding: utf8

#DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测

import numpy as np

import neurolab as nl

import matplotlib.pyplot as plt

#1、定义数据集

X_min=-10

X_max=10

nums=100

x=np.linspace(X_min,X_max,nums)

y=2*np.square(x)+7

y/=np.linalg.norm(y)  #y=y/np.linalg.norm(y)   矩阵整体元素平方和开根号,不保留矩阵二维特性,即2范数,归一化的思想

data_X = x.reshape(nums,1)

data_y=y.reshape(nums,1)

#数据集散点图可视化

plt.figure()

plt.scatter(data_X,data_y)

plt.xlabel('x')

plt.ylabel('y')

plt.title('dataset')

plt.show()

# 建立DNN模型

#定义一个深度神经网络,带有两个隐藏层,每个隐藏层由10个神经元组成,输出层由一个神经元组成

DNN3 = nl.net.newff([[X_min,X_max]],[10,10,10,1])   # 输入层(10个神经元),2个隐藏层(各10个神经元),输出层(1个神经元)

print('DNN层个数:',len (DNN3.layers))

# 定义模型优化器:选择GD算法

DNN3.trainf = nl.train.train_gd

# 模型训练

error = DNN3.train(data_X,data_y,epochs=1200,show=10,goal=0.001)

# 模型预测

predicted_y=DNN3.sim(data_X)

# 模型训练可视化

plt.figure()

plt.plot(error)

plt.xlabel('Number of epoches')

plt.ylabel('Error')

plt.title('DNN3: Error change in model training')

plt.show()

# 模型预测结果对比

x2=np.linspace(X_min,X_max,nums*2)

y2=DNN3.sim(x2.reshape(x2.size,1)).reshape(x2.size)

y3=predicted_y.reshape(nums)

plt.figure()

plt.plot(x2,y2,'-',x,y,'.',x,y3,'p')

plt.xlabel('nums')

plt.ylabel('value')

plt.title('DNN3: Compare the predicted value with the true value')

plt.show()



 


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ML之LiR:使用线性回归LiR回归模型在披萨数据集上拟合(train)、价格回归预测(test)
ML之LiR:使用线性回归LiR回归模型在披萨数据集上拟合(train)、价格回归预测(test)
18 0
ML之LiR&2PolyR:使用线性回归LiR、二次多项式回归2PolyR模型在披萨数据集上拟合(train)、价格回归预测(test)
ML之LiR&2PolyR:使用线性回归LiR、二次多项式回归2PolyR模型在披萨数据集上拟合(train)、价格回归预测(test)
7 0
自定义LOG投递OSS数据Partition,优化你的计算
数据划分Partition OSS数据存储具有高可靠、低成本等优点,是海量数据存储的最佳选择之一,尤其适用于半结构化的日志存储,并可以结合E-MapReduce(使用Hive、Impala等计算引擎)通过schema-on-read方式加载数据做查询分析。
3987 0
Android官方开发文档Training系列课程中文版:动画视图之创建自定义转场动画
原文地址:http://android.xsoftlab.net/training/transitions/custom-transitions.html 自定义转场可以创建自定义动画。
945 0
JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】
什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的显示! 为什么要使用EL表达式? 为什么要使用EL表达式,我们先来看一下没有EL表达式是怎么样读取对象数据的吧! 在1.
1132 0
Netflix开源面向稀疏数据优化的轻量级神经网络库Vectorflow
在Netflix公司,我们的机器学习科学家在多个不同的领域处理着各种各样的问题:从根据你的爱好来定制电视和推荐电影,到优化编码算法。我们有一小部分问题涉及到处理极其稀疏的数据;手头问题的总维度数很容易就能达到数千万个特征,即使每次要看的可能只是少数的非零项。
4174 0
[Android]使用自定义JUnit Rules、annotations和Resources进行单元测试(翻译)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5795091.html 使用自定义JUnit Rules、annotations和Resources进行单元测试 原文:http://www.thedroidsonroids.com/blog/android/unit-tests-rules-annotations-resources 简介 Unit Test并不只有断言和测试方法组成。
847 0
+关注
一个处女座的程序猿
国内互联网圈知名博主、人工智能领域优秀创作者,全球最大中文IT社区博客专家、CSDN开发者联盟生态成员、中国开源社区专家、华为云社区专家、51CTO社区专家、Python社区专家等,曾受邀采访和评审十多次。仅在国内的CSDN平台,博客文章浏览量超过2500万,拥有超过57万的粉丝。
1701
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载