神经网络实现SinX曲线拟合/逼近.

SinX函数曲线的拟合/逼近.

说明:原代码来自罗冬日-tensorfow实战书籍代码,且该代码选自google官方案例.

  • 网络层次结构:W 为16维,depth为3,也就说说合计参数48个.
  • 采用随机梯度优化,但是原书中提示实际运用中Adam(亚当)优化效果更好:收敛速度更快.
  • 代码在原代码有少部分修改.
  • 运行结果如下:起始/5w次后的结果.
    00001.PNG
    00002.PNG
  • 代码.
    # coding=utf-8
    import tensorflow as tf
    import numpy as np
    import matplotlib.pyplot as plt
    import pylab
    
    '''
      用TensorFlow来拟合一个正弦函数.
      代码选自:罗冬日-tensorflow实战.
      罗冬日代码改写自google官方案例.
    '''
    #分配第一块显卡,若是在tensorflow-gpu下默认使用的显卡,可以不添加改行.
    # with tf.device("/gpu:0"):
    
    # 改行用于每次运行都重置变量,否则同名变量无法运行.
    tf.reset_default_graph()
    
    #定义显存分配百分比,貌似不准确,有点误差..
    config = tf.ConfigProto()
    # %matplotlib qt
    # config.gpu_options.per_process_gpu_memory_fraction =  0.6 # 分配60%显存.
    config.gpu_options.allow_growth =  True # 自动分配.
    with tf.Session(config = config) as sess:
        def draw_correct_line():
            '''
              绘制标准的sin曲线
            '''
            x = np.arange(0, 2 * np.pi, 0.01)
            x = x.reshape((len(x), 1))
            y = np.sin(x)
    
            pylab.plot(x, y, label='standard sin:')
            plt.axhline(linewidth=1, color='r')
    
    
        def get_train_data():
            '''
              返回一个训练样本(train_x, train_y),
              其中train_x是随机的自变量, train_y是train_x的sin函数值
            '''
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值