学习&活动

Learning Activities


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

来源: 重庆市软件正版化服务中心    |    时间: 2022-09-19    |    浏览量: 52916    |   

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

目录

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

输出结果

实现代码


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

输出结果

  1. DNN层个数: 4
  2. Epoch: 10; Error: 27.53608815309984;
  3. Epoch: 20; Error: 15.587988598717738;
  4. Epoch: 30; Error: 5.267765866606196;
  5. Epoch: 40; Error: 10.140496350647503;
  6. Epoch: 50; Error: 5.079891616494778;
  7. Epoch: 60; Error: 3.110436198157976;
  8. Epoch: 70; Error: 3.0505776071981976;
  9. Epoch: 80; Error: 2.0470452207927634;
  10. Epoch: 90; Error: 1.6924725768932345;
  11. Epoch: 100; Error: 2.5475409087226364;
  12. Epoch: 110; Error: 1.513617689770772;
  13. Epoch: 120; Error: 0.9774818880573889;
  14. Epoch: 130; Error: 0.7357319784881684;
  15. Epoch: 140; Error: 0.5062486741399981;
  16. Epoch: 150; Error: 0.36858951857282035;
  17. Epoch: 160; Error: 0.10579190424889454;
  18. Epoch: 170; Error: 0.7501528954178448;
  19. Epoch: 180; Error: 0.1569651335395988;
  20. Epoch: 190; Error: 0.0401085858434261;
  21. Epoch: 200; Error: 0.1853771538352877;
  22. Epoch: 210; Error: 0.226935061119185;
  23. Epoch: 220; Error: 0.28111394966381015;
  24. Epoch: 230; Error: 0.3562146752875339;
  25. Epoch: 240; Error: 0.3724894089162408;
  26. Epoch: 250; Error: 0.3561752398416774;
  27. Epoch: 260; Error: 0.3236426722255826;
  28. Epoch: 270; Error: 0.2885668109556121;
  29. Epoch: 280; Error: 0.2572043517900261;
  30. Epoch: 290; Error: 0.23029369331527166;
  31. Epoch: 300; Error: 0.20803779483221144;
  32. Epoch: 310; Error: 0.18987899895411228;
  33. Epoch: 320; Error: 0.1751003352588656;
  34. Epoch: 330; Error: 0.16301987044459731;
  35. Epoch: 340; Error: 0.15307582602354491;
  36. Epoch: 350; Error: 0.1448530992610844;
  37. Epoch: 360; Error: 0.1380094212303546;
  38. Epoch: 370; Error: 0.1322616743499235;
  39. Epoch: 380; Error: 0.12737976463123774;
  40. Epoch: 390; Error: 0.12318031752982836;
  41. Epoch: 400; Error: 0.11952126817108025;
  42. Epoch: 410; Error: 0.11629168617732298;
  43. Epoch: 420; Error: 0.11340287009468039;
  44. Epoch: 430; Error: 0.11078352616789013;
  45. Epoch: 440; Error: 0.10837701810710192;
  46. Epoch: 450; Error: 0.1061393686292495;
  47. Epoch: 460; Error: 0.10403729965609014;
  48. Epoch: 470; Error: 0.10204600752071749;
  49. Epoch: 480; Error: 0.10014704709298072;
  50. Epoch: 490; Error: 0.09832671725734078;
  51. Epoch: 500; Error: 0.09657495553699556;
  52. Epoch: 510; Error: 0.0948845612460488;
  53. Epoch: 520; Error: 0.09325057372855716;
  54. Epoch: 530; Error: 0.09166970424895651;
  55. Epoch: 540; Error: 0.09013981294864583;
  56. Epoch: 550; Error: 0.08865947620790891;
  57. Epoch: 560; Error: 0.0872276767678218;
  58. Epoch: 570; Error: 0.0858436083693136;
  59. Epoch: 580; Error: 0.08450656054878204;
  60. Epoch: 590; Error: 0.08321584654903212;
  61. Epoch: 600; Error: 0.08197074975024388;
  62. Epoch: 610; Error: 0.08077048045613139;
  63. Epoch: 620; Error: 0.07961414564320868;
  64. Epoch: 630; Error: 0.07850073580998633;
  65. Epoch: 640; Error: 0.07742912871119105;
  66. Epoch: 650; Error: 0.07639810503131741;
  67. Epoch: 660; Error: 0.07540636915993743;
  68. Epoch: 670; Error: 0.0744525694417052;
  69. Epoch: 680; Error: 0.07353531516078457;
  70. Epoch: 690; Error: 0.07265319027750355;
  71. Epoch: 700; Error: 0.07180476535781301;
  72. Epoch: 710; Error: 0.07098860906861564;
  73. Epoch: 720; Error: 0.07020329970334115;
  74. Epoch: 730; Error: 0.06944743627741302;
  75. Epoch: 740; Error: 0.06871964830919088;
  76. Epoch: 750; Error: 0.06801860355980571;
  77. Epoch: 760; Error: 0.06734301351347784;
  78. Epoch: 770; Error: 0.0666916369040811;
  79. Epoch: 780; Error: 0.06606328188418115;
  80. Epoch: 790; Error: 0.06545680741994404;
  81. Epoch: 800; Error: 0.06487112427154507;
  82. The maximum number of train epochs is reached

