分享

python 深度学习(1) -- 拟合函数 y=x**2

 nxhujiee 2023-04-26 发布于宁夏

一直一来,我们都是用 TensorFlow 框架搭建深度神经网络,但其实 python 也提供了相应的统计和学习模块,比如我们要拟合函数 y = x**2

首先生成数据集 x 和标准数据 y = x **2

  1. import numpy as np
  2. import pandas as pd
  3. import random
  4. # 生成 50 个随机值 x
  5. random.seed(2018)
  6. sample_size = 50
  7. sample = pd.Series(random.sample(range(-10000,10000),sample_size))
  8. x = sample/10000
  9. # 生成标注数据 y = x **2
  10. y = x**2
  11. print x.head(10)
  12. print y.head(10)
  13. print x.describe() # 查看x 的数据分布

然后将数据加载进 dataSet ,格式是 [ ([x_input],[y_input]), ([x_input],[y_input]) .... ]

  1. count = 0
  2. dataSet = [([x.ix[count]],[y.ix[count]])]
  3. count = 1
  4. while count < sample_size:
  5.     print "Working on data item:",count
  6.     dataSet = dataSet + [([x.ix[count,0]],[y.ix[count]])]
  7.     count += 1

导入 neuralpy 包搭建神经网络并训练

  1. import neuralpy
  2. fit = neuralpy.Network(1,3,7,1) ''' 包含两个隐藏层,分别含有 3 个节点和 7 个节点,其中输入一个节点,输出一个节点 '''
  3. # 设置学习周期
  4. epochs = 100
  5. # 学习率设置
  6. learning_rate = 1
  7. print "fitting model right now"
  8. fit.train(dataSet,epochs,learning_rate)

接下来就可以评估表现的模型

  1. count = 0
  2. pred = []
  3. while count < sample_size:
  4.     out = fit.forward(x[count]) # forward 就是前向传播
  5.     print "Obs:", count +1, \
  6.           "y = ",round(y[count],4), \
  7.           "prediction = ",round(pd.Series(out),4) # pd.Series 就是一维数据的意思
  8.     pred.append(out)
  9.     count += 1

结果如下:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多