tensflow

tensorflow学习笔记0

2018-11-28  本文已影响71人  山横烟聚

将以更总结性质的方式来做tensorflow笔记,作为理解神经网络的途径。
不是做字典,也不是摘抄。
为了识别代码括号内是空还是有数值,如果不作说明,我会在可以填写内容的括号内填写案例。


张量的创建


前向传播

传播需要用到矩阵相乘的命令,为tf.matmul(A,B),很好理解,即为Matrix Multiply的缩写。注意,相乘的两个张量是没有经过转置的。不像是(A,B)=A^TB 而是(A,B)=AB 值得一提的是,对于输入和权重张量来说,输入X_{n\times i}表示有n组数据,每个数据有i个分量。而对于权重矩阵W_{n_j\times n_{j+1}},下标分别为该层神经网络的神经元数和下一层神经网络的神经元数。

所以,假设有一个2\times 3 \times 1的神经网络,第一个为数据的维数,第二为隐藏层的神经元,第三个为输出层。则易知输入数据的shape为(1,2),输入层到第一隐藏层的权重矩阵为(2,3),第一隐藏层到输出层的权重矩阵为(3,1),传播过程如下:

a = tf.matmul(x,w1)
y = tf.matmul(a,w2)

会话

首先这是tensorflow库下的一个字库,为tf.Session(),在创建会话时为了一种简洁性,往往使用with as语句来创建一个临时的调用窗口,即with tf.Session() as sess:

init_op=tf.global_variable_initializer()
sess.run(init_op)

反向传播

反向传播是根据目标函数来对参数进行调整。

上一篇 下一篇

猜你喜欢

热点阅读