构建网络
1.网络介绍
神经网络的原型受到人脑运作机制的启发,下图为一个神经细胞和神经网络中的一个神经元,神经细胞接收大量树突传递到过来的信号,然后神经细胞受到输入信号的刺激做出应激反应输出信号到轴突,轴突可以和其他神经元的树突相连,使得神经细胞之间能够交流信息。类似的,神经网络中的神经元也能接收其他神经元的输出,然后做出响应,响应的结果作为当前神经元的输出同时也是与之相连的下一个神经元的输入。
为了处理复杂问题,大脑中有很多很多神经细胞,来处理外界输入的复杂信息,并做出反应。同样的神经网络中也拥有大量神经元,信息通过神经元一层一层的传递,传递到最后得到一个输出结果,这个结果就是网络对输入信息的总体响应。
网络的结构对网络输出结果有巨大的影响,对于我们正在处理的这个图像复原的问题,我们选择应用效果最好的卷积神经网络。
2. 卷积神经网络
直接看这篇博文:https://blog.csdn.net/yunpiao123456/article/details/52437794
你要确保你知道下面的图的意思才继续往下看:
卷积:
池化:
局部感知
多核卷积
来,做两个题:
第一题:
输入层:图片28x28x1(长28 宽28 灰度图)
第一隐藏层(全连接):784个节点
请问从输入层到第一隐藏层一共有多少个需要调整的连接权值?
28x28x1x784 + 784 = 615440
第一题:
输入层:图片28x28x1
第一隐藏层(卷积层):卷积核 大小:5x5 深度32
请问从输入层到第一隐藏层一共有多少个需要调整的连接权值?
5x5x1x32 + 32 = 832
3. 在TensorFlow中构建卷积神经网络
直接上核心代码:
# 定义权重的函数
def weight_variable(shape):
initial = tf.truncated_normal(shape, stddev=0.1) # 从截断的正态分布中输出随机值μ-2σ,μ+2σ
return tf.Variable(initial)
# 定义偏置的函数
def bias_variable(shape):
initial = tf.constant(0.1, shape=shape)
return tf.Variable(initial)
# 定义