• 学习进度-神经网络


    代码

    %matplotlib inline

    import tensorflow as tf
    import numpy as np
    import matplotlib.pyplot as plt

    #创建一个神经网络层
    def add_layer(input,in_size,out_size,activation_function=None):
    """
    :param input: 数据输入
    :param in_size: 输入大小
    :param out_size: 输出大小
    :param activation_function: 激活函数(默认没有)
    :return:output:数据输出
    """
    Weight=tf.Variable(tf.random_normal([in_size,out_size]) )
    biases=tf.Variable(tf.zeros([1,out_size]) +0.1 )
    W_mul_x_plus_b=tf.matmul(input,Weight) + biases
    #根据是否有激活函数
    if activation_function == None:
    output=W_mul_x_plus_b
    else:
    output=activation_function(W_mul_x_plus_b)
    return output

    #创建一个具有输入层,隐藏层,输出层的三层神经网络,神经元个数分别为1,10,1
    x_data=np.linspace(-1,1,300)[:,np.newaxis] # 创建输入数据 np.newaxis分别是在列(第二维)上增加维度,原先是(300,)变为(300,1)
    noise=np.random.normal(0,0.05,x_data.shape)
    y_data=np.square(x_data)+1+noise # 创建输入数据对应的输出

    # print(x_data.shape)
    # x=np.linspace(-1,1,300)
    # print(x.shape)

    #定义输入数据
    xs=tf.placeholder(tf.float32,[None,1])
    ys=tf.placeholder(tf.float32,[None,1])

    #定义一个隐藏层
    hidden_layer1=add_layer(xs,1,10,activation_function=tf.nn.relu)
    #定义一个输出层
    prediction=add_layer(hidden_layer1,10,1,activation_function=None)

    #求解神经网络参数
    #1.定义损失函数
    loss=tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction) ,reduction_indices=[1] ))
    #2.定义训练过程
    train_step=tf.train.GradientDescentOptimizer(0.1).minimize(loss)

    init=tf.global_variables_initializer()
    sess=tf.Session()
    sess.run(init)


    # 绘制求解的曲线
    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)
    ax.scatter(x_data, y_data)
    plt.ion() #Turn interactive mode on 开启互动模式
    plt.show() #Display a figure


    #3.进行训练
    for i in range(1000):
    sess.run(train_step,feed_dict={xs:x_data,ys:y_data})
    if i%100==0:
    try:
    ax.lines.remove(lines[0]) #擦除之前的轨迹
    except Exception:
    pass

    print(sess.run(loss,feed_dict={xs:x_data,ys:y_data} ) )
    # 计算预测值
    prediction_value = sess.run(prediction, feed_dict={xs: x_data})
    #print(prediction.shape)
    # 绘制预测值
    lines = ax.plot(x_data, prediction_value, 'r-', lw=5)
    plt.pause(0.1)
    # 关闭Session
    plt.pause(1000)

    #关闭sess
    sess.close()

    结果截图

  • 相关阅读:
    设置标题自适应宽度,动态调整大小
    终止延迟函数
    iOS 关于音频开发
    阻止iOS设备锁屏
    苹果开发——设置iTunes Connect中的Contracts, Tax, and Banking
    【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!【2012-12-11日更新获取"产品付费数量等于0的问题"】
    uibutton 设置title 居左显示
    通过view 获取viewController
    tableview 自动滑动到某一行
    uibutton 设置圆角边框
  • 原文地址:https://www.cnblogs.com/kongfanbing/p/14299845.html
Copyright © 2020-2023  润新知