鱼C论坛

 找回密码
 立即注册
查看: 968|回复: 0

[技术交流] 卷积神经网络其他层

[复制链接]
发表于 2018-11-26 10:36:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 alltolove 于 2018-11-26 10:47 编辑

        卷积神经网络中除了卷积层,还有好几个其他的层,分别叫做归一化层,激励函数层,池化层和全连接层。如果是之前已经归一化好的数据不用归一化层也行。
        数据归一化就不多说了,之前在普通机器学习里说过。激励函数就是把数据输入进一个函数,输出的数据就缩短了数据的量程,让数据非线性化,也有点像归一化,具体原理是统计学里的非常复杂,就不说了。激励函数种类很多,比如sigmoid,relu,tanh,elu,maxout等,各有优缺点。
        池化层非常简单,就是把矩阵分成几等份,然后算出每份的最大值,再组合成一个矩阵,矩阵的规模比以前会大大降低,又叫做下采样。代码为:
  1. import numpy as np
  2. from sklearn.datasets import load_sample_images
  3. import tensorflow as tf
  4. import matplotlib.pyplot as plt
  5. #读取样本
  6. dataset=np.array(load_sample_images().images,dtype=np.float32)
  7. batch_size,height,width,channels=dataset.shape
  8. X=tf.placeholder(tf.float32,shape=(None,height,width,channels))
  9. max_pool=tf.nn.max_pool(X,ksize=[1,2,2,1],strides=[1,2,2,1],padding="VALID")

  10. with tf.Session() as sess:
  11.     output=sess.run(max_pool,feed_dict={X:dataset})
  12. plt.imshow(output[0].astype(np.uint8))
  13. plt.show()
复制代码

        全连接层是把所有数据展开归一为一行,做个矩阵乘法取想要的维度,比如1*3的矩阵乘以3*1的矩阵就变成了1*1的矩阵也就是一个数。
        做完全连接我们还要用softmax(就是多分类的逻辑回归算法)计算出概率值,方便我们评价这个图片,好依据这个概率值我们判断图片是什么类别。(一般全连接就是最后一层了,softmax这个不叫层,只叫算法)。这样整个卷积神经网络就完成了。接下来训练就跟普通神经网络一样。

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 15:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表