Tensorflow学习笔记03-使用神经网络做线性回归
import tensorflow as tf
import numpy as np
#input就是输入数据,输入矩阵,in_size就是输入矩阵的列数(数据属性数量),out_size输出矩阵列数
#activation_function就是激活函数
def add_layer(input,in_size,out_size,activation_function):
Weight=tf.Variable(tf.random_normal([in_size,out_size]))
biases=tf.Variable(tf.zeros([1,out_size]))+0.1
Wx_plus_b=tf.matmul(input,Weight)+biases
if activation_function is None:
outputs=Wx_plus_b
else:
outputs=activation_function(Wx_plus_b)
return outputs #####create data#####
#x_data 300x1,np.newaxis 增加维度
x_data=np.linspace(-1,1,300)[:,np.newaxis]
#noise是均值为0,方差为0.05的高斯随机数
noise=np.random.normal(0,0.05,x_data.shape)
#noise就是数据中的干扰成分,噪点,数据是非线性变化的
y_data=np.square(x_data)-0.5+noise xs=tf.placeholder(tf.float32,[None,1])
ys=tf.placeholder(tf.float32,[None,1]) #隐藏层有十个神经元
l1=add_layer(xs,1,10,activation_function=tf.nn.relu)
predition=add_layer(l1,10,1,activation_function=None)
#计算代价函数,reduction_indices是指在哪一维度上进行求解
loss=tf.reduce_mean(tf.reduce_sum(tf.square(ys-predition),
reduction_indices=[1]))
#使用梯度下降的方法使loss达到最小
train_step=tf.train.GradientDescentOptimizer(0.1).minimize(loss) init=tf.global_variables_initializer()
sess=tf.Session()
sess.run(init) for _ in range(1000):
sess.run(train_step,feed_dict={xs:x_data,ys:y_data})
if _%50==0:
print(sess.run(loss,feed_dict={xs:x_data,ys:y_data}))
#在练习神经网络时,对loss=tf.reduce_mean(tf.reduce_sum(tf.square(ys-predition),reduction_indices=[1]))
#不知道是如何得到的,便实现以下练习,清楚了计算细节
x=[[1],
[2],
[3]]
sess=tf.Session()
print(sess.run(tf.square(x)))
print(sess.run(tf.reduce_sum(tf.square(x), 1)))
print(sess.run(tf.reduce_mean(tf.reduce_sum(tf.square(x), 1))))
print(sess.run(tf.reduce_mean(x,0)))
输出结果:

说明0代表是对列进行求均值,求和操作,1代表对行进行求均值,求和操作
reduction_indices也是相同的作用,是为了和旧版本的兼容,最好不使用
Tensorflow学习笔记03-使用神经网络做线性回归的更多相关文章
- tensorflow学习笔记七----------卷积神经网络
		卷积神经网络比神经网络稍微复杂一些,因为其多了一个卷积层(convolutional layer)和池化层(pooling layer). 使用mnist数据集,n个数据,每个数据的像素为28*28* ... 
- Tensorflow学习笔记2019.01.03
		tensorflow学习笔记: 3.2 Tensorflow中定义数据流图 张量知识矩阵的一个超集. 超集:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S ... 
- TensorFlow学习笔记——LeNet-5(训练自己的数据集)
		在之前的TensorFlow学习笔记——图像识别与卷积神经网络(链接:请点击我)中了解了一下经典的卷积神经网络模型LeNet模型.那其实之前学习了别人的代码实现了LeNet网络对MNIST数据集的训练 ... 
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)
		续集请点击我:tensorflow学习笔记——使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ... 
- 深度学习-tensorflow学习笔记(1)-MNIST手写字体识别预备知识
		深度学习-tensorflow学习笔记(1)-MNIST手写字体识别预备知识 在tf第一个例子的时候需要很多预备知识. tf基本知识 香农熵 交叉熵代价函数cross-entropy 卷积神经网络 s ... 
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(2)
		tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例 ... 
- tensorflow学习笔记——自编码器及多层感知器
		1,自编码器简介 传统机器学习任务很大程度上依赖于好的特征工程,比如对数值型,日期时间型,种类型等特征的提取.特征工程往往是非常耗时耗力的,在图像,语音和视频中提取到有效的特征就更难了,工程师必须在这 ... 
- tensorflow学习笔记——VGGNet
		2014年,牛津大学计算机视觉组(Visual Geometry Group)和 Google DeepMind 公司的研究员一起研发了新的深度卷积神经网络:VGGNet ,并取得了ILSVRC201 ... 
- TensorFlow学习笔记10-卷积网络
		卷积网络 卷积神经网络(Convolutional Neural Network,CNN)专门处理具有类似网格结构的数据的神经网络.如: 时间序列数据(在时间轴上有规律地采样形成的一维网格): 图像数 ... 
随机推荐
- Keras和tf关系【转载】
			转自:https://blog.csdn.net/capecape/article/details/78390246 TensorFlow和theano以及Keras都是深度学习框架,TensorFl ... 
- python 调用阿里云服务器api创建服务器
			首先安装阿里云SDK pip install aliyun-python-sdk-core pip install aliyun-python-sdk-ecs 可以配合jenkins传递参数 #!/u ... 
- js--script和link中的 integrity 属性
			<link crossorigin="anonymous" integrity="sha256-+hDz/gVbhp24mhOmoIT4Du4F3K5fs9fjjo ... 
- [xdoj]1303jlz的刷题黑科技
			先分析复杂度,给的数据是1e5的,那么我们至少需要一个nlogn的算法才可以.由于答案是一个数字,首先想到是二分法(一般答案是一个数字都可以通过二分法来完成) 下面是思路: 1.可以完成题目的条件是, ... 
- Navicat Premium 安装与激活破解版简单操作 (原)
			首先下载navicate程序以及破解文件,这里一并存到了百度网盘直接下载即可 链接:https://pan.baidu.com/s/11ptFmsV1o3B5oB00zm2NdQ 密码:yw82 解压 ... 
- vue中使用kindeditor富文本编辑器
			1.去官网下载kindeditor 2.将其放在一个名为kindeditor的文件夹里,并且将它放在vue里的static文件夹下 3.创建kindeditor.vue <template> ... 
- linux编写脚本检测本机链接指定IP段是否畅通
			linux编写脚本检测本机链接指定IP段是否畅通,通过ping命令检测指定IP,检测命令执行结果,若为0表示畅通,若为1表示不通,以此判断网络是否畅通,但是指定机器禁用ping命令除外.代码如下: # ... 
- python django简单的登陆实现
			实现方法: 1,可以先定义一个基础的页面访问路径 例如:http://127.0.0.1:8000/index/ 定义index路径 在urls urlpatterns = [ url(r'^ind ... 
- 加载MySQL、Oracle、SQL Server 2000、SQL Server 2005及以上版本 的加载数据库驱动程序
			2018-11-04 20:00:59 开始 //getConnection(String url, String user, String password) //url:连接数据库的URL 3 ... 
- Swift闭包(I)    @autoclosure和@escaping的区别
			1. 参考资料 https://www.cnblogs.com/sgxx/p/6209944.html https://www.jianshu.com/p/99ade4feb8c1 