实现代码

  1. coding: utf8
  2. DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测
  3. import numpy as np
  4. import neurolab as nl
  5. import matplotlib.pyplot as plt
  6. 1、定义数据集
  7. X_min=-10
  8. X_max=10
  9. nums=100
  10. x=np.linspace(X_min,X_max,nums)
  11. y=2*np.square(x)+7
  12. y/=np.linalg.norm(y) y=y/np.linalg.norm(y) 矩阵整体元素平方和开根号,不保留矩阵二维特性,即2范数,归一化的思想
  13. data_X = x.reshape(nums,1)
  14. data_y=y.reshape(nums,1)
  15. 数据集散点图可视化
  16. plt.figure()
  17. plt.scatter(data_X,data_y)
  18. plt.xlabel('x')
  19. plt.ylabel('y')
  20. plt.title('dataset')
  21. plt.show()
  22. 建立DNN模型
  23. 定义一个深度神经网络,带有两个隐藏层,每个隐藏层由10个神经元组成,输出层由一个神经元组成
  24. DNN3 = nl.net.newff([[X_min,X_max]],[10,10,10,1]) 输入层(10个神经元),2个隐藏层(各10个神经元),输出层(1个神经元)
  25. print('DNN层个数:',len (DNN3.layers))
  26. 定义模型优化器:选择GD算法
  27. DNN3.trainf = nl.train.train_gd
  28. 模型训练
  29. error = DNN3.train(data_X,data_y,epochs=1200,show=10,goal=0.001)
  30. 模型预测
  31. predicted_y=DNN3.sim(data_X)
  32. 模型训练可视化
  33. plt.figure()
  34. plt.plot(error)
  35. plt.xlabel('Number of epoches')
  36. plt.ylabel('Error')
  37. plt.title('DNN3: Error change in model training')
  38. plt.show()
  39. 模型预测结果对比
  40. x2=np.linspace(X_min,X_max,nums*2)
  41. y2=DNN3.sim(x2.reshape(x2.size,1)).reshape(x2.size)
  42. y3=predicted_y.reshape(nums)
  43. plt.figure()
  44. plt.plot(x2,y2,'-',x,y,'.',x,y3,'p')
  45. plt.xlabel('nums')
  46. plt.ylabel('value')
  47. plt.title('DNN3: Compare the predicted value with the true value')
  48. plt.show()

评论

产品推荐

更多 >

QQ咨询 扫一扫加入群聊,了解更多平台咨询
微信咨询 扫一扫加入群聊,了解更多平台咨询
意见反馈
立即提交
QQ咨询
微信咨询
意见反馈