1、

tf.multiply(x,y1)      # 对应元素相乘
tf.matmul(x,y2) # 矩阵相乘

2、会话:执行计算图中的节点运算的。

with tf.Session() as sess:

print sess.run(y)

3、参数:就是权重w,用变量表示。随机给初值。

w=tf.Variable(tf.random_normal([2,3],stddev=2,mean=0,seed=1))

正态分布,                                         标准差为2     均值是0

tf.truncated_normal()  去掉过大偏离点的正态分布

4、前向传播:搭建模型,实现推理

输入层,隐藏层,输出层

5、变量初始化、计算图节点运算,都要用会话实现:

变量初始化:

init_op=tf.global_variables_initializer()

sess.run(init_op)

计算图节点运算:在sess.run函数中用feed_dict喂数据

6、用tf.placeholder占位,在sess.run函数中用feed_dict喂数据

喂一组数据:

x=tf.placeholder(tf.float32,shape=(1,2))   多组数据的话,把1改成None

sess.run(y,feed_dict={x:[[0.5,0.6]]})

import tensorflow as tf

x = tf.placeholder(tf.float32,shape=(None,2))
w1 = tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1))
w2 = tf.Variable(tf.random_normal([3, 1], stddev=1, seed=1)) a = tf.matmul(x, w1)
y = tf.matmul(a, w2) with tf.Session() as sess:
init_op = tf.global_variables_initializer()
sess.run(init_op)
print(sess.run(y,feed_dict={x: [[0.7, 0.5],[0.2,0.3],
[0.3,0.4],[0.4,0.5]]}))
print(sess.run(w1))
print(sess.run(w2))

7、反向传播:训练模型参数,在所有参数上用梯度下降,使NN模型在训练数据对上的

损失函数最小。

损失函数(loss):预测值y与已知答案y_的差距

均方误差MSE

loss=tf.reduce_mean(tf.square(y_-y))

反向传播训练方法:以减小loss值为优化目标

学习率 :决定参数每次更新的幅度

import tensorflow as tf
import numpy as np BATCH_SIZE = 8 #一次喂入的数据
seed = 23455 rng = np.random.RandomState(seed)
X=rng.rand(32,2)
Y=[[int(x0 + x1 < 1)] for (x0,x1) in X]
print(X)
print(Y) x = tf.placeholder(tf.float32, shape=(None,2))#体积和重量两个特征
yy= tf.placeholder(tf.float32,shape=(None,1))#只有一个特征,合格或者不合格 w1=tf.Variable(tf.random_normal([2,3],stddev=1,seed=1))
w2=tf.Variable(tf.random_normal([3,1],stddev=1,seed=1)) a=tf.matmul(x,w1)
y=tf.matmul(a,w2) #定义损失函数及反向传播方法
loss = tf.reduce_mean(tf.square(yy-y))
train_step=tf.train.GradientDescentOptimizer(0.001).minimize(loss)#学习率为0.001 with tf.Session() as sess:
init_op=tf.global_variables_initializer()
sess.run(init_op)
print(sess.run(w1))
print(sess.run(w2)) #训练模型
STEPS=3000#训练三千轮
for i in range(STEPS):
start = (i*BATCH_SIZE)%32
end = start+BATCH_SIZE
sess.run(train_step, feed_dict={x: X[start:end],yy: Y[start: end]})
if i % 500 == 0: #每500轮打印一次loss值
total_loss = sess.run(loss,feed_dict={x: X, yy: Y})
print(i,total_loss)
print(sess.run(w1))
print(sess.run(w2))

8、搭建神经网络的八股:准备、前传、反传、迭代

(1)准备:import ;常量定义;生成数据集

(2)前向传播:定义输入、参数和输出

(3)反向传播:定义损失函数,反向传播方法

loss =       train_step =

(4)生成会话,训练STEPS轮

9、损失函数

NN复杂度:多用NN层数和NN参数的个数表示

层数=隐藏层的层数+1个输出层

总参数=总w+总b

自定义损失函数:

交叉熵:表征两个概率分布之间的距离

10、学习率:每次参数更新的幅度

学习率设置多少合适?指数衰减率

11、滑动平均(影子值)

记录了每个参数一段时间内过往值得平均,增加了模型的泛化性。

针对所有参数:w、b

最新文章

  1. 深入理解定时器系列第二篇——被誉为神器的requestAnimationFrame
  2. 设置Textview最大长度,超出显示省略号
  3. CSS3新增属性
  4. XidianOJ 1096 数的拆分
  5. TestNG之执行顺序
  6. Spring IoC反转控制的快速入门
  7. mysql中替换行首字符
  8. qt中如何启动其他应用程序(如果不成功,还有许多原因即QProcess::ProcessError可供分析)
  9. 求解:C#.Net 远程方法调用失败 (Exception from HRESULT: 0x800706BE)
  10. 设计模式(Abstract Factory)抽象工厂
  11. Installshield关于.NET安装时需要重启动的处理办法,以及延伸出的重启后继续安装的安装包的一点想法
  12. swiper 自定义分页器的使用
  13. python hex() oct() bin() math 内置函数
  14. Mysql 性能优化教程
  15. CSS属性大全
  16. 在没有go-pear.bat的php中安装pear
  17. 阿里云ECS安装flannel启动问题
  18. 关于CDh5.13.1 HDFS启用HA(High Availability)注意事情--(JournalNode 只有一个编辑路径)
  19. 《“胡”说IC——菜鸟工程师完美进阶》
  20. PAT 1074 宇宙无敌加法器

热门文章

  1. Java 类的属性
  2. Golang的常量定义及使用案例
  3. UVA - 1572 Self-Assembly(图论模型+拓扑排序)
  4. Ajax学习系列——向服务器发送请求
  5. 十五、JavaScript之除法
  6. torch.cuda.FloatTensor
  7. Bulma CSS - 简介
  8. UVA - 11925 Generating Permutations(生成排列)(构造)
  9. jquery实现搜索框从中间向两边扩展(左右放大)
  10. AVCodec 结构体