深度学习-卷积神经网络-实例及代码0.8—基于最小均方误差的线性判别函数参数拟合训练

利用Tensorflow演示基于最小均差误差的线性判别函数参数拟合训练,可以作为Tensorflow卷积神经网络入门前的基础练习,练习Tensorflow的基本使用方法和模型训练的基本过程,希望对你有所帮助!

1、待拟合的线性判别函数形式为:

                                                       y=w*x+b

     其中:

              x为二维向量输入——通过np.random.rand()函数生成100条输入数据初始值

             w为待拟合的权值参数向量——目标值为[0.1,0.2]

             b为待拟合的阈值参数——目标值为0.3

             y为输出——目标值为根据上述公式和输入x的初始值,以及w、b的目标值计算得到的y_data

2、损失函数(代价函数)使用均方误差函数

      优化方法采用梯度下降法

      基于梯度下降法最小化损失函数进行迭代训练200次,得到最终的参数w和b的训练结果

3、代码实现

具体项目Github地址,该Github项目最终完成基于Tensorflow和MNIST数据集的手写数字识别训练:

                        https://github.com/firemonkeygit/DeepLearningTensorflowMNIST

源代码如下所示,经过调试可用,输出结果为:

                  第200次迭代,w为[[0.10001309 0.20000857]],b为[0.29998827]

 

import numpy as np
import tensorflow as tf

# 生成 2*100的 数据,100条(x1,x2)二维数据
x_data = np.float32(np.random.rand(2, 100))
# y = wx + b
y_data = np.dot([0.100, 0.200], x_data) + 0.300

#设定初始参数值 b (1) w (1*2)
x = tf.placeholder(tf.float32, [2, 100], name="x")
y = tf.placeholder(tf.float32, [1, 100], name="y")
b = tf.Variable(tf.zeros([1]))
w = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
y_output = tf.matmul(w, x) + b

#定义优化目标函数
loss = tf.reduce_mean(tf.square(y_output-y))
#构建优化器
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

#初始化,variable变量必须初始化
#新版本已经不建议使用tf.initialize_all_variables()
init_new=tf.global_variables_initializer()
##启动图
with tf.Session() as sess:
    sess.run(init_new)
    for step in range(0,201):
        sess.run(train,feed_dict={x:x_data,y:y_data.reshape(1,-1)})
    if step % 20 == 0:
        print("第{0}次迭代,w为{1},b为{2}".format(step, sess.run(w), sess.run(b)))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值