Hello_Tensorflow_plus

import tensorflow as tf
import numpy as np
#使用numpy中的随机生成数据功能生成一个y = 4x+1的线性曲线
#数据inputX,noise为随机生成的输入数与满足偏差为0.05的正太分布的噪声数
inputX = np.random.rand(3000,1)#通过本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值。
# 随机样本取值范围是[0,1),不包括1。
noise = np.random.normal(0,0.05,inputX.shape)
outputY = inputX*4 +1+noise


#这里是第一层
#这里weight1与bias1分别是神经网络隐藏层的变量,因为这个变量在后续的图计算过程是需要重新根据误差算法不停
#地重新赋值所以被设置成tf变量
#程序段中x1与y1_在写作时就有些不同。这里x1是占位符,占位符的作用是在tf图计算时不停的输入数据;而y1_是神经
#设立的模型目标其形式为:Y=x*w+b 即这个模型是一个一元线性回归模型
weight1 = tf.Variable(np.random.rand(inputX.shape[1],4))
bias1 = tf.Variable(np.random.rand(inputX.shape[1],4))
x1 = tf.placeholder(tf.float64,[None,1])
y1_=tf.matmul(x1,weight1)+bias1
#程序中,这里训练模型的真实值y同样被设置成一个占位符。loss定义的是损失函数,这里采用的是最小二乘法的随时函数,即计算模型输出值
#与真实值之间的误差的最小二乘法train是采用梯度下降算法计算的训练方法

y = tf.placeholder(tf.float64, [None, 1])
loss =tf.reduce_mean(tf.reduce_sum(tf.square((y1_-y)),reduction_indices=[1]))
train = tf.train.GradientDescentOptimizer(0.25).minimize(loss)#选择梯度下降法
#当全部数据和模型被设置完毕以后,tf.initialize_all_variables()启动数值的初始化工作,
#之后对话被启动,框架准备开始执行任务。
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
#在设定的循环次数下会话被启动,而feed会把设定的值一次传送到训练模型中
for i in range(1000):
    sess.run(train,feed_dict={x1:inputX,y:outputY})
#训练完成后,可以把结果进行打印,在整个公式中,最需要知道的就是weight和bias的值,可以直接被打印出来。
print(weight1.eval(sess))
print("____________________")
print(bias1.eval(sess))
print("________结果是__________")
x_data = np.matrix([[1.],[2.],[3.]])
print(sess.run(y1_,feed_dict={x1:x_data}))
#而模型训练结束后被储存在上文设定的y1_模型中。需要注意的是。当训练结束后,模型就已经被训练完毕被储存在系统中
#因此当需要时只需要按要求调用即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值