Tensorflow学习笔记(2)

tf.random_normal([2,3], stddev=2):生成矩阵为2*3,均值为0,标准差为2的随机数。
正态分布:若随机变量X服从一个数学期望为μ、方差为σ^2
的正态分布,记为N(μ,σ^2)。其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。当μ = 0,σ = 1时的正态分布是标准正态分布。

tensorflow函数:(定义权值和偏置的初始化)。
定义和初始化变量的函数

#########创建变量时,使用tf.Variable()时,随机数等选择函数tf.random_normal()。tf.get_variable()时,初始化选择tf.random_normal_initializer()。#####################################

TensorFlow 也支持通过其他变量的初始值来初始化新的变量。
eg:
w=tf.Variable(weights.initialized_value()*2.0) weights事先已经定义了。

所有的变量都会被自动加入到GraphKeys.VARIABLES这个集合中,通过tf.global_variables()函数可以拿到当前计算图上所有的变量。一个变量在构建之后,它的类型就不能再改变了。

tf.assign(ref, value, validate_shape=None, use_locking=None, name=None)将value赋值给ref,并输出ref。这使得需要使用复位值的连续操作变简单。其中ref和value必须为同一个类型,当validate_shape为False时,ref和value可以维度不同。

tensorflow提供placeholder机制用于提供输入数据,placeholder相当于提供了一个位置。在 placeholder定义时,这个位置上的数据类型是需要指定的。和其他张量一样,placeholder的类型也是不可以改变的。placeholder 中数据的维度信息可以根据提供的数据推导得出,所以不一定要给出。在新的程序中计算前向传播结果时,需要提供一个feed_dict来指定x的取值。feed_dict是一个字典(map),在字典中需要给出每个用到的placeholder的取值。如果某个需要的placeholder没有被指定取值,那么程序在运行时将会报错。

计算预测值和真实值的差距:cross_entropy=-tf.reduce_mean(y_ * tf.log(tf.clip_by_value(y,1e-10,1.0))+(1-y_)*tf.log(tf.clip_by_value(1-y,1e-10,1.0)))(交叉熵)

tf.clip_by_value(v,a,b)
功能:可以将一个张量中的数值限制在一个范围之内。(可以避免一些运算错误)
参数:(1)v:input数据(2)a、b是对数据的限制。

  1. 当v小于a时,输出a;
  2. 当v大于a小于b时,输出原值;
  3. 当v大于b时,输出b;

train step =tf.train.AdamOptimizer(learning_rate).minimize(cross_entropy)反向优化算法(优化器)
TensorFlow支持10种不同的优化器,常见的为tf.train.GradientDescentOptimizer、tf.train.AdamOptimizer和tf.train.MomentumOptimizer。

编写网络,不变的三个大的方向。
l. 定义神经网络的结构和前向传播的输出结果。
2. 定义损失函数以及选择反向传播优化的算法 。
3. 生成会话(tf.Session)并且在训练、数据上反复运行反向传播优化算法 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__JDM__

希望能得到您的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值