马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 alltolove 于 2018-11-26 10:47 编辑
卷积神经网络中除了卷积层,还有好几个其他的层,分别叫做归一化层,激励函数层,池化层和全连接层。如果是之前已经归一化好的数据不用归一化层也行。
数据归一化就不多说了,之前在普通机器学习里说过。激励函数就是把数据输入进一个函数,输出的数据就缩短了数据的量程,让数据非线性化,也有点像归一化,具体原理是统计学里的非常复杂,就不说了。激励函数种类很多,比如sigmoid,relu,tanh,elu,maxout等,各有优缺点。
池化层非常简单,就是把矩阵分成几等份,然后算出每份的最大值,再组合成一个矩阵,矩阵的规模比以前会大大降低,又叫做下采样。代码为:import numpy as np
from sklearn.datasets import load_sample_images
import tensorflow as tf
import matplotlib.pyplot as plt
#读取样本
dataset=np.array(load_sample_images().images,dtype=np.float32)
batch_size,height,width,channels=dataset.shape
X=tf.placeholder(tf.float32,shape=(None,height,width,channels))
max_pool=tf.nn.max_pool(X,ksize=[1,2,2,1],strides=[1,2,2,1],padding="VALID")
with tf.Session() as sess:
output=sess.run(max_pool,feed_dict={X:dataset})
plt.imshow(output[0].astype(np.uint8))
plt.show()
全连接层是把所有数据展开归一为一行,做个矩阵乘法取想要的维度,比如1*3的矩阵乘以3*1的矩阵就变成了1*1的矩阵也就是一个数。
做完全连接我们还要用softmax(就是多分类的逻辑回归算法)计算出概率值,方便我们评价这个图片,好依据这个概率值我们判断图片是什么类别。(一般全连接就是最后一层了,softmax这个不叫层,只叫算法)。这样整个卷积神经网络就完成了。接下来训练就跟普通神经网络一样。 |